summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/AMD64/CPUID.h
blob: 0ab95c078450212a69b9f0d796bed4c5159ecb71 (plain)
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/Defines.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