Namespaces | Functions | Variables
x64.h File Reference

Go to the source code of this file.

Namespaces

 x64
 
 x64::memory_type
 
 x64::access_rights
 
 x64::access_rights::type
 
 x64::access_rights::dpl
 
 x64::interrupt
 

Functions

template<class T , class = typename std::enable_if<std::is_integral<T>::value>::type>
auto x64::is_address_canonical (T addr)
 
template<class T , class = typename std::enable_if<std::is_integral<T>::value>::type>
auto x64::is_linear_address_valid (T addr)
 
template<class T , class = typename std::enable_if<std::is_integral<T>::value>::type>
auto x64::is_physical_address_valid (T addr)
 

Variables

constexpr const auto x64::page_size = 0x1000UL
 
constexpr const auto x64::page_shift = 12UL
 
constexpr const auto x64::cache_line_size = 64UL
 
constexpr const auto x64::cache_line_shift = 6UL
 
constexpr const auto x64::memory_type::uncacheable = 0x00000000UL
 
constexpr const auto x64::memory_type::write_combining = 0x00000001UL
 
constexpr const auto x64::memory_type::write_through = 0x00000004UL
 
constexpr const auto x64::memory_type::write_protected = 0x00000005UL
 
constexpr const auto x64::memory_type::write_back = 0x00000006UL
 
constexpr const auto x64::memory_type::uncacheable_minus = 0x00000007UL
 
constexpr const auto x64::access_rights::type::tss_busy = 0x0000000BU
 
constexpr const auto x64::access_rights::type::tss_available = 0x00000009U
 
constexpr const auto x64::access_rights::type::read_only = 0x00000000U
 
constexpr const auto x64::access_rights::type::read_only_accessed = 0x00000001U
 
constexpr const auto x64::access_rights::type::read_write = 0x00000002U
 
constexpr const auto x64::access_rights::type::read_write_accessed = 0x00000003U
 
constexpr const auto x64::access_rights::type::read_only_expand_down = 0x00000004U
 
constexpr const auto x64::access_rights::type::read_only_expand_down_accessed = 0x00000005U
 
constexpr const auto x64::access_rights::type::read_write_expand_down = 0x00000006U
 
constexpr const auto x64::access_rights::type::read_write_expand_down_accessed = 0x00000007U
 
constexpr const auto x64::access_rights::type::execute_only = 0x00000008U
 
constexpr const auto x64::access_rights::type::execute_only_accessed = 0x00000009U
 
constexpr const auto x64::access_rights::type::read_execute = 0x0000000AU
 
constexpr const auto x64::access_rights::type::read_execute_accessed = 0x0000000BU
 
constexpr const auto x64::access_rights::type::execute_only_conforming = 0x0000000CU
 
constexpr const auto x64::access_rights::type::execute_only_conforming_accessed = 0x0000000DU
 
constexpr const auto x64::access_rights::type::read_execute_conforming = 0x0000000EU
 
constexpr const auto x64::access_rights::type::read_execute_conforming_accessed = 0x0000000FU
 
constexpr const auto x64::access_rights::dpl::ring0 = 0x00000000U
 
constexpr const auto x64::access_rights::dpl::ring1 = 0x00000001U
 
constexpr const auto x64::access_rights::dpl::ring2 = 0x00000002U
 
constexpr const auto x64::access_rights::dpl::ring3 = 0x00000003U
 
constexpr const auto x64::access_rights::ring0_cs_descriptor = 0x0000A09BU
 
constexpr const auto x64::access_rights::ring0_ss_descriptor = 0x0000C093U
 
constexpr const auto x64::access_rights::ring0_fs_descriptor = 0x00008093U
 
constexpr const auto x64::access_rights::ring0_gs_descriptor = 0x00008093U
 
constexpr const auto x64::access_rights::ring0_tr_descriptor = 0x0000008BU
 
constexpr const auto x64::access_rights::unusable = 0x00010000U
 
constexpr const auto x64::interrupt::divide_error = 0U
 
constexpr const auto x64::interrupt::debug_exception = 1U
 
constexpr const auto x64::interrupt::nmi_interrupt = 2U
 
constexpr const auto x64::interrupt::breakpoint = 3U
 
constexpr const auto x64::interrupt::overflow = 4U
 
constexpr const auto x64::interrupt::bound_range_exceeded = 5U
 
constexpr const auto x64::interrupt::invalid_opcode = 6U
 
constexpr const auto x64::interrupt::device_not_available = 7U
 
constexpr const auto x64::interrupt::double_fault = 8U
 
constexpr const auto x64::interrupt::coprocessor_segment_overrun = 9U
 
constexpr const auto x64::interrupt::invalid_tss = 10U
 
constexpr const auto x64::interrupt::segment_not_present = 11U
 
constexpr const auto x64::interrupt::stack_segment_fault = 12U
 
constexpr const auto x64::interrupt::general_protection = 13U
 
constexpr const auto x64::interrupt::page_fault = 14U
 
constexpr const auto x64::interrupt::floating_point_error = 16U
 
constexpr const auto x64::interrupt::alignment_check = 17U
 
constexpr const auto x64::interrupt::machine_check = 18U
 
constexpr const auto x64::interrupt::simd_floating_point_exception = 19U
 
constexpr const auto x64::interrupt::virtualization_exception = 20U