diff options
| author | Janosch Frank | 2020-03-19 14:19:14 +0100 |
|---|---|---|
| committer | Cornelia Huck | 2020-04-29 14:31:32 +0200 |
| commit | 0f73c5b30b8ba6c0828608be496d2f59a5427539 (patch) | |
| tree | 1f972b6b4ab69818fedb4cf41c5ecaa9026790d2 /include/hw/s390x | |
| parent | s390x: protvirt: Move STSI data over SIDAD (diff) | |
| download | qemu-0f73c5b30b8ba6c0828608be496d2f59a5427539.tar.gz qemu-0f73c5b30b8ba6c0828608be496d2f59a5427539.tar.xz qemu-0f73c5b30b8ba6c0828608be496d2f59a5427539.zip | |
s390x: protvirt: SCLP interpretation
SCLP for a protected guest is done over the SIDAD, so we need to use
the s390_cpu_pv_mem_* functions to access the SIDAD instead of guest
memory when reading/writing SCBs.
To not confuse the sclp emulation, we set 0x4000 as the SCCB address,
since the function that injects the sclp external interrupt would
reject a zero sccb address.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Message-Id: <20200319131921.2367-10-frankja@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Diffstat (limited to 'include/hw/s390x')
| -rw-r--r-- | include/hw/s390x/sclp.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/hw/s390x/sclp.h b/include/hw/s390x/sclp.h index cd7b24359f..822eff4396 100644 --- a/include/hw/s390x/sclp.h +++ b/include/hw/s390x/sclp.h @@ -217,5 +217,7 @@ void s390_sclp_init(void); void sclp_service_interrupt(uint32_t sccb); void raise_irq_cpu_hotplug(void); int sclp_service_call(CPUS390XState *env, uint64_t sccb, uint32_t code); +int sclp_service_call_protected(CPUS390XState *env, uint64_t sccb, + uint32_t code); #endif |
