xref: /qemu/target/riscv/kvm/kvm_riscv.h (revision 7703a1d1e6479084d58ee3106a3c8a72ed7357eb)
1ad40be27SYifei Jiang /*
2ad40be27SYifei Jiang  * QEMU KVM support -- RISC-V specific functions.
3ad40be27SYifei Jiang  *
4ad40be27SYifei Jiang  * Copyright (c) 2020 Huawei Technologies Co., Ltd
5ad40be27SYifei Jiang  *
6ad40be27SYifei Jiang  * This program is free software; you can redistribute it and/or modify it
7ad40be27SYifei Jiang  * under the terms and conditions of the GNU General Public License,
8ad40be27SYifei Jiang  * version 2 or later, as published by the Free Software Foundation.
9ad40be27SYifei Jiang  *
10ad40be27SYifei Jiang  * This program is distributed in the hope it will be useful, but WITHOUT
11ad40be27SYifei Jiang  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12ad40be27SYifei Jiang  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
13ad40be27SYifei Jiang  * more details.
14ad40be27SYifei Jiang  *
15ad40be27SYifei Jiang  * You should have received a copy of the GNU General Public License along with
16ad40be27SYifei Jiang  * this program.  If not, see <http://www.gnu.org/licenses/>.
17ad40be27SYifei Jiang  */
18ad40be27SYifei Jiang 
19ad40be27SYifei Jiang #ifndef QEMU_KVM_RISCV_H
20ad40be27SYifei Jiang #define QEMU_KVM_RISCV_H
21ad40be27SYifei Jiang 
22*7703a1d1SPhilippe Mathieu-Daudé #include "target/riscv/cpu-qom.h"
23*7703a1d1SPhilippe Mathieu-Daudé 
24ad40be27SYifei Jiang void kvm_riscv_reset_vcpu(RISCVCPU *cpu);
252b650fbbSYifei Jiang void kvm_riscv_set_irq(RISCVCPU *cpu, int irq, int level);
269634ef7eSYong-Xuan Wang void kvm_riscv_aia_create(MachineState *machine, uint64_t group_shift,
279634ef7eSYong-Xuan Wang                           uint64_t aia_irq_num, uint64_t aia_msi_num,
289634ef7eSYong-Xuan Wang                           uint64_t aplic_base, uint64_t imsic_base,
299634ef7eSYong-Xuan Wang                           uint64_t guest_num);
30b8156640SDaniel Henrique Barboza void riscv_kvm_aplic_request(void *opaque, int irq, int level);
3186339515Sliguang.zhang int kvm_riscv_sync_mpstate_to_kvm(RISCVCPU *cpu, int state);
32bbef9140SDaniel Henrique Barboza void riscv_kvm_cpu_finalize_features(RISCVCPU *cpu, Error **errp);
33*7703a1d1SPhilippe Mathieu-Daudé uint64_t kvm_riscv_get_timebase_frequency(RISCVCPU *cpu);
34ad40be27SYifei Jiang 
35ad40be27SYifei Jiang #endif
36