Lines Matching full:cpu
2 * QEMU S/390 CPU - System-only code
26 #include "cpu.h"
40 #include "hw/core/sysemu-cpu-ops.h"
44 S390CPU *cpu = S390_CPU(cs); in s390_cpu_has_work() local
47 if (s390_cpu_get_state(cpu) != S390_CPU_STATE_LOAD && in s390_cpu_has_work()
48 s390_cpu_get_state(cpu) != S390_CPU_STATE_OPERATING) { in s390_cpu_has_work()
56 return s390_cpu_has_int(cpu); in s390_cpu_has_work()
62 S390CPU *cpu = S390_CPU(s); in s390_cpu_load_normal() local
67 cpu->env.psw.mask = spsw & PSW_MASK_SHORT_CTRL; in s390_cpu_load_normal()
72 cpu->env.psw.mask ^= PSW_MASK_SHORTPSW; in s390_cpu_load_normal()
73 cpu->env.psw.addr = spsw & PSW_MASK_SHORT_ADDR; in s390_cpu_load_normal()
77 * the cpu to operating on protected guests. in s390_cpu_load_normal()
79 s390_cpu_set_state(S390_CPU_STATE_LOAD, cpu); in s390_cpu_load_normal()
81 s390_cpu_set_state(S390_CPU_STATE_OPERATING, cpu); in s390_cpu_load_normal()
86 S390CPU *cpu = opaque; in s390_cpu_machine_reset_cb() local
88 run_on_cpu(CPU(cpu), s390_do_cpu_full_reset, RUN_ON_CPU_NULL); in s390_cpu_machine_reset_cb()
94 S390CPU *cpu = S390_CPU(cs); in s390_cpu_get_crash_info() local
100 panic_info->u.s390.core = cpu->env.core_id; in s390_cpu_get_crash_info()
101 panic_info->u.s390.psw_mask = cpu->env.psw.mask; in s390_cpu_get_crash_info()
102 panic_info->u.s390.psw_addr = cpu->env.psw.addr; in s390_cpu_get_crash_info()
103 panic_info->u.s390.reason = cpu->env.crash_reason; in s390_cpu_get_crash_info()
112 CPUState *cs = CPU(obj); in s390_cpu_get_crash_info_qom()
129 CPUState *cs = CPU(obj); in s390_cpu_system_init()
130 S390CPU *cpu = S390_CPU(obj); in s390_cpu_system_init() local
135 cpu->env.tod_timer = in s390_cpu_system_init()
136 timer_new_ns(QEMU_CLOCK_VIRTUAL, s390x_tod_timer, cpu); in s390_cpu_system_init()
137 cpu->env.cpu_timer = in s390_cpu_system_init()
138 timer_new_ns(QEMU_CLOCK_VIRTUAL, s390x_cpu_timer, cpu); in s390_cpu_system_init()
139 s390_cpu_set_state(S390_CPU_STATE_STOPPED, cpu); in s390_cpu_system_init()
144 S390CPU *cpu = S390_CPU(dev); in s390_cpu_system_realize() local
148 if (cpu->env.core_id >= max_cpus) { in s390_cpu_system_realize()
149 error_setg(errp, "Unable to add CPU with core-id: %" PRIu32 in s390_cpu_system_realize()
150 ", maximum core-id: %d", cpu->env.core_id, in s390_cpu_system_realize()
155 if (cpu_exists(cpu->env.core_id)) { in s390_cpu_system_realize()
156 error_setg(errp, "Unable to add CPU with core-id: %" PRIu32 in s390_cpu_system_realize()
157 ", it already exists", cpu->env.core_id); in s390_cpu_system_realize()
162 CPU(cpu)->cpu_index = cpu->env.core_id; in s390_cpu_system_realize()
168 S390CPU *cpu = S390_CPU(obj); in s390_cpu_finalize() local
170 timer_free(cpu->env.tod_timer); in s390_cpu_finalize()
171 timer_free(cpu->env.cpu_timer); in s390_cpu_finalize()
173 qemu_unregister_reset(s390_cpu_machine_reset_cb, cpu); in s390_cpu_finalize()
174 g_free(cpu->irqstate); in s390_cpu_finalize()
193 static bool disabled_wait(CPUState *cpu) in disabled_wait() argument
195 return cpu->halted && !(S390_CPU(cpu)->env.psw.mask & in disabled_wait()
201 CPUState *cpu; in s390_count_running_cpus() local
204 CPU_FOREACH(cpu) { in s390_count_running_cpus()
205 uint8_t state = S390_CPU(cpu)->env.cpu_state; in s390_count_running_cpus()
208 if (!disabled_wait(cpu)) { in s390_count_running_cpus()
217 unsigned int s390_cpu_halt(S390CPU *cpu) in s390_cpu_halt() argument
219 CPUState *cs = CPU(cpu); in s390_cpu_halt()
230 void s390_cpu_unhalt(S390CPU *cpu) in s390_cpu_unhalt() argument
232 CPUState *cs = CPU(cpu); in s390_cpu_unhalt()
241 unsigned int s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu) in s390_cpu_set_state() argument
243 trace_cpu_set_state(CPU(cpu)->cpu_index, cpu_state); in s390_cpu_set_state()
248 /* halt the cpu for common infrastructure */ in s390_cpu_set_state()
249 s390_cpu_halt(cpu); in s390_cpu_set_state()
254 * Starting a CPU with a PSW WAIT bit set: in s390_cpu_set_state()
257 * be done when the CPU actually has work (an interrupt). in s390_cpu_set_state()
259 if (!tcg_enabled() || !(cpu->env.psw.mask & PSW_MASK_WAIT)) { in s390_cpu_set_state()
260 s390_cpu_unhalt(cpu); in s390_cpu_set_state()
264 error_report("Requested CPU state is not a valid S390 CPU state: %u", in s390_cpu_set_state()
268 if (kvm_enabled() && cpu->env.cpu_state != cpu_state) { in s390_cpu_set_state()
269 kvm_s390_set_cpu_state(cpu, cpu_state); in s390_cpu_set_state()
271 cpu->env.cpu_state = cpu_state; in s390_cpu_set_state()
300 void s390_enable_css_support(S390CPU *cpu) in s390_enable_css_support() argument
303 kvm_s390_enable_css_support(cpu); in s390_enable_css_support()