insb (uint16_t port, void *addr, size_t cnt)
{
/* See [IA32-v2a] "INS". */
insb (uint16_t port, void *addr, size_t cnt)
{
/* See [IA32-v2a] "INS". */
: "=D" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "memory", "cc");
: "=D" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "memory", "cc");
insw (uint16_t port, void *addr, size_t cnt)
{
/* See [IA32-v2a] "INS". */
insw (uint16_t port, void *addr, size_t cnt)
{
/* See [IA32-v2a] "INS". */
: "=D" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "memory", "cc");
: "=D" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "memory", "cc");
insl (uint16_t port, void *addr, size_t cnt)
{
/* See [IA32-v2a] "INS". */
insl (uint16_t port, void *addr, size_t cnt)
{
/* See [IA32-v2a] "INS". */
: "=D" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "memory", "cc");
: "=D" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "memory", "cc");
outb (uint16_t port, uint8_t data)
{
/* See [IA32-v2b] "OUT". */
outb (uint16_t port, uint8_t data)
{
/* See [IA32-v2b] "OUT". */
outsb (uint16_t port, const void *addr, size_t cnt)
{
/* See [IA32-v2b] "OUTS". */
outsb (uint16_t port, const void *addr, size_t cnt)
{
/* See [IA32-v2b] "OUTS". */
: "=S" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "cc");
: "=S" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "cc");
outw (uint16_t port, uint16_t data)
{
/* See [IA32-v2b] "OUT". */
outw (uint16_t port, uint16_t data)
{
/* See [IA32-v2b] "OUT". */
outsw (uint16_t port, const void *addr, size_t cnt)
{
/* See [IA32-v2b] "OUTS". */
outsw (uint16_t port, const void *addr, size_t cnt)
{
/* See [IA32-v2b] "OUTS". */
: "=S" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "cc");
: "=S" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "cc");
outl (uint16_t port, uint32_t data)
{
/* See [IA32-v2b] "OUT". */
outl (uint16_t port, uint32_t data)
{
/* See [IA32-v2b] "OUT". */
outsl (uint16_t port, const void *addr, size_t cnt)
{
/* See [IA32-v2b] "OUTS". */
outsl (uint16_t port, const void *addr, size_t cnt)
{
/* See [IA32-v2b] "OUTS". */
: "=S" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "cc");
: "=S" (addr), "=c" (cnt)
: "d" (port), "0" (addr), "1" (cnt)
: "cc");