Revision 50c680f0 hw/ppc.c
b/hw/ppc.c | ||
---|---|---|
714 | 714 |
_cpu_ppc_store_decr(cpu, cpu_ppc_load_decr(env), value, 0); |
715 | 715 |
} |
716 | 716 |
|
717 |
static void cpu_ppc_decr_cb (void *opaque)
|
|
717 |
static void cpu_ppc_decr_cb(void *opaque) |
|
718 | 718 |
{ |
719 |
CPUPPCState *env = opaque;
|
|
719 |
PowerPCCPU *cpu = opaque;
|
|
720 | 720 |
|
721 |
_cpu_ppc_store_decr(ppc_env_get_cpu(env), 0x00000000, 0xFFFFFFFF, 1);
|
|
721 |
_cpu_ppc_store_decr(cpu, 0x00000000, 0xFFFFFFFF, 1);
|
|
722 | 722 |
} |
723 | 723 |
|
724 | 724 |
static inline void _cpu_ppc_store_hdecr(PowerPCCPU *cpu, uint32_t hdecr, |
... | ... | |
739 | 739 |
_cpu_ppc_store_hdecr(cpu, cpu_ppc_load_hdecr(env), value, 0); |
740 | 740 |
} |
741 | 741 |
|
742 |
static void cpu_ppc_hdecr_cb (void *opaque)
|
|
742 |
static void cpu_ppc_hdecr_cb(void *opaque) |
|
743 | 743 |
{ |
744 |
CPUPPCState *env = opaque;
|
|
744 |
PowerPCCPU *cpu = opaque;
|
|
745 | 745 |
|
746 |
_cpu_ppc_store_hdecr(ppc_env_get_cpu(env), 0x00000000, 0xFFFFFFFF, 1);
|
|
746 |
_cpu_ppc_store_hdecr(cpu, 0x00000000, 0xFFFFFFFF, 1);
|
|
747 | 747 |
} |
748 | 748 |
|
749 | 749 |
static void cpu_ppc_store_purr(PowerPCCPU *cpu, uint64_t value) |
... | ... | |
774 | 774 |
/* Set up (once) timebase frequency (in Hz) */ |
775 | 775 |
clk_setup_cb cpu_ppc_tb_init (CPUPPCState *env, uint32_t freq) |
776 | 776 |
{ |
777 |
PowerPCCPU *cpu = ppc_env_get_cpu(env); |
|
777 | 778 |
ppc_tb_t *tb_env; |
778 | 779 |
|
779 | 780 |
tb_env = g_malloc0(sizeof(ppc_tb_t)); |
780 | 781 |
env->tb_env = tb_env; |
781 | 782 |
tb_env->flags = PPC_DECR_UNDERFLOW_TRIGGERED; |
782 | 783 |
/* Create new timer */ |
783 |
tb_env->decr_timer = qemu_new_timer_ns(vm_clock, &cpu_ppc_decr_cb, env);
|
|
784 |
tb_env->decr_timer = qemu_new_timer_ns(vm_clock, &cpu_ppc_decr_cb, cpu);
|
|
784 | 785 |
if (0) { |
785 | 786 |
/* XXX: find a suitable condition to enable the hypervisor decrementer |
786 | 787 |
*/ |
787 |
tb_env->hdecr_timer = qemu_new_timer_ns(vm_clock, &cpu_ppc_hdecr_cb, env); |
|
788 |
tb_env->hdecr_timer = qemu_new_timer_ns(vm_clock, &cpu_ppc_hdecr_cb, |
|
789 |
cpu); |
|
788 | 790 |
} else { |
789 | 791 |
tb_env->hdecr_timer = NULL; |
790 | 792 |
} |
Also available in: Unified diff