1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
/* ========================================
Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
File: CPUID.h
Purpose: CPUID flags.
Revision History:
30/01/24: Added file (amlel)
======================================== */
#pragma once
#include <NeKit/Config.h>
EXTERN_C {
#include <cpuid.h>
}
namespace Kernel {
enum {
kCPUFeatureSSE3 = 1 << 0,
kCPUFeaturePCLMUL = 1 << 1,
kCPUFeatureDTES64 = 1 << 2,
kCPUFeatureMONITOR = 1 << 3,
kCPUFeatureDS_CPL = 1 << 4,
kCPUFeatureVMX = 1 << 5,
kCPUFeatureSMX = 1 << 6,
kCPUFeatureEST = 1 << 7,
kCPUFeatureTM2 = 1 << 8,
kCPUFeatureSSSE3 = 1 << 9,
kCPUFeatureCID = 1 << 10,
kCPUFeatureSDBG = 1 << 11,
kCPUFeatureFMA = 1 << 12,
kCPUFeatureCX16 = 1 << 13,
kCPUFeatureXTPR = 1 << 14,
kCPUFeaturePDCM = 1 << 15,
kCPUFeaturePCID = 1 << 17,
kCPUFeatureDCA = 1 << 18,
kCPUFeatureSSE4_1 = 1 << 19,
kCPUFeatureSSE4_2 = 1 << 20,
kCPUFeatureX2APIC = 1 << 21,
kCPUFeatureMOVBE = 1 << 22,
kCPUFeaturePOP3C = 1 << 23,
kCPUFeatureECXTSC = 1 << 24,
kCPUFeatureAES = 1 << 25,
kCPUFeatureXSAVE = 1 << 26,
kCPUFeatureOSXSAVE = 1 << 27,
kCPUFeatureAVX = 1 << 28,
kCPUFeatureF16C = 1 << 29,
kCPUFeatureRDRAND = 1 << 30,
kCPUFeatureHYPERVISOR = 1 << 31,
kCPUFeatureFPU = 1 << 0,
kCPUFeatureVME = 1 << 1,
kCPUFeatureDE = 1 << 2,
kCPUFeaturePSE = 1 << 3,
kCPUFeatureEDXTSC = 1 << 4,
kCPUFeatureMSR = 1 << 5,
kCPUFeaturePAE = 1 << 6,
kCPUFeatureMCE = 1 << 7,
kCPUFeatureCX8 = 1 << 8,
kCPUFeatureAPIC = 1 << 9,
kCPUFeatureSEP = 1 << 11,
kCPUFeatureMTRR = 1 << 12,
kCPUFeaturePGE = 1 << 13,
kCPUFeatureMCA = 1 << 14,
kCPUFeatureCMOV = 1 << 15,
kCPUFeaturePAT = 1 << 16,
kCPUFeaturePSE36 = 1 << 17,
kCPUFeaturePSN = 1 << 18,
kCPUFeatureCLFLUSH = 1 << 19,
kCPUFeatureDS = 1 << 21,
kCPUFeatureACPI = 1 << 22,
kCPUFeatureMMX = 1 << 23,
kCPUFeatureFXSR = 1 << 24,
kCPUFeatureSSE = 1 << 25,
kCPUFeatureSSE2 = 1 << 26,
kCPUFeatureSS = 1 << 27,
kCPUFeatureHTT = 1 << 28,
kCPUFeatureTM = 1 << 29,
kCPUFeatureIA64 = 1 << 30,
kCPUFeaturePBE = 1 << 31
};
typedef Int64 CPUID;
} // namespace Kernel
|