64 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
67 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
70 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
73 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
76 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
79 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
82 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
83 auto insb(P port,
void *m8)
noexcept {
return __insb(gsl::narrow_cast<port_addr_type>(port), reinterpret_cast<integer_pointer>(m8)); }
85 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
86 auto insw(P port,
void *m16)
noexcept {
return __insw(gsl::narrow_cast<port_addr_type>(port), reinterpret_cast<integer_pointer>(m16)); }
88 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
89 auto insd(P port,
void *m32)
noexcept {
return __insd(gsl::narrow_cast<port_addr_type>(port), reinterpret_cast<integer_pointer>(m32)); }
91 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
94 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
97 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
100 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
103 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
106 template<class P, class = typename std::enable_if<std::is_integral<P>::value>
::type>
109 template<
class P,
class T,
110 class =
typename std::enable_if<std::is_integral<P>::value>
::type,
111 class = typename
std::enable_if<std::is_integral<T>::value>::type>
112 void
outb(P port, T val)
noexcept {
__outb(gsl::narrow_cast<port_addr_type>(port), gsl::narrow_cast<port_8bit_type>(val)); }
114 template<
class P,
class T,
115 class =
typename std::enable_if<std::is_integral<P>::value>
::type,
116 class = typename
std::enable_if<std::is_integral<T>::value>::type>
117 void
outw(P port, T val)
noexcept {
__outw(gsl::narrow_cast<port_addr_type>(port), gsl::narrow_cast<port_16bit_type>(val)); }
119 template<
class P,
class T,
120 class =
typename std::enable_if<std::is_integral<P>::value>
::type,
121 class = typename
std::enable_if<std::is_integral<T>::value>::type>
122 void
outd(P port, T val)
noexcept {
__outd(gsl::narrow_cast<port_addr_type>(port), gsl::narrow_cast<port_32bit_type>(val)); }
124 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
127 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
130 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
133 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
134 void outsb(P port,
void *m8)
noexcept {
__outsb(gsl::narrow_cast<port_addr_type>(port), reinterpret_cast<integer_pointer>(m8)); }
136 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
137 void outsw(P port,
void *m16)
noexcept {
__outsw(gsl::narrow_cast<port_addr_type>(port), reinterpret_cast<integer_pointer>(m16)); }
139 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
140 void outsd(P port,
void *m32)
noexcept {
__outsd(gsl::narrow_cast<port_addr_type>(port), reinterpret_cast<integer_pointer>(m32)); }
142 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
145 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
148 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
151 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
154 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
157 template<class P, class = typename std::enable_if<std::is_integral<P>::value>::type>
auto inb(P port) noexcept
void __outsb(uint16_t port, uint64_t m8) noexcept
uint32_t __ind(uint16_t port) noexcept
void outsb(P port, integer_pointer m8) noexcept
void __inswrep(uint16_t port, uint64_t m16, uint32_t count) noexcept
auto insbrep(P port, integer_pointer m8, size_type count) noexcept
void outw(P port, T val) noexcept
void outswrep(P port, integer_pointer m16, size_type count) noexcept
void outsbrep(P port, integer_pointer m8, size_type count) noexcept
void __insw(uint16_t port, uint64_t m16) noexcept
void __insdrep(uint16_t port, uint64_t m32, uint32_t count) noexcept
void outb(P port, T val) noexcept
auto insb(P port, integer_pointer m8) noexcept
void outd(P port, T val) noexcept
auto insw(P port, integer_pointer m16) noexcept
void __outsdrep(uint16_t port, uint64_t m32, uint32_t count) noexcept
void outsw(P port, integer_pointer m16) noexcept
void __outsbrep(uint16_t port, uint64_t m8, uint32_t count) noexcept
uint16_t __inw(uint16_t port) noexcept
void uint64_t uint64_t uint64_t *rdx noexcept
auto inswrep(P port, integer_pointer m16, size_type count) noexcept
void __outd(uint16_t port, uint32_t val) noexcept
void __outsw(uint16_t port, uint64_t m16) noexcept
void __insb(uint16_t port, uint64_t m8) noexcept
void outsdrep(P port, integer_pointer m32, size_type count) noexcept
void __insbrep(uint16_t port, uint64_t m8, uint32_t count) noexcept
uint8_t __inb(uint16_t port) noexcept
void __outw(uint16_t port, uint16_t val) noexcept
auto insdrep(P port, integer_pointer m32, size_type count) noexcept
uintptr_t integer_pointer
void outsd(P port, integer_pointer m32) noexcept
void __outsd(uint16_t port, uint64_t m32) noexcept
auto insd(P port, integer_pointer m32) noexcept
void __outswrep(uint16_t port, uint64_t m16, uint32_t count) noexcept
auto inw(P port) noexcept
void __insd(uint16_t port, uint64_t m32) noexcept
auto ind(P port) noexcept
void __outb(uint16_t port, uint8_t val) noexcept