1 /* 2 * Copyright (C) 2021-2022 Intel Corporation. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef VCAT_H_ 8 #define VCAT_H_ 9 10 #include <asm/guest/vm.h> 11 12 bool is_l2_vcat_configured(const struct acrn_vm *vm); 13 bool is_l3_vcat_configured(const struct acrn_vm *vm); 14 uint16_t vcat_get_vcbm_len(const struct acrn_vm *vm, int res); 15 void init_vcat_msrs(struct acrn_vcpu *vcpu); 16 uint16_t vcat_get_num_vclosids(const struct acrn_vm *vm); 17 uint64_t vcat_pcbm_to_vcbm(const struct acrn_vm *vm, uint64_t pcbm, int res); 18 int32_t read_vcbm(const struct acrn_vcpu *vcpu, uint32_t vmsr, uint64_t *rval); 19 int32_t write_vcbm(struct acrn_vcpu *vcpu, uint32_t vmsr, uint64_t val); 20 int32_t read_vclosid(const struct acrn_vcpu *vcpu, uint64_t *rval); 21 int32_t write_vclosid(struct acrn_vcpu *vcpu, uint64_t val); 22 23 #endif /* VCAT_H_ */ 24 25