aboutsummaryrefslogtreecommitdiff
path: root/target-s390x/cpu.h
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2016-05-17 16:49:11 +0100
committerPeter Maydell <peter.maydell@linaro.org>2016-05-17 16:49:11 +0100
commita257c741491ff1c3c192d13a89c136dd6401c54d (patch)
tree5e1b706fb4f5b082c4cf928caad2a21fe7213a97 /target-s390x/cpu.h
parent5a3fd960f39c17cef5ffa8703652bea3828bbe48 (diff)
parentc26916942a4a085b316fd102d1725412a6544b04 (diff)
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20160517' into staging
First batch of s390x patches for 2.7: - The new machine for 2.7 - Make use of the runtime instrumentation support introduced in the kernel - Enhance our ipl (boot) process: We can now start from devices in subchannel sets > 0 as well. As a bonus, the conversion to diag308 in the bios allows us to get rid of the gr7 hack. - Xiaoqiang Zhao's SCLP qomification patches - Several fixes in the s390x pci implementation # gpg: Signature made Tue 17 May 2016 15:35:32 BST using RSA key ID C6F02FAF # gpg: Good signature from "Cornelia Huck <huckc@linux.vnet.ibm.com>" # gpg: aka "Cornelia Huck <cornelia.huck@de.ibm.com>" * remotes/cohuck/tags/s390x-20160517: s390x/pci: remove whitespace s390x/pci: add length checking for pci sclp handlers s390x/pci: enhance mpcifc_service_call s390x/pci: fix s390_pci_sclp_deconfigure s390x/pci: introduce S390PCIBusDevice.iommu_enabled s390x/pci: export pci_dereg_ioat and pci_dereg_irqs s390x/pci: separate s390_pcihost_iommu_configure function s390x/pci: separate s390_sclp_configure function s390x/pci: fix reg_irqs() hw/char: QOM'ify sclpconsole.c hw/char: QOM'ify sclpconsole-lm.c s390x/ipl: Remove redundant usage of gr7 s390-ccw.img: rebuild image pc-bios/s390-ccw: Get device address via diag 308/6 s390x/ipl: Add ssid field to IplParameterBlock s390x/ipl: Provide ipl parameter block s390x/ipl: Add type and length checks for IplParameterBlock values s390x/ipl: Extend the IplParameterBlock struct s390x: enable runtime instrumentation s390x: add compat machine for 2.7 Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target-s390x/cpu.h')
-rw-r--r--target-s390x/cpu.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h
index 07f76ad884..996b79023e 100644
--- a/target-s390x/cpu.h
+++ b/target-s390x/cpu.h
@@ -135,6 +135,8 @@ typedef struct CPUS390XState {
uint64_t gbea;
uint64_t pp;
+ uint8_t riccb[64];
+
CPU_COMMON
/* reset does memset(0) up to here */
@@ -1159,6 +1161,7 @@ void kvm_s390_reset_vcpu(S390CPU *cpu);
int kvm_s390_set_mem_limit(KVMState *s, uint64_t new_limit, uint64_t *hw_limit);
void kvm_s390_vcpu_interrupt_pre_save(S390CPU *cpu);
int kvm_s390_vcpu_interrupt_post_load(S390CPU *cpu);
+int kvm_s390_get_ri(void);
void kvm_s390_crypto_reset(void);
#else
static inline void kvm_s390_io_interrupt(uint16_t subchannel_id,
@@ -1209,6 +1212,10 @@ static inline int kvm_s390_vcpu_interrupt_post_load(S390CPU *cpu)
{
return 0;
}
+static inline int kvm_s390_get_ri(void)
+{
+ return 0;
+}
static inline void kvm_s390_crypto_reset(void)
{
}
@@ -1272,11 +1279,22 @@ static inline bool vregs_needed(void *opaque)
}
return 0;
}
+static inline bool riccb_needed(void *opaque)
+{
+ if (kvm_enabled()) {
+ return kvm_s390_get_ri();
+ }
+ return 0;
+}
#else
static inline bool vregs_needed(void *opaque)
{
return 0;
}
+static inline bool riccb_needed(void *opaque)
+{
+ return 0;
+}
#endif
/* machine check interruption code */