]> git.proxmox.com Git - mirror_qemu.git/blame - target/s390x/kvm_s390x.h
s390x/kvm: factor out SIGP code into sigp.c
[mirror_qemu.git] / target / s390x / kvm_s390x.h
CommitLineData
f16bbb9b
DH
1/*
2 * QEMU KVM support -- s390x specific functions.
3 *
4 * Copyright (c) 2009 Ulrich Hecht
5 *
6 * This work is licensed under the terms of the GNU GPL, version 2 or later.
7 * See the COPYING file in the top-level directory.
8 */
9
10#ifndef KVM_S390X_H
11#define KVM_S390X_H
12
13struct kvm_s390_irq;
14
15void kvm_s390_floating_interrupt(struct kvm_s390_irq *irq);
16void kvm_s390_service_interrupt(uint32_t parm);
17void kvm_s390_vcpu_interrupt(S390CPU *cpu, struct kvm_s390_irq *irq);
18void kvm_s390_access_exception(S390CPU *cpu, uint16_t code, uint64_t te_code);
19int kvm_s390_mem_op(S390CPU *cpu, vaddr addr, uint8_t ar, void *hostbuf,
20 int len, bool is_write);
21void kvm_s390_program_interrupt(S390CPU *cpu, uint16_t code);
22void kvm_s390_io_interrupt(uint16_t subchannel_id,
23 uint16_t subchannel_nr, uint32_t io_int_parm,
24 uint32_t io_int_word);
25void kvm_s390_crw_mchk(void);
26int kvm_s390_set_cpu_state(S390CPU *cpu, uint8_t cpu_state);
27void kvm_s390_vcpu_interrupt_pre_save(S390CPU *cpu);
28int kvm_s390_vcpu_interrupt_post_load(S390CPU *cpu);
29int kvm_s390_get_ri(void);
30int kvm_s390_get_gs(void);
31int kvm_s390_get_clock(uint8_t *tod_high, uint64_t *tod_clock);
7edd4a49 32int kvm_s390_get_clock_ext(uint8_t *tod_high, uint64_t *tod_clock);
f16bbb9b 33int kvm_s390_set_clock(uint8_t *tod_high, uint64_t *tod_clock);
7edd4a49 34int kvm_s390_set_clock_ext(uint8_t *tod_high, uint64_t *tod_clock);
f16bbb9b
DH
35void kvm_s390_enable_css_support(S390CPU *cpu);
36int kvm_s390_assign_subch_ioeventfd(EventNotifier *notifier, uint32_t sch,
37 int vq, bool assign);
f16bbb9b
DH
38int kvm_s390_get_memslot_count(void);
39int kvm_s390_cmma_active(void);
40void kvm_s390_cmma_reset(void);
41void kvm_s390_reset_vcpu(S390CPU *cpu);
42int kvm_s390_set_mem_limit(uint64_t new_limit, uint64_t *hw_limit);
43void kvm_s390_crypto_reset(void);
eabcea18
DH
44void kvm_s390_restart_interrupt(S390CPU *cpu);
45void kvm_s390_stop_interrupt(S390CPU *cpu);
f16bbb9b
DH
46
47/* implemented outside of target/s390x/ */
48int kvm_s390_inject_flic(struct kvm_s390_irq *irq);
49
50#endif /* KVM_S390X_H */