X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=target-s390x%2Fcpu.h;h=0ce82cf8300ddae876e597277632108f1634a945;hb=69e0b6dfa455924842bfcbfa810fde34899f1350;hp=642e661e7d0a36652984b71fff357fb48c5368d5;hpb=c3affe5670e5d0df8a7e06f1d6e80853633146df;p=qemu.git diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h index 642e661e7..0ce82cf83 100644 --- a/target-s390x/cpu.h +++ b/target-s390x/cpu.h @@ -78,6 +78,11 @@ typedef struct MchkQueue { uint16_t type; } MchkQueue; +/* Defined values for CPUS390XState.runtime_reg_dirty_mask */ +#define KVM_S390_RUNTIME_DIRTY_NONE 0 +#define KVM_S390_RUNTIME_DIRTY_PARTIAL 1 +#define KVM_S390_RUNTIME_DIRTY_FULL 2 + typedef struct CPUS390XState { uint64_t regs[16]; /* GP registers */ CPU_DoubleU fregs[16]; /* FP registers */ @@ -121,6 +126,13 @@ typedef struct CPUS390XState { uint64_t cputm; uint32_t todpr; + /* on S390 the runtime register set has two dirty states: + * a partial dirty state in which only the registers that + * are needed all the time are fetched. And a fully dirty + * state in which all runtime registers are fetched. + */ + uint32_t runtime_reg_dirty_mask; + CPU_COMMON /* reset does memset(0) up to here */ @@ -315,7 +327,6 @@ static inline int get_ilen(uint8_t opc) S390CPU *cpu_s390x_init(const char *cpu_model); void s390x_translate_init(void); int cpu_s390x_exec(CPUS390XState *s); -void do_interrupt (CPUS390XState *env); /* you can call this signal handler from your SIGBUS and SIGSEGV signal handlers to inform the virtual CPU of exceptions. non zero @@ -1069,6 +1080,7 @@ void kvm_s390_io_interrupt(S390CPU *cpu, uint16_t subchannel_id, uint32_t io_int_word); void kvm_s390_crw_mchk(S390CPU *cpu); void kvm_s390_enable_css_support(S390CPU *cpu); +int kvm_s390_get_registers_partial(CPUState *cpu); #else static inline void kvm_s390_io_interrupt(S390CPU *cpu, uint16_t subchannel_id, @@ -1083,6 +1095,10 @@ static inline void kvm_s390_crw_mchk(S390CPU *cpu) static inline void kvm_s390_enable_css_support(S390CPU *cpu) { } +static inline int kvm_s390_get_registers_partial(CPUState *cpu) +{ + return -ENOSYS; +} #endif static inline void s390_io_interrupt(S390CPU *cpu,