dbs_arch/x86_64/cpuid/
cpu_leaf.rs1#![allow(missing_docs)]
6
7#![allow(unused)]
10pub mod leaf_0x0 {
11 pub const LEAF_NUM: u32 = 0x0;
12}
13
14pub mod leaf_0x1 {
15 pub const LEAF_NUM: u32 = 0x1;
16
17 pub mod eax {
18 use crate::cpuid::bit_helper::BitRange;
19
20 pub const EXTENDED_FAMILY_ID_BITRANGE: BitRange = bit_range!(27, 20);
21 pub const EXTENDED_PROCESSOR_MODEL_BITRANGE: BitRange = bit_range!(19, 16);
22 pub const PROCESSOR_TYPE_BITRANGE: BitRange = bit_range!(13, 12);
23 pub const PROCESSOR_FAMILY_BITRANGE: BitRange = bit_range!(11, 8);
24 pub const PROCESSOR_MODEL_BITRANGE: BitRange = bit_range!(7, 4);
25 pub const STEPPING_BITRANGE: BitRange = bit_range!(3, 0);
26 }
27
28 pub mod ebx {
29 use crate::cpuid::bit_helper::BitRange;
30
31 pub const APICID_BITRANGE: BitRange = bit_range!(31, 24);
33 pub const CPU_COUNT_BITRANGE: BitRange = bit_range!(23, 16);
35 pub const CLFLUSH_SIZE_BITRANGE: BitRange = bit_range!(15, 8);
37 }
38
39 pub mod ecx {
40 pub const DTES64_BITINDEX: u32 = 2;
42 pub const MONITOR_BITINDEX: u32 = 3;
44 pub const DS_CPL_SHIFT: u32 = 4;
46 pub const TM2_BITINDEX: u32 = 8;
51 pub const CNXT_ID_BITINDEX: u32 = 10;
53 pub const SDBG_BITINDEX: u32 = 11;
55 pub const FMA_BITINDEX: u32 = 12;
56 pub const XTPR_UPDATE_BITINDEX: u32 = 14;
58 pub const PDCM_BITINDEX: u32 = 15;
60 pub const MOVBE_BITINDEX: u32 = 22;
62 pub const TSC_DEADLINE_TIMER_BITINDEX: u32 = 24;
63 pub const OSXSAVE_BITINDEX: u32 = 27;
64 pub const HYPERVISOR_BITINDEX: u32 = 31;
66 }
67
68 pub mod edx {
69 pub const PSN_BITINDEX: u32 = 18; pub const DS_BITINDEX: u32 = 21; pub const ACPI_BITINDEX: u32 = 22; pub const SS_BITINDEX: u32 = 27; pub const HTT_BITINDEX: u32 = 28; pub const TM_BITINDEX: u32 = 29; pub const PBE_BITINDEX: u32 = 31; }
77}
78
79pub mod leaf_cache_parameters {
80 pub mod eax {
81 use crate::cpuid::bit_helper::BitRange;
82
83 pub const CACHE_LEVEL_BITRANGE: BitRange = bit_range!(7, 5);
84 pub const MAX_CPUS_PER_CORE_BITRANGE: BitRange = bit_range!(25, 14);
85 }
86}
87
88pub mod leaf_0x4 {
90 pub const LEAF_NUM: u32 = 0x4;
91
92 pub mod eax {
93 use crate::cpuid::bit_helper::BitRange;
94
95 pub use crate::cpuid::cpu_leaf::leaf_cache_parameters::eax::*;
97
98 pub const MAX_CORES_PER_PACKAGE_BITRANGE: BitRange = bit_range!(31, 26);
99 }
100}
101
102#[allow(dead_code)]
104pub mod leaf_0x6 {
105 pub const LEAF_NUM: u32 = 0x6;
106
107 pub mod eax {
108 pub const TURBO_BOOST_BITINDEX: u32 = 1;
109 }
110
111 pub mod ecx {
112 pub const EPB_BITINDEX: u32 = 3;
114 }
115}
116
117pub mod leaf_0x7 {
119 pub const LEAF_NUM: u32 = 0x7;
120
121 pub mod index0 {
122 pub mod ebx {
123 pub const SGX_BITINDEX: u32 = 2;
125 pub const BMI1_BITINDEX: u32 = 3;
126 pub const HLE_BITINDEX: u32 = 4;
127 pub const AVX2_BITINDEX: u32 = 5;
128 pub const FPDP_BITINDEX: u32 = 6;
130 pub const BMI2_BITINDEX: u32 = 8;
132 pub const INVPCID_BITINDEX: u32 = 10;
135 pub const RTM_BITINDEX: u32 = 11;
136 pub const RDT_M_BITINDEX: u32 = 12;
138 pub const MPX_BITINDEX: u32 = 14;
141 pub const RDT_A_BITINDEX: u32 = 15;
143 pub const AVX512F_BITINDEX: u32 = 16;
145 pub const AVX512DQ_BITINDEX: u32 = 17;
147 pub const RDSEED_BITINDEX: u32 = 18;
148 pub const ADX_BITINDEX: u32 = 19;
149 pub const AVX512IFMA_BITINDEX: u32 = 21;
152 pub const CLFLUSHOPT_BITINDEX: u32 = 23;
156 pub const CLWB_BITINDEX: u32 = 24;
158 pub const PT_BITINDEX: u32 = 25;
160 pub const AVX512PF_BITINDEX: u32 = 26;
162 pub const AVX512ER_BITINDEX: u32 = 27;
164 pub const AVX512CD_BITINDEX: u32 = 28;
166 pub const SHA_BITINDEX: u32 = 29;
168 pub const AVX512BW_BITINDEX: u32 = 30;
170 pub const AVX512VL_BITINDEX: u32 = 31;
172 }
173
174 pub mod ecx {
175 pub const AVX512_VBMI_BITINDEX: u32 = 1;
178 pub const PKU_BITINDEX: u32 = 3;
181 pub const OSPKE_BITINDEX: u32 = 4;
183 pub const AVX512_VPOPCNTDQ_BITINDEX: u32 = 14;
189 pub const RDPID_BITINDEX: u32 = 22;
192 pub const SGX_LC_BITINDEX: u32 = 30;
195 }
197
198 pub mod edx {
199 pub const AVX512_4VNNIW_BITINDEX: u32 = 2;
201 pub const AVX512_4FMAPS_BITINDEX: u32 = 3;
203 pub const ARCH_CAPABILITIES_BITINDEX: u32 = 29;
204 }
205 }
206}
207
208pub mod leaf_0xa {
210 pub const LEAF_NUM: u32 = 0xa;
211
212 pub mod eax {
213 use crate::cpuid::bit_helper::BitRange;
214 pub const PMC_VERSION_ID: BitRange = bit_range!(7, 0);
215 pub const BIT_LEN_PMEVENT: BitRange = bit_range!(31, 24);
216 }
217
218 pub mod ebx {
219 pub const CORE_CYCLES_BITINDEX: u32 = 0;
220 pub const INST_RETIRED_BITINDEX: u32 = 1;
221 pub const REF_CYCLES_BITINDEX: u32 = 2;
222 pub const LLC_REF_BITINDEX: u32 = 3;
223 pub const LLC_MISSES_BITINDEX: u32 = 4;
224 pub const BR_INST_RETIRED_BITINDEX: u32 = 5;
225 pub const BR_MIS_RETIRED_BITINDEX: u32 = 6;
226 }
227}
228
229pub mod leaf_0xb {
231 pub const LEAF_NUM: u32 = 0xb;
232
233 pub const LEVEL_TYPE_THREAD: u32 = 1;
234 pub const LEVEL_TYPE_CORE: u32 = 2;
235
236 pub mod eax {
237 use crate::cpuid::bit_helper::BitRange;
238
239 pub const APICID_BITRANGE: BitRange = bit_range!(4, 0);
242 }
243
244 pub mod ebx {
245 use crate::cpuid::bit_helper::BitRange;
246
247 pub const NUM_LOGICAL_PROCESSORS_BITRANGE: BitRange = bit_range!(15, 0);
250 }
251
252 pub mod ecx {
253 use crate::cpuid::bit_helper::BitRange;
254
255 pub const LEVEL_TYPE_BITRANGE: BitRange = bit_range!(15, 8);
256 pub const LEVEL_NUMBER_BITRANGE: BitRange = bit_range!(7, 0);
257 }
258}
259
260pub mod leaf_0xd {
262 pub const LEAF_NUM: u32 = 0xd;
263
264 pub mod index0 {
265 pub mod eax {
266 use crate::cpuid::bit_helper::BitRange;
267
268 pub const MPX_STATE_BITRANGE: BitRange = bit_range!(4, 3);
269 pub const AVX512_STATE_BITRANGE: BitRange = bit_range!(7, 5);
270 }
271 }
272
273 pub mod index1 {
274 pub mod eax {
275 pub const XSAVEC_SHIFT: u32 = 1;
276 pub const XGETBV_SHIFT: u32 = 2;
277 pub const XSAVES_SHIFT: u32 = 3;
278 }
279 }
280}
281
282pub mod leaf_0x1f {
284 pub const LEAF_NUM: u32 = 0x1f;
285
286 pub const LEVEL_TYPE_THREAD: u32 = 1;
287 pub const LEVEL_TYPE_CORE: u32 = 2;
288 pub const LEVEL_TYPE_DIE: u32 = 5;
289
290 pub mod eax {
291 use crate::cpuid::bit_helper::BitRange;
292
293 pub const APICID_BITRANGE: BitRange = bit_range!(4, 0);
296 }
297
298 pub mod ebx {
299 use crate::cpuid::bit_helper::BitRange;
300
301 pub const NUM_LOGICAL_PROCESSORS_BITRANGE: BitRange = bit_range!(15, 0);
304 }
305
306 pub mod ecx {
307 use crate::cpuid::bit_helper::BitRange;
308
309 pub const LEVEL_TYPE_BITRANGE: BitRange = bit_range!(15, 8);
310 pub const LEVEL_NUMBER_BITRANGE: BitRange = bit_range!(7, 0);
311 }
312}
313
314pub mod leaf_0x80000000 {
315 pub const LEAF_NUM: u32 = 0x8000_0000;
316
317 pub mod eax {
318 use crate::cpuid::bit_helper::BitRange;
319
320 pub const LARGEST_EXTENDED_FN_BITRANGE: BitRange = bit_range!(31, 0);
321 }
322}
323
324pub mod leaf_0x80000001 {
325 pub const LEAF_NUM: u32 = 0x8000_0001;
326
327 pub mod ecx {
328 pub const TOPOEXT_INDEX: u32 = 22;
329 pub const PREFETCH_BITINDEX: u32 = 8; pub const LZCNT_BITINDEX: u32 = 5; }
332
333 pub mod edx {
334 pub const PDPE1GB_BITINDEX: u32 = 26; }
336}
337
338pub mod leaf_0x80000008 {
339 pub const LEAF_NUM: u32 = 0x8000_0008;
340
341 pub mod ecx {
342 use crate::cpuid::bit_helper::BitRange;
343
344 pub const THREAD_ID_SIZE_BITRANGE: BitRange = bit_range!(15, 12);
351 pub const NUM_THREADS_BITRANGE: BitRange = bit_range!(7, 0);
353 }
354}
355
356pub mod leaf_0x8000001d {
358 pub const LEAF_NUM: u32 = 0x8000_001d;
359
360 pub use crate::cpuid::cpu_leaf::leaf_cache_parameters::eax;
362}
363
364pub mod leaf_0x8000001e {
366 pub const LEAF_NUM: u32 = 0x8000_001e;
367
368 pub mod eax {
369 use crate::cpuid::bit_helper::BitRange;
370
371 pub const EXTENDED_APIC_ID_BITRANGE: BitRange = bit_range!(31, 0);
372 }
373
374 pub mod ebx {
375 use crate::cpuid::bit_helper::BitRange;
376
377 pub const THREADS_PER_CORE_BITRANGE: BitRange = bit_range!(15, 8);
379 pub const CORE_ID_BITRANGE: BitRange = bit_range!(7, 0);
380 }
381
382 pub mod ecx {
383 use crate::cpuid::bit_helper::BitRange;
384
385 pub const NODES_PER_PROCESSOR_BITRANGE: BitRange = bit_range!(10, 8);
391 pub const NODE_ID_BITRANGE: BitRange = bit_range!(7, 0);
392 }
393}