18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (C) 2012,2013 - ARM Ltd 48c2ecf20Sopenharmony_ci * Author: Marc Zyngier <marc.zyngier@arm.com> 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * Derived from arch/arm/include/asm/kvm_coproc.h 78c2ecf20Sopenharmony_ci * Copyright (C) 2012 Rusty Russell IBM Corporation 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#ifndef __ARM64_KVM_COPROC_H__ 118c2ecf20Sopenharmony_ci#define __ARM64_KVM_COPROC_H__ 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#include <linux/kvm_host.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_civoid kvm_reset_sys_regs(struct kvm_vcpu *vcpu); 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cistruct kvm_sys_reg_table { 188c2ecf20Sopenharmony_ci const struct sys_reg_desc *table; 198c2ecf20Sopenharmony_ci size_t num; 208c2ecf20Sopenharmony_ci}; 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ciint kvm_handle_cp14_load_store(struct kvm_vcpu *vcpu); 238c2ecf20Sopenharmony_ciint kvm_handle_cp14_32(struct kvm_vcpu *vcpu); 248c2ecf20Sopenharmony_ciint kvm_handle_cp14_64(struct kvm_vcpu *vcpu); 258c2ecf20Sopenharmony_ciint kvm_handle_cp15_32(struct kvm_vcpu *vcpu); 268c2ecf20Sopenharmony_ciint kvm_handle_cp15_64(struct kvm_vcpu *vcpu); 278c2ecf20Sopenharmony_ciint kvm_handle_sys_reg(struct kvm_vcpu *vcpu); 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci#define kvm_coproc_table_init kvm_sys_reg_table_init 308c2ecf20Sopenharmony_civoid kvm_sys_reg_table_init(void); 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_cistruct kvm_one_reg; 338c2ecf20Sopenharmony_ciint kvm_arm_copy_sys_reg_indices(struct kvm_vcpu *vcpu, u64 __user *uindices); 348c2ecf20Sopenharmony_ciint kvm_arm_sys_reg_get_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *); 358c2ecf20Sopenharmony_ciint kvm_arm_sys_reg_set_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *); 368c2ecf20Sopenharmony_ciunsigned long kvm_arm_num_sys_reg_descs(struct kvm_vcpu *vcpu); 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci#endif /* __ARM64_KVM_COPROC_H__ */ 39