1/* @title: CPUID Definitions */
2#pragma once
3#include <math/bit.h>
4
5#define CPUID_LEAF_VENDOR 0x0
6#define CPUID_VENDOR_EBX_AMD 0x68747541 /* "Auth" */
7#define CPUID_VENDOR_EBX_HYGON 0x6f677948 /* "Hygo" */
8
9/* Leaf 1: feature flags */
10#define CPUID_LEAF_FEATURES 0x1
11#define CPUID_ECX_X2APIC BIT(21)
12#define CPUID_ECX_HYPERVISOR BIT(31)
13
14/* Hypervisor leaves */
15#define CPUID_HV_LEAF_BASE 0x40000000
16#define CPUID_HV_LEAF_LIMIT 0x40010000
17#define CPUID_HV_LEAF_STRIDE 0x100
18#define CPUID_HV_SIGNATURE_LEN 12
19