33 lines
632 B
C
33 lines
632 B
C
/*
|
|
* Copyright (C) 2018 Intel Corporation.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef VCPUID_H_
|
|
#define VCPUID_H_
|
|
|
|
#define CPUID_CHECK_SUBLEAF (1U << 0U)
|
|
#define MAX_VM_VCPUID_ENTRIES 64U
|
|
|
|
/* Guest capability flags reported by CPUID */
|
|
#define GUEST_CAPS_PRIVILEGE_VM (1U << 0U)
|
|
|
|
struct vcpuid_entry {
|
|
uint32_t eax;
|
|
uint32_t ebx;
|
|
uint32_t ecx;
|
|
uint32_t edx;
|
|
uint32_t leaf;
|
|
uint32_t subleaf;
|
|
uint32_t flags;
|
|
uint32_t padding;
|
|
};
|
|
|
|
int32_t set_vcpuid_entries(struct acrn_vm *vm);
|
|
void guest_cpuid(struct acrn_vcpu *vcpu,
|
|
uint32_t *eax, uint32_t *ebx,
|
|
uint32_t *ecx, uint32_t *edx);
|
|
|
|
#endif /* VCPUID_H_ */
|