22 #ifndef MSRS_INTEL_X64_H 23 #define MSRS_INTEL_X64_H 46 {
__write_msr(gsl::narrow_cast<field_type>(addr), val); }
48 namespace ia32_feature_control
50 constexpr
const auto addr = 0x0000003AU;
51 constexpr
const auto name =
"ia32_feature_control";
56 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
61 constexpr
const auto mask = 0x0000000000000001UL;
62 constexpr
const auto from = 0;
63 constexpr
const auto name =
"lock_bit";
72 namespace enable_vmx_inside_smx
74 constexpr
const auto mask = 0x0000000000000002UL;
75 constexpr
const auto from = 1;
76 constexpr
const auto name =
"enable_vmx_inside_smx";
85 namespace enable_vmx_outside_smx
87 constexpr
const auto mask = 0x0000000000000004UL;
88 constexpr
const auto from = 2;
89 constexpr
const auto name =
"enable_vmx_outside_smx";
98 namespace senter_local_function_enables
100 constexpr
const auto mask = 0x0000000000007F00UL;
102 constexpr
const auto name =
"senter_local_function_enables";
107 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
111 namespace senter_gloabl_function_enable
113 constexpr
const auto mask = 0x0000000000008000UL;
114 constexpr
const auto from = 15;
115 constexpr
const auto name =
"senter_gloabl_function_enables";
124 namespace sgx_launch_control_enable
126 constexpr
const auto mask = 0x0000000000020000UL;
127 constexpr
const auto from = 17;
128 constexpr
const auto name =
"sgx_launch_control_enable";
137 namespace sgx_global_enable
139 constexpr
const auto mask = 0x0000000000040000UL;
140 constexpr
const auto from = 18;
141 constexpr
const auto name =
"sgx_global_enable";
152 constexpr
const auto mask = 0x0000000000100000UL;
153 constexpr
const auto from = 20;
154 constexpr
const auto name =
"lmce";
165 bfdebug <<
"msrs::ia32_feature_control enabled flags:" << bfendl;
183 bfdebug <<
"msrs::ia32_feature_control fields:" << bfendl;
190 namespace ia32_sysenter_cs
192 constexpr
const auto addr = 0x00000174U;
193 constexpr
const auto name =
"ia32_sysenter_cs";
198 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
202 namespace ia32_sysenter_esp
204 constexpr
const auto addr = 0x00000175U;
205 constexpr
const auto name =
"ia32_sysenter_esp";
210 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
214 namespace ia32_sysenter_eip
216 constexpr
const auto addr = 0x00000176;
217 constexpr
const auto name =
"ia32_sysenter_eip";
222 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
226 namespace ia32_debugctl
228 constexpr
const auto addr = 0x000001D9U;
229 constexpr
const auto name =
"ia32_debugctl";
234 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
239 constexpr
const auto mask = 0x0000000000000001UL;
241 constexpr
const auto name =
"lbr";
252 constexpr
const auto mask = 0x0000000000000002UL;
254 constexpr
const auto name =
"btf";
265 constexpr
const auto mask = 0x0000000000000040UL;
267 constexpr
const auto name =
"tr";
278 constexpr
const auto mask = 0x0000000000000080UL;
280 constexpr
const auto name =
"bts";
291 constexpr
const auto mask = 0x0000000000000100UL;
293 constexpr
const auto name =
"btint";
304 constexpr
const auto mask = 0x0000000000000200UL;
306 constexpr
const auto name =
"bt_off_os";
315 namespace bt_off_user
317 constexpr
const auto mask = 0x0000000000000400UL;
318 constexpr
const auto from = 10;
319 constexpr
const auto name =
"bt_off_user";
328 namespace freeze_lbrs_on_pmi
330 constexpr
const auto mask = 0x0000000000000800UL;
331 constexpr
const auto from = 11;
332 constexpr
const auto name =
"freeze_lbrs_on_pmi";
341 namespace freeze_perfmon_on_pmi
343 constexpr
const auto mask = 0x0000000000001000UL;
344 constexpr
const auto from = 12;
345 constexpr
const auto name =
"freeze_perfmon_on_pmi";
354 namespace enable_uncore_pmi
356 constexpr
const auto mask = 0x0000000000002000UL;
357 constexpr
const auto from = 13;
358 constexpr
const auto name =
"enable_uncore_pmi";
367 namespace freeze_while_smm
369 constexpr
const auto mask = 0x0000000000004000UL;
370 constexpr
const auto from = 14;
371 constexpr
const auto name =
"freeze_while_smm";
382 constexpr
const auto mask = 0x0000000000008000UL;
383 constexpr
const auto from = 15;
384 constexpr
const auto name =
"rtm_debug";
395 constexpr
const auto mask = 0xFFFFFFFFFFFF003CUL;
397 constexpr
const auto name =
"reserved";
402 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
408 bfdebug <<
"msrs::ia32_debugctl enabled flags:" << bfendl;
415 bfdebug <<
" - " <<
tr::name << bfendl;
437 namespace ia32_perf_global_ctrl
439 constexpr
const auto addr = 0x0000038FU;
440 constexpr
const auto name =
"ia32_perf_global_ctrl";
445 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
450 constexpr
const auto mask = 0x0000000000000001UL;
452 constexpr
const auto name =
"pmc0";
463 constexpr
const auto mask = 0x0000000000000002UL;
465 constexpr
const auto name =
"pmc1";
476 constexpr
const auto mask = 0x0000000000000004UL;
478 constexpr
const auto name =
"pmc2";
489 constexpr
const auto mask = 0x0000000000000008UL;
491 constexpr
const auto name =
"pmc3";
502 constexpr
const auto mask = 0x0000000000000010UL;
504 constexpr
const auto name =
"pmc4";
515 constexpr
const auto mask = 0x0000000000000020UL;
517 constexpr
const auto name =
"pmc5";
528 constexpr
const auto mask = 0x0000000000000040UL;
530 constexpr
const auto name =
"pmc6";
541 constexpr
const auto mask = 0x0000000000000080UL;
543 constexpr
const auto name =
"pmc7";
554 constexpr
const auto mask = 0x0000000100000000UL;
555 constexpr
const auto from = 32;
556 constexpr
const auto name =
"fixed_ctr0";
567 constexpr
const auto mask = 0x0000000200000000UL;
568 constexpr
const auto from = 33;
569 constexpr
const auto name =
"fixed_ctr1";
580 constexpr
const auto mask = 0x0000000400000000UL;
581 constexpr
const auto from = 34;
582 constexpr
const auto name =
"fixed_ctr2";
593 bfdebug <<
"msrs::ia32_perf_global_ctrl enabled flags:" << bfendl;
620 namespace ia32_vmx_basic
622 constexpr
const auto addr = 0x00000480U;
623 constexpr
const auto name =
"ia32_vmx_basic";
628 namespace revision_id
630 constexpr
const auto mask = 0x000000007FFFFFFFUL;
632 constexpr
const auto name =
"revision_id";
638 namespace vmxon_vmcs_region_size
640 constexpr
const auto mask = 0x00001FFF00000000UL;
641 constexpr
const auto from = 32;
642 constexpr
const auto name =
"vmxon_vmcs_region_size";
648 namespace physical_address_width
650 constexpr
const auto mask = 0x0001000000000000UL;
651 constexpr
const auto from = 48;
652 constexpr
const auto name =
"physical_address_width";
658 namespace dual_monitor_mode_support
660 constexpr
const auto mask = 0x0002000000000000UL;
661 constexpr
const auto from = 49;
662 constexpr
const auto name =
"dual_monitor_mode_support";
668 namespace memory_type
670 constexpr
const auto mask = 0x003C000000000000UL;
671 constexpr
const auto from = 50;
672 constexpr
const auto name =
"memory_type";
678 namespace ins_outs_exit_information
680 constexpr
const auto mask = 0x0040000000000000UL;
681 constexpr
const auto from = 54;
682 constexpr
const auto name =
"ins_outs_exit_information";
688 namespace true_based_controls
690 constexpr
const auto mask = 0x0080000000000000UL;
691 constexpr
const auto from = 55;
692 constexpr
const auto name =
"true_based_controls";
700 bfdebug <<
"msrs::ia32_vmx_basic enabled flags:" << bfendl;
712 bfdebug <<
"msrs::ia32_vmx_basic fields:" << bfendl;
723 namespace ia32_vmx_misc
725 constexpr
const auto addr = 0x00000485U;
726 constexpr
const auto name =
"ia32_vmx_misc";
731 namespace preemption_timer_decrement
733 constexpr
const auto mask = 0x000000000000001FUL;
735 constexpr
const auto name =
"preemption_timer_decrement";
741 namespace store_efer_lma_on_vm_exit
743 constexpr
const auto mask = 0x0000000000000020UL;
745 constexpr
const auto name =
"store_efer_lma_on_vm_exit";
751 namespace activity_state_hlt_support
753 constexpr
const auto mask = 0x0000000000000040UL;
755 constexpr
const auto name =
"activity_state_hlt_support";
761 namespace activity_state_shutdown_support
763 constexpr
const auto mask = 0x0000000000000080UL;
765 constexpr
const auto name =
"activity_state_shutdown_support";
771 namespace activity_state_wait_for_sipi_support
773 constexpr
const auto mask = 0x0000000000000100UL;
775 constexpr
const auto name =
"activity_state_wait_for_sipi_support";
781 namespace processor_trace_support
783 constexpr
const auto mask = 0x0000000000004000UL;
784 constexpr
const auto from = 14;
785 constexpr
const auto name =
"processor_trace_support";
791 namespace rdmsr_in_smm_support
793 constexpr
const auto mask = 0x0000000000008000UL;
794 constexpr
const auto from = 15;
795 constexpr
const auto name =
"rdmsr_in_smm_support";
801 namespace cr3_targets
803 constexpr
const auto mask = 0x0000000001FF0000UL;
804 constexpr
const auto from = 16;
805 constexpr
const auto name =
"cr3_targets";
811 namespace max_num_msr_load_store_on_exit
813 constexpr
const auto mask = 0x000000000E000000UL;
814 constexpr
const auto from = 25;
815 constexpr
const auto name =
"max_num_msr_load_store_on_exit";
821 namespace vmxoff_blocked_smi_support
823 constexpr
const auto mask = 0x0000000010000000UL;
824 constexpr
const auto from = 28;
825 constexpr
const auto name =
"vmxoff_blocked_smi_support";
831 namespace vmwrite_all_fields_support
833 constexpr
const auto mask = 0x0000000020000000UL;
834 constexpr
const auto from = 29;
835 constexpr
const auto name =
"vmwrite_all_fields_support";
841 namespace injection_with_instruction_length_of_zero
843 constexpr
const auto mask = 0x0000000040000000UL;
844 constexpr
const auto from = 30;
845 constexpr
const auto name =
"injection_with_instruction_length_of_zero";
853 bfdebug <<
"msrs::ia32_vmx_misc enabled flags:" << bfendl;
875 bfdebug <<
"msrs::ia32_vmx_misc fields:" << bfendl;
886 namespace ia32_vmx_cr0_fixed0
888 constexpr
const auto addr = 0x00000486U;
889 constexpr
const auto name =
"ia32_vmx_cr0_fixed0";
895 namespace ia32_vmx_cr0_fixed1
897 constexpr
const auto addr = 0x00000487U;
898 constexpr
const auto name =
"ia32_vmx_cr0_fixed1";
904 namespace ia32_vmx_cr4_fixed0
906 constexpr
const auto addr = 0x00000488U;
907 constexpr
const auto name =
"ia32_vmx_cr4_fixed0";
913 namespace ia32_vmx_cr4_fixed1
915 constexpr
const auto addr = 0x00000489U;
916 constexpr
const auto name =
"ia32_vmx_cr4_fixed1";
922 namespace ia32_vmx_procbased_ctls2
924 constexpr
const auto addr = 0x0000048BU;
925 constexpr
const auto name =
"ia32_vmx_procbased_ctls2";
931 {
return (
__read_msr(addr) & 0x00000000FFFFFFFFUL); }
934 {
return ((
__read_msr(addr) & 0xFFFFFFFF00000000UL) >> 32); }
936 namespace virtualize_apic_accesses
938 constexpr
const auto mask = 0x0000000000000001UL;
940 constexpr
const auto name =
"virtualize_apic_accesses";
949 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
954 constexpr
const auto mask = 0x0000000000000002UL;
956 constexpr
const auto name =
"enable_ept";
965 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
968 namespace descriptor_table_exiting
970 constexpr
const auto mask = 0x0000000000000004UL;
972 constexpr
const auto name =
"descriptor_table_exiting";
981 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
984 namespace enable_rdtscp
986 constexpr
const auto mask = 0x0000000000000008UL;
988 constexpr
const auto name =
"enable_rdtscp";
997 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1000 namespace virtualize_x2apic_mode
1002 constexpr
const auto mask = 0x0000000000000010UL;
1004 constexpr
const auto name =
"virtualize_x2apic_mode";
1013 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1016 namespace enable_vpid
1018 constexpr
const auto mask = 0x0000000000000020UL;
1020 constexpr
const auto name =
"enable_vpid";
1029 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1032 namespace wbinvd_exiting
1034 constexpr
const auto mask = 0x0000000000000040UL;
1036 constexpr
const auto name =
"wbinvd_exiting";
1045 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1048 namespace unrestricted_guest
1050 constexpr
const auto mask = 0x0000000000000080UL;
1052 constexpr
const auto name =
"unrestricted_guest";
1061 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1064 namespace apic_register_virtualization
1066 constexpr
const auto mask = 0x0000000000000100UL;
1068 constexpr
const auto name =
"apic_register_virtualization";
1077 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1080 namespace virtual_interrupt_delivery
1082 constexpr
const auto mask = 0x0000000000000200UL;
1084 constexpr
const auto name =
"virtual_interrupt_delivery";
1093 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1096 namespace pause_loop_exiting
1098 constexpr
const auto mask = 0x0000000000000400UL;
1100 constexpr
const auto name =
"pause_loop_exiting";
1109 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1112 namespace rdrand_exiting
1114 constexpr
const auto mask = 0x0000000000000800UL;
1116 constexpr
const auto name =
"rdrand_exiting";
1125 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1128 namespace enable_invpcid
1130 constexpr
const auto mask = 0x0000000000001000UL;
1132 constexpr
const auto name =
"enable_invpcid";
1141 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1144 namespace enable_vm_functions
1146 constexpr
const auto mask = 0x0000000000002000UL;
1148 constexpr
const auto name =
"enable_vm_functions";
1157 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1160 namespace vmcs_shadowing
1162 constexpr
const auto mask = 0x0000000000004000UL;
1164 constexpr
const auto name =
"vmcs_shadowing";
1173 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1176 namespace rdseed_exiting
1178 constexpr
const auto mask = 0x0000000000010000UL;
1180 constexpr
const auto name =
"rdseed_exiting";
1189 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1192 namespace enable_pml
1194 constexpr
const auto mask = 0x0000000000020000UL;
1196 constexpr
const auto name =
"enable_pml";
1205 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1208 namespace ept_violation_ve
1210 constexpr
const auto mask = 0x0000000000040000UL;
1212 constexpr
const auto name =
"ept_violation_ve";
1221 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1224 namespace enable_xsaves_xrstors
1226 constexpr
const auto mask = 0x0000000000100000UL;
1228 constexpr
const auto name =
"enable_xsaves_xrstors";
1237 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1242 bfdebug <<
"msrs::ia32_vmx_procbased_ctls2 enabled flags:" << bfendl;
1284 bfdebug <<
"msrs::ia32_vmx_procbased_ctls2 allowed0 fields:" << bfendl;
1326 bfdebug <<
"msrs::ia32_vmx_procbased_ctls2 allowed1 fields:" << bfendl;
1369 namespace ia32_vmx_ept_vpid_cap
1371 constexpr
const auto addr = 0x0000048CU;
1372 constexpr
const auto name =
"ia32_vmx_ept_vpid_cap";
1377 namespace execute_only_translation
1379 constexpr
const auto mask = 0x0000000000000001UL;
1381 constexpr
const auto name =
"execute_only_translation";
1387 namespace page_walk_length_of_4
1389 constexpr
const auto mask = 0x0000000000000040UL;
1391 constexpr
const auto name =
"page_walk_length_of_4";
1397 namespace memory_type_uncacheable_supported
1399 constexpr
const auto mask = 0x0000000000000100UL;
1401 constexpr
const auto name =
"memory_type_uncacheable_supported";
1407 namespace memory_type_write_back_supported
1409 constexpr
const auto mask = 0x0000000000004000UL;
1411 constexpr
const auto name =
"memory_type_write_back_supported";
1417 namespace pde_2mb_support
1419 constexpr
const auto mask = 0x0000000000010000UL;
1421 constexpr
const auto name =
"pde_2mb_support";
1427 namespace pdpte_1gb_support
1429 constexpr
const auto mask = 0x0000000000020000UL;
1431 constexpr
const auto name =
"pdpte_1gb_support";
1437 namespace invept_support
1439 constexpr
const auto mask = 0x0000000000100000UL;
1441 constexpr
const auto name =
"invept_support";
1447 namespace accessed_dirty_support
1449 constexpr
const auto mask = 0x0000000000200000UL;
1451 constexpr
const auto name =
"accessed_dirty_support";
1457 namespace invept_single_context_support
1459 constexpr
const auto mask = 0x0000000002000000UL;
1461 constexpr
const auto name =
"invept_single_context_support";
1467 namespace invept_all_context_support
1469 constexpr
const auto mask = 0x0000000004000000UL;
1471 constexpr
const auto name =
"invept_all_context_support";
1477 namespace invvpid_support
1479 constexpr
const auto mask = 0x0000000100000000UL;
1481 constexpr
const auto name =
"invvpid_support";
1487 namespace invvpid_individual_address_support
1489 constexpr
const auto mask = 0x0000010000000000UL;
1491 constexpr
const auto name =
"invvpid_individual_address_support";
1497 namespace invvpid_single_context_support
1499 constexpr
const auto mask = 0x0000020000000000UL;
1501 constexpr
const auto name =
"invvpid_single_context_support";
1507 namespace invvpid_all_context_support
1509 constexpr
const auto mask = 0x0000040000000000UL;
1511 constexpr
const auto name =
"invvpid_all_context_support";
1517 namespace invvpid_single_context_retaining_globals_support
1519 constexpr
const auto mask = 0x0000080000000000UL;
1521 constexpr
const auto name =
"invvpid_single_context_retaining_globals_support";
1529 bfdebug <<
"msrs::ia32_vmx_ept_vpid_cap enabled flags:" << bfendl;
1564 namespace ia32_vmx_true_pinbased_ctls
1566 constexpr
const auto addr = 0x0000048DU;
1567 constexpr
const auto name =
"ia32_vmx_true_pinbased_ctls";
1573 {
return (
__read_msr(addr) & 0x00000000FFFFFFFFUL); }
1576 {
return ((
__read_msr(addr) & 0xFFFFFFFF00000000UL) >> 32); }
1578 namespace external_interrupt_exiting
1580 constexpr
const auto mask = 0x0000000000000001UL;
1582 constexpr
const auto name =
"external_interrupt_exiting";
1591 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1594 namespace nmi_exiting
1596 constexpr
const auto mask = 0x0000000000000008UL;
1598 constexpr
const auto name =
"nmi_exiting";
1607 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1610 namespace virtual_nmis
1612 constexpr
const auto mask = 0x0000000000000020UL;
1614 constexpr
const auto name =
"virtual_nmis";
1623 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1626 namespace activate_vmx_preemption_timer
1628 constexpr
const auto mask = 0x0000000000000040UL;
1630 constexpr
const auto name =
"activate_vmx_preemption_timer";
1639 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1642 namespace process_posted_interrupts
1644 constexpr
const auto mask = 0x0000000000000080UL;
1646 constexpr
const auto name =
"process_posted_interrupts";
1655 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1660 bfdebug <<
"msrs::ia32_vmx_true_pinbased_ctls enabled flags:" << bfendl;
1674 bfdebug <<
"msrs::ia32_vmx_true_pinbased_ctls allowed0 fields:" << bfendl;
1688 bfdebug <<
"msrs::ia32_vmx_true_pinbased_ctls allowed1 fields:" << bfendl;
1703 namespace ia32_vmx_true_procbased_ctls
1705 constexpr
const auto addr = 0x0000048EU;
1706 constexpr
const auto name =
"ia32_vmx_true_procbased_ctls";
1712 {
return (
__read_msr(addr) & 0x00000000FFFFFFFFUL); }
1715 {
return ((
__read_msr(addr) & 0xFFFFFFFF00000000UL) >> 32); }
1717 namespace interrupt_window_exiting
1719 constexpr
const auto mask = 0x0000000000000004UL;
1721 constexpr
const auto name =
"interrupt_window_exiting";
1730 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1733 namespace use_tsc_offsetting
1735 constexpr
const auto mask = 0x0000000000000008UL;
1737 constexpr
const auto name =
"use_tsc_offsetting";
1746 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1749 namespace hlt_exiting
1751 constexpr
const auto mask = 0x0000000000000080UL;
1753 constexpr
const auto name =
"hlt_exiting";
1762 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1765 namespace invlpg_exiting
1767 constexpr
const auto mask = 0x0000000000000200UL;
1769 constexpr
const auto name =
"invlpg_exiting";
1778 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1781 namespace mwait_exiting
1783 constexpr
const auto mask = 0x0000000000000400UL;
1785 constexpr
const auto name =
"mwait_exiting";
1794 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1797 namespace rdpmc_exiting
1799 constexpr
const auto mask = 0x0000000000000800UL;
1801 constexpr
const auto name =
"rdpmc_exiting";
1810 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1813 namespace rdtsc_exiting
1815 constexpr
const auto mask = 0x0000000000001000UL;
1817 constexpr
const auto name =
"rdtsc_exiting";
1826 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1829 namespace cr3_load_exiting
1831 constexpr
const auto mask = 0x0000000000008000UL;
1833 constexpr
const auto name =
"cr3_load_exiting";
1842 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1845 namespace cr3_store_exiting
1847 constexpr
const auto mask = 0x0000000000010000UL;
1849 constexpr
const auto name =
"cr3_store_exiting";
1858 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1861 namespace cr8_load_exiting
1863 constexpr
const auto mask = 0x0000000000080000UL;
1865 constexpr
const auto name =
"cr8_load_exiting";
1874 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1877 namespace cr8_store_exiting
1879 constexpr
const auto mask = 0x0000000000100000UL;
1881 constexpr
const auto name =
"cr8_store_exiting";
1890 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1893 namespace use_tpr_shadow
1895 constexpr
const auto mask = 0x0000000000200000UL;
1897 constexpr
const auto name =
"use_tpr_shadow";
1906 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1909 namespace nmi_window_exiting
1911 constexpr
const auto mask = 0x0000000000400000UL;
1913 constexpr
const auto name =
"nmi_window_exiting";
1922 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1925 namespace mov_dr_exiting
1927 constexpr
const auto mask = 0x0000000000800000UL;
1929 constexpr
const auto name =
"mov_dr_exiting";
1938 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1941 namespace unconditional_io_exiting
1943 constexpr
const auto mask = 0x0000000001000000UL;
1945 constexpr
const auto name =
"unconditional_io_exiting";
1954 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1957 namespace use_io_bitmaps
1959 constexpr
const auto mask = 0x0000000002000000UL;
1961 constexpr
const auto name =
"use_io_bitmaps";
1970 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1975 constexpr
const auto mask = 0x0000000008000000UL;
1977 constexpr
const auto name =
"monitor_trap_flag";
1986 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
1989 namespace use_msr_bitmap
1991 constexpr
const auto mask = 0x0000000010000000UL;
1993 constexpr
const auto name =
"use_msr_bitmap";
2002 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2005 namespace monitor_exiting
2007 constexpr
const auto mask = 0x0000000020000000UL;
2009 constexpr
const auto name =
"monitor_exiting";
2018 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2021 namespace pause_exiting
2023 constexpr
const auto mask = 0x0000000040000000UL;
2025 constexpr
const auto name =
"pause_exiting";
2034 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2037 namespace activate_secondary_controls
2039 constexpr
const auto mask = 0x0000000080000000UL;
2041 constexpr
const auto name =
"activate_secondary_controls";
2050 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2055 bfdebug <<
"msrs::ia32_vmx_true_procbased_ctls enabled flags:" << bfendl;
2101 bfdebug <<
"msrs::ia32_vmx_true_pinbased_ctls allowed0 fields:" << bfendl;
2147 bfdebug <<
"msrs::ia32_vmx_true_pinbased_ctls allowed1 fields:" << bfendl;
2194 namespace ia32_vmx_true_exit_ctls
2196 constexpr
const auto addr = 0x0000048FU;
2197 constexpr
const auto name =
"ia32_vmx_true_exit_ctls";
2203 {
return (
__read_msr(addr) & 0x00000000FFFFFFFFUL); }
2206 {
return ((
__read_msr(addr) & 0xFFFFFFFF00000000UL) >> 32); }
2208 namespace save_debug_controls
2210 constexpr
const auto mask = 0x0000000000000004UL;
2212 constexpr
const auto name =
"save_debug_controls";
2221 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2224 namespace host_address_space_size
2226 constexpr
const auto mask = 0x0000000000000200UL;
2228 constexpr
const auto name =
"host_address_space_size";
2237 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2240 namespace load_ia32_perf_global_ctrl
2242 constexpr
const auto mask = 0x0000000000001000UL;
2244 constexpr
const auto name =
"load_ia32_perf_global_ctrl";
2253 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2256 namespace acknowledge_interrupt_on_exit
2258 constexpr
const auto mask = 0x0000000000008000UL;
2260 constexpr
const auto name =
"acknowledge_interrupt_on_exit";
2269 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2272 namespace save_ia32_pat
2274 constexpr
const auto mask = 0x0000000000040000UL;
2276 constexpr
const auto name =
"save_ia32_pat";
2285 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2288 namespace load_ia32_pat
2290 constexpr
const auto mask = 0x0000000000080000UL;
2292 constexpr
const auto name =
"load_ia32_pat";
2301 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2304 namespace save_ia32_efer
2306 constexpr
const auto mask = 0x0000000000100000UL;
2308 constexpr
const auto name =
"save_ia32_efer";
2317 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2320 namespace load_ia32_efer
2322 constexpr
const auto mask = 0x0000000000200000UL;
2324 constexpr
const auto name =
"load_ia32_efer";
2333 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2336 namespace save_vmx_preemption_timer_value
2338 constexpr
const auto mask = 0x0000000000400000UL;
2340 constexpr
const auto name =
"save_vmx_preemption_timer_value";
2349 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2352 namespace clear_ia32_bndcfgs
2354 constexpr
const auto mask = 0x0000000000800000UL;
2356 constexpr
const auto name =
"clear_ia32_bndcfgs";
2365 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2370 bfdebug <<
"msrs::ia32_vmx_true_exit_ctls enabled flags:" << bfendl;
2394 bfdebug <<
"msrs::ia32_vmx_true_exit_ctls allowed0 fields:" << bfendl;
2418 bfdebug <<
"msrs::ia32_vmx_true_exit_ctls allowed1 fields:" << bfendl;
2443 namespace ia32_vmx_true_entry_ctls
2445 constexpr
const auto addr = 0x00000490U;
2446 constexpr
const auto name =
"ia32_vmx_true_entry_ctls";
2452 {
return (
__read_msr(addr) & 0x00000000FFFFFFFFUL); }
2455 {
return ((
__read_msr(addr) & 0xFFFFFFFF00000000UL) >> 32); }
2457 namespace load_debug_controls
2459 constexpr
const auto mask = 0x0000000000000004UL;
2461 constexpr
const auto name =
"load_debug_controls";
2470 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2473 namespace ia_32e_mode_guest
2475 constexpr
const auto mask = 0x0000000000000200UL;
2477 constexpr
const auto name =
"ia_32e_mode_guest";
2486 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2489 namespace entry_to_smm
2491 constexpr
const auto mask = 0x0000000000000400UL;
2493 constexpr
const auto name =
"entry_to_smm";
2502 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2505 namespace deactivate_dual_monitor_treatment
2507 constexpr
const auto mask = 0x0000000000000800UL;
2509 constexpr
const auto name =
"deactivate_dual_monitor_treatment";
2518 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2521 namespace load_ia32_perf_global_ctrl
2523 constexpr
const auto mask = 0x0000000000002000UL;
2525 constexpr
const auto name =
"load_ia32_perf_global_ctrl";
2534 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2537 namespace load_ia32_pat
2539 constexpr
const auto mask = 0x0000000000004000UL;
2541 constexpr
const auto name =
"load_ia32_pat";
2550 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2553 namespace load_ia32_efer
2555 constexpr
const auto mask = 0x0000000000008000UL;
2557 constexpr
const auto name =
"load_ia32_efer";
2566 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2569 namespace load_ia32_bndcfgs
2571 constexpr
const auto mask = 0x0000000000010000UL;
2573 constexpr
const auto name =
"load_ia32_bndcfgs";
2582 {
return (
__read_msr(addr) & (mask << 32)) != 0; }
2587 bfdebug <<
"msrs::ia32_vmx_true_entry_ctls enabled flags:" << bfendl;
2607 bfdebug <<
"msrs::ia32_vmx_true_entry_ctls allowed0 fields:" << bfendl;
2627 bfdebug <<
"msrs::ia32_vmx_true_entry_ctls allowed1 fields:" << bfendl;
2648 namespace ia32_vmx_vmfunc
2650 constexpr
const auto addr = 0x00000491U;
2651 constexpr
const auto name =
"ia32_vmx_vmfunc";
2656 namespace eptp_switching
2658 constexpr
const auto mask = 0x0000000000000001UL;
2660 constexpr
const auto name =
"eptp_switching";
2669 constexpr
const auto addr = 0xC0000080U;
2670 constexpr
const auto name =
"ia32_efer";
2675 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
2680 constexpr
const auto mask = 0x0000000000000001UL;
2682 constexpr
const auto name =
"sce";
2693 constexpr
const auto mask = 0x0000000000000100UL;
2695 constexpr
const auto name =
"lme";
2706 constexpr
const auto mask = 0x0000000000000400UL;
2708 constexpr
const auto name =
"lma";
2719 constexpr
const auto mask = 0x0000000000000800UL;
2721 constexpr
const auto name =
"lma";
2732 constexpr
const auto mask = 0xFFFFFFFFFFFFF2FEUL;
2734 constexpr
const auto name =
"reserved";
2739 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
2745 bfdebug <<
"msrs::ia32_efer enabled flags:" << bfendl;
2748 bfdebug <<
" - " <<
sce::name << bfendl;
2750 bfdebug <<
" - " <<
lme::name << bfendl;
2752 bfdebug <<
" - " <<
lma::name << bfendl;
2754 bfdebug <<
" - " <<
nxe::name << bfendl;
2758 namespace ia32_fs_base
2760 constexpr
const auto addr = 0xC0000100U;
2761 constexpr
const auto name =
"ia32_fs_base";
2766 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
2770 namespace ia32_gs_base
2772 constexpr
const auto addr = 0xC0000101U;
2773 constexpr
const auto name =
"ia32_gs_base";
2778 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
constexpr const auto mask
auto is_allowed1() noexcept
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto mask
constexpr const auto name
constexpr const auto name
constexpr const auto mask
constexpr const auto name
constexpr const auto from
constexpr const auto mask
constexpr const auto mask
auto is_allowed1() noexcept
auto is_allowed1() noexcept
auto is_allowed1() noexcept
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto mask
constexpr const auto from
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto mask
constexpr const auto from
constexpr const auto mask
constexpr const auto name
constexpr const auto mask
constexpr const auto name
constexpr const auto from
constexpr const auto from
constexpr const auto mask
constexpr const auto name
constexpr const auto name
constexpr const auto mask
constexpr const auto name
constexpr const auto mask
constexpr const auto mask
constexpr const auto from
constexpr const auto mask
constexpr const auto mask
constexpr const auto name
constexpr const auto name
auto is_allowed0() noexcept
auto is_allowed0() noexcept
constexpr const auto name
constexpr const auto mask
constexpr const auto from
constexpr const auto mask
constexpr const auto mask
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto name
constexpr const auto from
constexpr const auto from
constexpr const auto name
constexpr const auto name
constexpr const auto from
constexpr const auto mask
constexpr const auto from
constexpr const auto from
auto is_allowed0() noexcept
auto is_allowed1() noexcept
constexpr const auto mask
constexpr const auto from
constexpr const auto name
constexpr const auto mask
constexpr const auto from
constexpr const auto mask
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto name
constexpr const auto mask
constexpr const auto from
constexpr const auto mask
auto is_allowed0() noexcept
auto is_allowed1() noexcept
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto from
constexpr const auto mask
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto mask
auto is_allowed1() noexcept
auto is_allowed0() noexcept
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto mask
constexpr const auto mask
constexpr const auto mask
constexpr const auto name
constexpr const auto name
constexpr const auto mask
auto is_allowed1() noexcept
constexpr const auto from
constexpr const auto from
constexpr const auto from
constexpr const auto mask
constexpr const auto from
constexpr const auto mask
constexpr const auto name
constexpr const auto mask
constexpr const auto name
constexpr const auto from
constexpr const auto name
constexpr const auto name
auto is_allowed1() noexcept
auto is_allowed1() noexcept
constexpr const auto mask
auto is_allowed1() noexcept
constexpr const auto mask
constexpr const auto from
constexpr const auto from
constexpr const auto name
constexpr const auto mask
constexpr const auto mask
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto name
constexpr const auto from
constexpr const auto from
constexpr const auto mask
constexpr const auto name
constexpr const auto mask
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto mask
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto mask
constexpr const auto name
constexpr const auto from
constexpr const auto mask
constexpr const auto name
constexpr const auto from
void __write_msr(uint32_t addr, uint64_t val) noexcept
auto is_allowed0() noexcept
auto is_allowed0() noexcept
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto mask
constexpr const auto from
auto is_allowed1() noexcept
auto is_allowed0() noexcept
auto is_allowed1() noexcept
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto from
constexpr const auto name
constexpr const auto mask
constexpr const auto from
constexpr const auto from
constexpr const auto mask
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto name
constexpr const auto from
constexpr const auto from
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto mask
constexpr const auto name
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto name
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto mask
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto from
constexpr const auto mask
constexpr const auto from
constexpr const auto name
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto from
constexpr const auto mask
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto from
constexpr const auto from
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto from
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto from
auto get_bit(T t, B b) noexcept
auto is_allowed0() noexcept
auto is_allowed1() noexcept
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto name
constexpr const auto mask
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto from
constexpr const auto name
constexpr const auto mask
constexpr const auto from
constexpr const auto mask
auto is_allowed0() noexcept
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto from
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto name
void uint64_t uint64_t uint64_t *rdx noexcept
constexpr const auto from
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto name
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto from
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto mask
constexpr const auto name
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto mask
constexpr const auto name
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto name
auto is_allowed0() noexcept
auto is_allowed0() noexcept
constexpr const auto name
constexpr const auto from
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto from
constexpr const auto from
constexpr const auto mask
auto is_allowed0() noexcept
auto is_allowed1() noexcept
constexpr const auto mask
constexpr const auto mask
constexpr const auto mask
constexpr const auto mask
constexpr const auto from
constexpr const auto from
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto name
constexpr const auto mask
constexpr const auto from
constexpr const auto from
constexpr const auto name
constexpr const auto name
constexpr const auto from
constexpr const auto name
constexpr const auto from
constexpr const auto from
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto name
auto is_allowed0() noexcept
auto is_allowed0() noexcept
constexpr const auto mask
auto is_allowed0() noexcept
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto from
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto from
auto is_allowed0() noexcept
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto name
constexpr const auto mask
constexpr const auto from
constexpr const auto from
constexpr const auto mask
constexpr const auto name
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto from
constexpr const auto name
constexpr const auto name
constexpr const auto mask
constexpr const auto mask
constexpr const auto name
constexpr const auto name
constexpr const auto from
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto from
constexpr const auto name
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto name
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto mask
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto mask
auto is_allowed0() noexcept
auto clear_bit(T t, B b) noexcept
auto is_allowed1() noexcept
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto reserved
const void * view_as_pointer(const T val)
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto mask
constexpr const auto mask
constexpr const auto from
constexpr const auto mask
constexpr const auto name
constexpr const auto mask
constexpr const auto name
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto from
constexpr const auto mask
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto from
constexpr const auto mask
constexpr const auto mask
constexpr const auto name
auto is_allowed1() noexcept
auto set_bit(T t, B b) noexcept
constexpr const auto from
constexpr const auto from
constexpr const auto from
constexpr const auto name
constexpr const auto name
constexpr const auto from
auto get_bits(T t, M m) noexcept
auto is_allowed1() noexcept
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto from
constexpr const auto mask
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto mask
constexpr const auto from
constexpr const auto name
auto is_allowed1() noexcept
auto is_allowed1() noexcept
constexpr const auto from
constexpr const auto mask
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto mask
constexpr const auto name
constexpr const auto name
constexpr const auto from
constexpr const auto name
constexpr const auto mask
constexpr const auto name
constexpr const auto from
constexpr const auto from
constexpr const auto from
constexpr const auto from
auto is_allowed1() noexcept
auto is_allowed1() noexcept
constexpr const auto mask
constexpr const auto name
uint64_t __read_msr(uint32_t addr) noexcept
constexpr const auto from
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto mask
auto is_allowed1() noexcept
constexpr const auto from
constexpr const auto name
constexpr const auto name
constexpr const auto mask
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto mask
constexpr const auto name
constexpr const auto from
constexpr const auto mask
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto mask
auto is_allowed0() noexcept
constexpr const auto monitor_trap_flag
constexpr const auto name
constexpr const auto from
constexpr const auto from
constexpr const auto from
constexpr const auto from
auto is_allowed0() noexcept
auto is_allowed0() noexcept
constexpr const auto name
constexpr const auto name
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto name
constexpr const auto mask
auto is_allowed0() noexcept
auto is_allowed0() noexcept
constexpr const auto from
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto from
constexpr const auto from
constexpr const auto name
constexpr const auto addr
constexpr const auto name
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto mask
constexpr const auto from
constexpr const auto from
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto mask
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto from
auto is_allowed0() noexcept
auto is_allowed1() noexcept
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto from
constexpr const auto mask
constexpr const auto from
constexpr const auto from
constexpr const auto from
constexpr const auto mask
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto from
constexpr const auto mask
constexpr const auto from
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto name
constexpr const auto from
constexpr const auto from
constexpr const auto mask
constexpr const auto from
constexpr const auto name
constexpr const auto mask
constexpr const auto name
constexpr const auto name
auto is_bit_set(T t, B b) noexcept
constexpr const auto from
constexpr const auto mask
constexpr const auto mask
constexpr const auto mask
constexpr const auto mask
constexpr const auto mask
constexpr const auto from
constexpr const auto mask
constexpr const auto from
constexpr const auto name
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto from
constexpr const auto from
auto is_allowed0() noexcept
constexpr const auto name
auto is_allowed1() noexcept
constexpr const auto from
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto from
constexpr const auto name
auto set_bits(T t, M m, V v) noexcept
constexpr const auto mask
constexpr const auto name
constexpr const auto name
constexpr const auto from
auto is_allowed1() noexcept
constexpr const auto mask
constexpr const auto name
constexpr const auto mask
constexpr const auto name
auto is_allowed1() noexcept
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto from
constexpr const auto mask
constexpr const auto mask
auto is_allowed1() noexcept
constexpr const auto mask
constexpr const auto mask
constexpr const auto mask
constexpr const auto name
constexpr const auto mask
constexpr const auto name
auto is_allowed1() noexcept
auto is_allowed1() noexcept
constexpr const auto name
constexpr const auto from
constexpr const auto mask
constexpr const auto name
constexpr const auto name
auto is_allowed0() noexcept
constexpr const auto mask
constexpr const auto mask
constexpr const auto from