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