qemu-e2k/target/s390x
David Hildenbrand b1ab5f6068 s390x/tcg: implement STOP and RESET interrupts for TCG
Implement them like KVM implements/handles them. Both can only be
triggered via SIGP instructions. RESET has (almost) the lowest priority if
the CPU is running, and the highest if the CPU is STOPPED. This is handled
in SIGP code already. On delivery, we only have to care about the
"CPU running" scenario.

STOP is defined to be delivered after all other interrupts have been
delivered. Therefore it has the actual lowest priority.

As both can wake up a CPU if sleeping, indicate them correctly to
external code (e.g. cpu_has_work()).

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20170928203708.9376-25-david@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2017-10-20 13:32:10 +02:00
..
Makefile.objs s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
arch_dump.c exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly 2017-09-19 18:21:33 +02:00
cc_helper.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
cpu-qom.h target/s390x: get rid of next_core_id 2017-10-06 10:53:02 +02:00
cpu.c s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
cpu.h s390x/tcg: implement STOP and RESET interrupts for TCG 2017-10-20 13:32:10 +02:00
cpu_features.c s390x/cpumodel: fix max STFL(E) bit number 2017-10-06 10:53:02 +02:00
cpu_features.h target/s390x: introduce (test|set)_be_bit 2017-07-25 09:17:42 +02:00
cpu_features_def.h s390x/cpumodel: wire up new hardware features 2017-07-14 12:29:49 +02:00
cpu_models.c S390: use g_new() family of functions 2017-10-20 13:32:10 +02:00
cpu_models.h target/s390x: move some s390x typedefs to cpu-qom.h 2017-09-19 18:31:31 +02:00
crypto_helper.c s390x/tcg: add basic MSA features 2017-10-06 10:53:01 +02:00
diag.c S390: use g_new() family of functions 2017-10-20 13:32:10 +02:00
excp_helper.c s390x/tcg: implement STOP and RESET interrupts for TCG 2017-10-20 13:32:10 +02:00
fpu_helper.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
gdbstub.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
gen-features.c s390x/cpumodel: remove ais from z14 default model-> also for 2.10.1 2017-09-27 11:13:32 +02:00
helper.c s390x/tcg: implement STOP and RESET interrupts for TCG 2017-10-20 13:32:10 +02:00
helper.h s390x/tcg: make STFL store into the lowcore 2017-10-06 10:53:02 +02:00
insn-data.def s390x/tcg: add basic MSA features 2017-10-06 10:53:01 +02:00
insn-format.def target/s390x: Implement load-on-condition-2 insns 2017-06-23 09:17:44 -07:00
int_helper.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
internal.h s390x/tcg: implement STOP and RESET interrupts for TCG 2017-10-20 13:32:10 +02:00
interrupt.c s390x/tcg: implement STOP and RESET interrupts for TCG 2017-10-20 13:32:10 +02:00
ioinst.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
kvm-stub.c s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
kvm.c s390x/kvm: factor out actual handling of STOP interrupts 2017-10-20 13:32:10 +02:00
kvm_s390x.h s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
machine.c migration: pre_save return int 2017-09-27 11:35:59 +01:00
mem_helper.c s390x/tcg: make idte/ipte use the new _real mmu 2017-10-06 10:53:02 +02:00
misc_helper.c s390x/tcg: make STFL store into the lowcore 2017-10-06 10:53:02 +02:00
mmu_helper.c s390x/tcg: add MMU for real addresses 2017-10-06 10:53:02 +02:00
sigp.c s390x/tcg: implement STOP and RESET interrupts for TCG 2017-10-20 13:32:10 +02:00
trace-events s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
translate.c s390x/tcg: take care of external interrupt subclasses 2017-10-20 13:32:10 +02:00