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