2017-08-18 13:43:52 +02:00
|
|
|
/*
|
|
|
|
* QEMU KVM support -- s390x specific functions.
|
|
|
|
*
|
|
|
|
* Copyright (c) 2009 Ulrich Hecht
|
|
|
|
*
|
|
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
|
|
* See the COPYING file in the top-level directory.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef KVM_S390X_H
|
|
|
|
#define KVM_S390X_H
|
|
|
|
|
2018-06-27 15:44:04 +02:00
|
|
|
#include "cpu-qom.h"
|
|
|
|
|
2017-08-18 13:43:52 +02:00
|
|
|
struct kvm_s390_irq;
|
|
|
|
|
2018-01-29 13:56:10 +01:00
|
|
|
void kvm_s390_floating_interrupt_legacy(struct kvm_s390_irq *irq);
|
2017-08-18 13:43:52 +02:00
|
|
|
void kvm_s390_vcpu_interrupt(S390CPU *cpu, struct kvm_s390_irq *irq);
|
|
|
|
void kvm_s390_access_exception(S390CPU *cpu, uint16_t code, uint64_t te_code);
|
|
|
|
int kvm_s390_mem_op(S390CPU *cpu, vaddr addr, uint8_t ar, void *hostbuf,
|
|
|
|
int len, bool is_write);
|
2020-03-19 14:19:12 +01:00
|
|
|
int kvm_s390_mem_op_pv(S390CPU *cpu, vaddr addr, void *hostbuf, int len,
|
|
|
|
bool is_write);
|
2017-08-18 13:43:52 +02:00
|
|
|
void kvm_s390_program_interrupt(S390CPU *cpu, uint16_t code);
|
|
|
|
int kvm_s390_set_cpu_state(S390CPU *cpu, uint8_t cpu_state);
|
|
|
|
void kvm_s390_vcpu_interrupt_pre_save(S390CPU *cpu);
|
|
|
|
int kvm_s390_vcpu_interrupt_post_load(S390CPU *cpu);
|
2020-03-23 09:36:06 +01:00
|
|
|
int kvm_s390_get_hpage_1m(void);
|
2017-08-18 13:43:52 +02:00
|
|
|
int kvm_s390_get_ri(void);
|
|
|
|
int kvm_s390_get_gs(void);
|
|
|
|
int kvm_s390_get_clock(uint8_t *tod_high, uint64_t *tod_clock);
|
2017-10-04 12:57:50 +02:00
|
|
|
int kvm_s390_get_clock_ext(uint8_t *tod_high, uint64_t *tod_clock);
|
2018-06-27 15:44:03 +02:00
|
|
|
int kvm_s390_set_clock(uint8_t tod_high, uint64_t tod_clock);
|
|
|
|
int kvm_s390_set_clock_ext(uint8_t tod_high, uint64_t tod_clock);
|
2017-08-18 13:43:52 +02:00
|
|
|
void kvm_s390_enable_css_support(S390CPU *cpu);
|
|
|
|
int kvm_s390_assign_subch_ioeventfd(EventNotifier *notifier, uint32_t sch,
|
|
|
|
int vq, bool assign);
|
|
|
|
int kvm_s390_cmma_active(void);
|
|
|
|
void kvm_s390_cmma_reset(void);
|
2020-02-14 16:16:21 +01:00
|
|
|
void kvm_s390_reset_vcpu_clear(S390CPU *cpu);
|
|
|
|
void kvm_s390_reset_vcpu_normal(S390CPU *cpu);
|
|
|
|
void kvm_s390_reset_vcpu_initial(S390CPU *cpu);
|
2017-08-18 13:43:52 +02:00
|
|
|
int kvm_s390_set_mem_limit(uint64_t new_limit, uint64_t *hw_limit);
|
2019-04-17 13:31:42 +02:00
|
|
|
void kvm_s390_set_max_pagesize(uint64_t pagesize, Error **errp);
|
2017-08-18 13:43:52 +02:00
|
|
|
void kvm_s390_crypto_reset(void);
|
2017-09-28 22:36:50 +02:00
|
|
|
void kvm_s390_restart_interrupt(S390CPU *cpu);
|
|
|
|
void kvm_s390_stop_interrupt(S390CPU *cpu);
|
2020-11-13 23:10:22 +01:00
|
|
|
void kvm_s390_set_diag318(CPUState *cs, uint64_t diag318_info);
|
2017-08-18 13:43:52 +02:00
|
|
|
|
|
|
|
#endif /* KVM_S390X_H */
|