this repo has no description
1#ifndef _COMMPAGE_H
2#define _COMMPAGE_H
3#include <stdbool.h>
4#include <stdint.h>
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10void commpage_setup(bool _64bit);
11unsigned long commpage_address(bool _64bit);
12
13union cpu_flags1 {
14 struct {
15 uint8_t step: 4;
16 uint8_t model: 4;
17 uint8_t family: 4;
18 uint8_t type: 2;
19 uint8_t pad1: 2;
20 uint8_t emodel: 4;
21 uint8_t efamily: 8;
22 uint8_t pad2: 4;
23 };
24 uint32_t reg;
25};
26
27union cpu_flags2 {
28 struct {
29 uint8_t fpu: 1;
30 uint8_t vme: 1;
31 uint8_t de: 1;
32 uint8_t pse: 1;
33 uint8_t tsc: 1;
34 uint8_t msr: 1;
35 uint8_t pae: 1;
36 uint8_t mce: 1;
37 uint8_t cx8: 1;
38 uint8_t apic: 1;
39 uint8_t reserved1: 1;
40 uint8_t sep: 1;
41 uint8_t mtrr: 1;
42 uint8_t pge: 1;
43 uint8_t mca: 1;
44 uint8_t cmov: 1;
45 uint8_t pat: 1;
46 uint8_t pse36: 1;
47 uint8_t psn: 1;
48 uint8_t clfsh: 1;
49 uint8_t reserved2: 1;
50 uint8_t ds: 1;
51 uint8_t acpi: 1;
52 uint8_t mmx: 1;
53 uint8_t fxsr: 1;
54 uint8_t sse: 1;
55 uint8_t sse2: 1;
56 uint8_t ss: 1;
57 uint8_t htt: 1;
58 uint8_t tm: 1;
59 uint8_t ia64: 1;
60 uint8_t pbe: 1;
61 };
62 uint32_t reg;
63};
64
65union cpu_flags3 {
66 struct {
67 uint32_t sse3: 1;
68 uint32_t pclmulqdq: 1;
69 uint32_t dtes64: 1;
70 uint32_t monitor: 1;
71 uint32_t dscpl: 1;
72 uint32_t vmx: 1;
73 uint32_t smx: 1;
74 uint32_t est: 1;
75 uint32_t tm2: 1;
76 uint32_t ssse3: 1;
77 uint32_t cntxid: 1;
78 uint32_t sdbg: 1;
79 uint32_t fma: 1;
80 uint32_t cx16: 1;
81 uint32_t xtpr: 1;
82 uint32_t pdcm: 1;
83 uint32_t reserved1: 1;
84 uint32_t pcid: 1;
85 uint32_t dca: 1;
86 uint32_t sse41: 1;
87 uint32_t sse42: 1;
88 uint32_t x2apic: 1;
89 uint32_t movbe: 1;
90 uint32_t popcnt: 1;
91 uint32_t tscdadline: 1;
92 uint32_t aes: 1;
93 uint32_t xsave: 1;
94 uint32_t osxsave: 1;
95 uint32_t avx: 1;
96 uint32_t f16c: 1;
97 uint32_t rdrnd: 1;
98 uint32_t hypervisor: 1;
99 };
100 uint32_t reg;
101};
102
103union cpu_flags4 {
104 struct {
105 uint8_t fsgsbase: 1;
106 uint8_t ia32tscadjust: 1;
107 uint8_t sgx: 1;
108 uint8_t bmi1: 1;
109 uint8_t hle: 1;
110 uint8_t avx2: 1;
111 uint8_t reserved1: 1;
112 uint8_t smep: 1;
113 uint8_t bmi2: 1;
114 uint8_t erms: 1;
115 uint8_t invpcid: 1;
116 uint8_t rtm: 1;
117 uint8_t pqm: 1;
118 uint8_t fpucsdsdeprecated: 1;
119 uint8_t mpx: 1;
120 uint8_t pqe: 1;
121 uint8_t avx512f: 1;
122 uint8_t avx512dq: 1;
123 uint8_t rdseed: 1;
124 uint8_t adx: 1;
125 uint8_t smap: 1;
126 uint8_t avx512ifma: 1;
127 uint8_t pcommit: 1;
128 uint8_t clflushopt: 1;
129 uint8_t clwb: 1;
130 uint8_t intelproctrace: 1;
131 uint8_t avx512pf: 1;
132 uint8_t avx512er: 1;
133 uint8_t avx512cd: 1;
134 uint8_t sha: 1;
135 uint8_t avx512bw: 1;
136 uint8_t avx512vl: 1;
137 };
138 uint32_t reg;
139};
140
141union cpu_flags5 {
142 struct {
143 uint8_t prefetchwt1: 1;
144 uint8_t avx512vbmi: 1;
145 uint32_t reserved: 30;
146 };
147 uint32_t reg;
148};
149
150#ifdef __cplusplus
151}
152#endif
153
154#endif
155