Voxia OS
v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
cpuid.h
Go to the documentation of this file.
1
#ifndef __HAL__CPU__CPUID_H_
2
#define __HAL__CPU__CPUID_H_
3
4
#include <
type.h
>
5
6
enum
{
7
CPUID_FEAT_ECX_SSE3
= 1 << 0,
8
CPUID_FEAT_ECX_PCLMUL
= 1 << 1,
9
CPUID_FEAT_ECX_DTES64
= 1 << 2,
10
CPUID_FEAT_ECX_MONITOR
= 1 << 3,
11
CPUID_FEAT_ECX_DS_CPL
= 1 << 4,
12
CPUID_FEAT_ECX_VMX
= 1 << 5,
13
CPUID_FEAT_ECX_SMX
= 1 << 6,
14
CPUID_FEAT_ECX_EST
= 1 << 7,
15
CPUID_FEAT_ECX_TM2
= 1 << 8,
16
CPUID_FEAT_ECX_SSSE3
= 1 << 9,
17
CPUID_FEAT_ECX_CID
= 1 << 10,
18
CPUID_FEAT_ECX_SDBG
= 1 << 11,
19
CPUID_FEAT_ECX_FMA
= 1 << 12,
20
CPUID_FEAT_ECX_CX16
= 1 << 13,
21
CPUID_FEAT_ECX_XTPR
= 1 << 14,
22
CPUID_FEAT_ECX_PDCM
= 1 << 15,
23
CPUID_FEAT_ECX_PCID
= 1 << 17,
24
CPUID_FEAT_ECX_DCA
= 1 << 18,
25
CPUID_FEAT_ECX_SSE4_1
= 1 << 19,
26
CPUID_FEAT_ECX_SSE4_2
= 1 << 20,
27
CPUID_FEAT_ECX_X2APIC
= 1 << 21,
28
CPUID_FEAT_ECX_MOVBE
= 1 << 22,
29
CPUID_FEAT_ECX_POPCNT
= 1 << 23,
30
CPUID_FEAT_ECX_TSC
= 1 << 24,
31
CPUID_FEAT_ECX_AES
= 1 << 25,
32
CPUID_FEAT_ECX_XSAVE
= 1 << 26,
33
CPUID_FEAT_ECX_OSXSAVE
= 1 << 27,
34
CPUID_FEAT_ECX_AVX
= 1 << 28,
35
CPUID_FEAT_ECX_F16C
= 1 << 29,
36
CPUID_FEAT_ECX_RDRAND
= 1 << 30,
37
CPUID_FEAT_ECX_HYPERVISOR
= 1 << 31,
38
39
CPUID_FEAT_EDX_FPU
= 1 << 0,
40
CPUID_FEAT_EDX_VME
= 1 << 1,
41
CPUID_FEAT_EDX_DE
= 1 << 2,
42
CPUID_FEAT_EDX_PSE
= 1 << 3,
43
CPUID_FEAT_EDX_TSC
= 1 << 4,
44
CPUID_FEAT_EDX_MSR
= 1 << 5,
45
CPUID_FEAT_EDX_PAE
= 1 << 6,
46
CPUID_FEAT_EDX_MCE
= 1 << 7,
47
CPUID_FEAT_EDX_CX8
= 1 << 8,
48
CPUID_FEAT_EDX_APIC
= 1 << 9,
49
CPUID_FEAT_EDX_SEP
= 1 << 11,
50
CPUID_FEAT_EDX_MTRR
= 1 << 12,
51
CPUID_FEAT_EDX_PGE
= 1 << 13,
52
CPUID_FEAT_EDX_MCA
= 1 << 14,
53
CPUID_FEAT_EDX_CMOV
= 1 << 15,
54
CPUID_FEAT_EDX_PAT
= 1 << 16,
55
CPUID_FEAT_EDX_PSE36
= 1 << 17,
56
CPUID_FEAT_EDX_PSN
= 1 << 18,
57
CPUID_FEAT_EDX_CLFLUSH
= 1 << 19,
58
CPUID_FEAT_EDX_DS
= 1 << 21,
59
CPUID_FEAT_EDX_ACPI
= 1 << 22,
60
CPUID_FEAT_EDX_MMX
= 1 << 23,
61
CPUID_FEAT_EDX_FXSR
= 1 << 24,
62
CPUID_FEAT_EDX_SSE
= 1 << 25,
63
CPUID_FEAT_EDX_SSE2
= 1 << 26,
64
CPUID_FEAT_EDX_SS
= 1 << 27,
65
CPUID_FEAT_EDX_HTT
= 1 << 28,
66
CPUID_FEAT_EDX_TM
= 1 << 29,
67
CPUID_FEAT_EDX_IA64
= 1 << 30,
68
CPUID_FEAT_EDX_PBE
= 1 << 31
69
};
70
71
void
cpuid
(
uint32_t
leaf,
uint32_t
subleaf,
uint32_t
* eax,
uint32_t
* ebx,
72
uint32_t
* ecx,
uint32_t
* edx);
73
int
cpuid_get_model
(
void
);
74
boolean_t
cpuid_check_apic
(
void
);
75
int
cpuid_get_bsp_id
(
void
);
76
77
#endif
//__HAL__CPU__CPUID_H_
cpuid_check_apic
boolean_t cpuid_check_apic(void)
Definition
cpuid.c:31
CPUID_FEAT_EDX_TM
@ CPUID_FEAT_EDX_TM
Definition
cpuid.h:66
CPUID_FEAT_ECX_RDRAND
@ CPUID_FEAT_ECX_RDRAND
Definition
cpuid.h:36
CPUID_FEAT_ECX_TSC
@ CPUID_FEAT_ECX_TSC
Definition
cpuid.h:30
CPUID_FEAT_EDX_IA64
@ CPUID_FEAT_EDX_IA64
Definition
cpuid.h:67
CPUID_FEAT_ECX_EST
@ CPUID_FEAT_ECX_EST
Definition
cpuid.h:14
CPUID_FEAT_EDX_DS
@ CPUID_FEAT_EDX_DS
Definition
cpuid.h:58
CPUID_FEAT_ECX_DS_CPL
@ CPUID_FEAT_ECX_DS_CPL
Definition
cpuid.h:11
CPUID_FEAT_EDX_CLFLUSH
@ CPUID_FEAT_EDX_CLFLUSH
Definition
cpuid.h:57
CPUID_FEAT_ECX_HYPERVISOR
@ CPUID_FEAT_ECX_HYPERVISOR
Definition
cpuid.h:37
CPUID_FEAT_EDX_TSC
@ CPUID_FEAT_EDX_TSC
Definition
cpuid.h:43
CPUID_FEAT_ECX_DCA
@ CPUID_FEAT_ECX_DCA
Definition
cpuid.h:24
CPUID_FEAT_EDX_PAE
@ CPUID_FEAT_EDX_PAE
Definition
cpuid.h:45
CPUID_FEAT_EDX_CX8
@ CPUID_FEAT_EDX_CX8
Definition
cpuid.h:47
CPUID_FEAT_ECX_F16C
@ CPUID_FEAT_ECX_F16C
Definition
cpuid.h:35
CPUID_FEAT_ECX_OSXSAVE
@ CPUID_FEAT_ECX_OSXSAVE
Definition
cpuid.h:33
CPUID_FEAT_ECX_X2APIC
@ CPUID_FEAT_ECX_X2APIC
Definition
cpuid.h:27
CPUID_FEAT_ECX_PCID
@ CPUID_FEAT_ECX_PCID
Definition
cpuid.h:23
CPUID_FEAT_EDX_FXSR
@ CPUID_FEAT_EDX_FXSR
Definition
cpuid.h:61
CPUID_FEAT_ECX_SSSE3
@ CPUID_FEAT_ECX_SSSE3
Definition
cpuid.h:16
CPUID_FEAT_EDX_PSE
@ CPUID_FEAT_EDX_PSE
Definition
cpuid.h:42
CPUID_FEAT_EDX_MTRR
@ CPUID_FEAT_EDX_MTRR
Definition
cpuid.h:50
CPUID_FEAT_EDX_VME
@ CPUID_FEAT_EDX_VME
Definition
cpuid.h:40
CPUID_FEAT_ECX_XTPR
@ CPUID_FEAT_ECX_XTPR
Definition
cpuid.h:21
CPUID_FEAT_ECX_SSE4_1
@ CPUID_FEAT_ECX_SSE4_1
Definition
cpuid.h:25
CPUID_FEAT_EDX_SEP
@ CPUID_FEAT_EDX_SEP
Definition
cpuid.h:49
CPUID_FEAT_EDX_DE
@ CPUID_FEAT_EDX_DE
Definition
cpuid.h:41
CPUID_FEAT_EDX_MSR
@ CPUID_FEAT_EDX_MSR
Definition
cpuid.h:44
CPUID_FEAT_ECX_MONITOR
@ CPUID_FEAT_ECX_MONITOR
Definition
cpuid.h:10
CPUID_FEAT_ECX_VMX
@ CPUID_FEAT_ECX_VMX
Definition
cpuid.h:12
CPUID_FEAT_ECX_POPCNT
@ CPUID_FEAT_ECX_POPCNT
Definition
cpuid.h:29
CPUID_FEAT_ECX_AVX
@ CPUID_FEAT_ECX_AVX
Definition
cpuid.h:34
CPUID_FEAT_EDX_APIC
@ CPUID_FEAT_EDX_APIC
Definition
cpuid.h:48
CPUID_FEAT_ECX_AES
@ CPUID_FEAT_ECX_AES
Definition
cpuid.h:31
CPUID_FEAT_ECX_PDCM
@ CPUID_FEAT_ECX_PDCM
Definition
cpuid.h:22
CPUID_FEAT_EDX_PSE36
@ CPUID_FEAT_EDX_PSE36
Definition
cpuid.h:55
CPUID_FEAT_ECX_FMA
@ CPUID_FEAT_ECX_FMA
Definition
cpuid.h:19
CPUID_FEAT_ECX_XSAVE
@ CPUID_FEAT_ECX_XSAVE
Definition
cpuid.h:32
CPUID_FEAT_EDX_CMOV
@ CPUID_FEAT_EDX_CMOV
Definition
cpuid.h:53
CPUID_FEAT_ECX_SSE3
@ CPUID_FEAT_ECX_SSE3
Definition
cpuid.h:7
CPUID_FEAT_ECX_DTES64
@ CPUID_FEAT_ECX_DTES64
Definition
cpuid.h:9
CPUID_FEAT_ECX_PCLMUL
@ CPUID_FEAT_ECX_PCLMUL
Definition
cpuid.h:8
CPUID_FEAT_EDX_PSN
@ CPUID_FEAT_EDX_PSN
Definition
cpuid.h:56
CPUID_FEAT_EDX_SSE
@ CPUID_FEAT_EDX_SSE
Definition
cpuid.h:62
CPUID_FEAT_EDX_SSE2
@ CPUID_FEAT_EDX_SSE2
Definition
cpuid.h:63
CPUID_FEAT_ECX_SMX
@ CPUID_FEAT_ECX_SMX
Definition
cpuid.h:13
CPUID_FEAT_EDX_FPU
@ CPUID_FEAT_EDX_FPU
Definition
cpuid.h:39
CPUID_FEAT_EDX_PAT
@ CPUID_FEAT_EDX_PAT
Definition
cpuid.h:54
CPUID_FEAT_ECX_SSE4_2
@ CPUID_FEAT_ECX_SSE4_2
Definition
cpuid.h:26
CPUID_FEAT_ECX_MOVBE
@ CPUID_FEAT_ECX_MOVBE
Definition
cpuid.h:28
CPUID_FEAT_EDX_MMX
@ CPUID_FEAT_EDX_MMX
Definition
cpuid.h:60
CPUID_FEAT_EDX_HTT
@ CPUID_FEAT_EDX_HTT
Definition
cpuid.h:65
CPUID_FEAT_EDX_MCA
@ CPUID_FEAT_EDX_MCA
Definition
cpuid.h:52
CPUID_FEAT_ECX_TM2
@ CPUID_FEAT_ECX_TM2
Definition
cpuid.h:15
CPUID_FEAT_ECX_CX16
@ CPUID_FEAT_ECX_CX16
Definition
cpuid.h:20
CPUID_FEAT_EDX_MCE
@ CPUID_FEAT_EDX_MCE
Definition
cpuid.h:46
CPUID_FEAT_EDX_PBE
@ CPUID_FEAT_EDX_PBE
Definition
cpuid.h:68
CPUID_FEAT_EDX_SS
@ CPUID_FEAT_EDX_SS
Definition
cpuid.h:64
CPUID_FEAT_EDX_ACPI
@ CPUID_FEAT_EDX_ACPI
Definition
cpuid.h:59
CPUID_FEAT_ECX_SDBG
@ CPUID_FEAT_ECX_SDBG
Definition
cpuid.h:18
CPUID_FEAT_EDX_PGE
@ CPUID_FEAT_EDX_PGE
Definition
cpuid.h:51
CPUID_FEAT_ECX_CID
@ CPUID_FEAT_ECX_CID
Definition
cpuid.h:17
cpuid_get_model
int cpuid_get_model(void)
Definition
cpuid.c:21
cpuid_get_bsp_id
int cpuid_get_bsp_id(void)
Definition
cpuid.c:37
cpuid
void cpuid(uint32_t leaf, uint32_t subleaf, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx)
Definition
cpuid.c:4
type.h
uint32_t
unsigned int uint32_t
Definition
type.h:19
boolean_t
uint8_t boolean_t
Definition
type.h:89
kernel
hal
cpu
cpuid.h
Generated on Sat May 30 2026 11:09:57 for Voxia OS by
1.13.2