xref: /openbmc/qemu/target/riscv/kvm/kvm_riscv.h (revision fb80f333)
1*fb80f333SDaniel Henrique Barboza /*
2*fb80f333SDaniel Henrique Barboza  * QEMU KVM support -- RISC-V specific functions.
3*fb80f333SDaniel Henrique Barboza  *
4*fb80f333SDaniel Henrique Barboza  * Copyright (c) 2020 Huawei Technologies Co., Ltd
5*fb80f333SDaniel Henrique Barboza  *
6*fb80f333SDaniel Henrique Barboza  * This program is free software; you can redistribute it and/or modify it
7*fb80f333SDaniel Henrique Barboza  * under the terms and conditions of the GNU General Public License,
8*fb80f333SDaniel Henrique Barboza  * version 2 or later, as published by the Free Software Foundation.
9*fb80f333SDaniel Henrique Barboza  *
10*fb80f333SDaniel Henrique Barboza  * This program is distributed in the hope it will be useful, but WITHOUT
11*fb80f333SDaniel Henrique Barboza  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12*fb80f333SDaniel Henrique Barboza  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
13*fb80f333SDaniel Henrique Barboza  * more details.
14*fb80f333SDaniel Henrique Barboza  *
15*fb80f333SDaniel Henrique Barboza  * You should have received a copy of the GNU General Public License along with
16*fb80f333SDaniel Henrique Barboza  * this program.  If not, see <http://www.gnu.org/licenses/>.
17*fb80f333SDaniel Henrique Barboza  */
18*fb80f333SDaniel Henrique Barboza 
19*fb80f333SDaniel Henrique Barboza #ifndef QEMU_KVM_RISCV_H
20*fb80f333SDaniel Henrique Barboza #define QEMU_KVM_RISCV_H
21*fb80f333SDaniel Henrique Barboza 
22*fb80f333SDaniel Henrique Barboza void kvm_riscv_reset_vcpu(RISCVCPU *cpu);
23*fb80f333SDaniel Henrique Barboza void kvm_riscv_set_irq(RISCVCPU *cpu, int irq, int level);
24*fb80f333SDaniel Henrique Barboza void kvm_riscv_aia_create(MachineState *machine, uint64_t group_shift,
25*fb80f333SDaniel Henrique Barboza                           uint64_t aia_irq_num, uint64_t aia_msi_num,
26*fb80f333SDaniel Henrique Barboza                           uint64_t aplic_base, uint64_t imsic_base,
27*fb80f333SDaniel Henrique Barboza                           uint64_t guest_num);
28*fb80f333SDaniel Henrique Barboza void riscv_kvm_aplic_request(void *opaque, int irq, int level);
29*fb80f333SDaniel Henrique Barboza int kvm_riscv_sync_mpstate_to_kvm(RISCVCPU *cpu, int state);
30*fb80f333SDaniel Henrique Barboza 
31*fb80f333SDaniel Henrique Barboza #endif
32