Lines Matching refs:_leaf

303 #define __cpuid_leaves_subleaf(_leaves, _leaf, _subleaf)			\  argument
304 __const_ptr(&((_leaves)->leaf_ ## _leaf ## _ ## _subleaf)[0])
306 #define __cpuid_leaves_subleaf_n(_leaves, _leaf, _index) \ argument
307 __const_ptr(&((_leaves)->leaf_ ## _leaf ## _ ## n)[_index])
309 #define __cpuid_leaves_subleaf_info(_leaves, _leaf, _subleaf) \ argument
310 __const_ptr(&((_leaves)->leaf_ ## _leaf ## _ ## _subleaf ## _ ## info))
318 #define __cpuid_table_nr_filled_subleaves(_table, _leaf, _subleaf) \ argument
319 __cpuid_leaves_subleaf_info(&((_table)->leaves), _leaf, _subleaf)->nr_entries
321 #define __cpuid_table_subleaf_range_size(_table, _leaf) \ argument
322 ARRAY_SIZE((_table)->leaves.leaf_ ## _leaf ## _n)
324 #define __cpuid_table_invalid_subleaf(_table, _leaf, _subleaf) \ argument
325 (((_subleaf) < (__cpuid_leaf_first_subleaf(_leaf))) || \
326 ((_subleaf) > (__cpuid_leaf_first_subleaf(_leaf) + \
327 __cpuid_table_subleaf_range_size(_table, _leaf) - 1)))
330 #define __cpuid_table_subleaf(_table, _leaf, _subleaf) \ argument
332 unsigned int ____f = __cpuid_table_nr_filled_subleaves(_table, _leaf, _subleaf); \
334 (____f != 1) ? NULL : __cpuid_leaves_subleaf(&((_table)->leaves), _leaf, _subleaf); \
341 #define __cpuid_table_subleaf_n(_table, _leaf, _subleaf) \ argument
343 unsigned int ____i = (_subleaf) - __cpuid_leaf_first_subleaf(_leaf); \
344 unsigned int ____f = __cpuid_table_nr_filled_subleaves(_table, _leaf, n); \
347 ((____i >= ____f) || __cpuid_table_invalid_subleaf(_table, _leaf, _subleaf)) ? \
348 NULL : __cpuid_leaves_subleaf_n(&((_table)->leaves), _leaf, ____i); \
355 #define __cpuid_assert_subleaf_range(_cpuinfo, _leaf) \ argument
356 static_assert(__cpuid_table_subleaf_range_size(&(_cpuinfo)->cpuid, _leaf) > 1)
358 #define __cpuid_assert_subleaf_within_range(_cpuinfo, _leaf, _subleaf) \ argument
360 __cpuid_table_invalid_subleaf(&(_cpuinfo)->cpuid, _leaf, _subleaf))
426 #define cpuid_subleaf(_cpuinfo, _leaf, _subleaf) \ argument
427 __cpuid_table_subleaf(&(_cpuinfo)->cpuid, _leaf, _subleaf) \
448 #define cpuid_leaf(_cpuinfo, _leaf) \ argument
449 cpuid_subleaf(_cpuinfo, _leaf, 0)
459 #define cpuid_leaf_raw(_cpuinfo, _leaf) \ argument
460 ((const struct cpuid_regs *)(cpuid_leaf(_cpuinfo, _leaf)))
495 #define cpuid_subleaf_n(_cpuinfo, _leaf, _subleaf) \ argument
497 __cpuid_assert_subleaf_range(_cpuinfo, _leaf); \
498 __cpuid_assert_subleaf_within_range(_cpuinfo, _leaf, _subleaf); \
499 __cpuid_table_subleaf_n(&(_cpuinfo)->cpuid, _leaf, _subleaf); \
512 #define cpuid_subleaf_n_raw(_cpuinfo, _leaf, _subleaf) \ argument
513 ((const struct cpuid_regs *)cpuid_subleaf_n(_cpuinfo, _leaf, _subleaf))
525 #define cpuid_subleaf_count(_cpuinfo, _leaf) \ argument
527 __cpuid_assert_subleaf_range(_cpuinfo, _leaf); \
528 __cpuid_table_nr_filled_subleaves(&(_cpuinfo)->cpuid, _leaf, n); \