47 "movq (%1), %%mm0\n\t" 48 "movq %%mm0, (%%esp)\n\t" 52 :
"=A" (
data ) :
"r" ( io_addr ) );
67 "movq (%%esp), %%mm0\n\t" 68 "movq %%mm0, (%1)\n\t" 72 : :
"A" (
data ),
"r" ( io_addr ) );
uint8_t readb(volatile uint8_t *io_addr)
Read byte from memory-mapped device.
uint16_t inw(volatile uint16_t *io_addr)
Read 16-bit word from I/O-mapped device.
#define outw(data, io_addr)
uint64_t readq(volatile uint64_t *io_addr)
Read 64-bit qword from memory-mapped device.
uint16_t readw(volatile uint16_t *io_addr)
Read 16-bit word from memory-mapped device.
uint32_t readl(volatile uint32_t *io_addr)
Read 32-bit dword from memory-mapped device.
void outsw(volatile uint16_t *io_addr, const uint16_t *data, unsigned int count)
Write 16-bit words to I/O-mapped device.
unsigned long long uint64_t
void insb(volatile uint8_t *io_addr, uint8_t *data, unsigned int count)
Read bytes from I/O-mapped device.
void writeb(uint8_t data, volatile uint8_t *io_addr)
Write byte to memory-mapped device.
PROVIDE_IOAPI_INLINE(x86, phys_to_bus)
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
#define __unused
Declare a variable or data structure as unused.
void writel(uint32_t data, volatile uint32_t *io_addr)
Write 32-bit dword to memory-mapped device.
static __unused void i386_writeq(uint64_t data, volatile uint64_t *io_addr)
Write 64-bit qword to memory-mapped device.
void insl(volatile uint32_t *io_addr, uint32_t *data, unsigned int count)
Read 32-bit words from I/O-mapped device.
#define outl(data, io_addr)
__asm__ __volatile__("call *%9" :"=a"(result), "=c"(discard_ecx), "=d"(discard_edx) :"d"(0), "a"(code), "b"(0), "c"(in_phys), "D"(0), "S"(out_phys), "m"(hypercall))
void insw(volatile uint16_t *io_addr, uint16_t *data, unsigned int count)
Read 16-bit words from I/O-mapped device.
uint8_t inb(volatile uint8_t *io_addr)
Read byte from I/O-mapped device.
unsigned long phys_to_bus(unsigned long phys_addr)
Convert physical address to a bus address.
void outsb(volatile uint8_t *io_addr, const uint8_t *data, unsigned int count)
Write bytes to I/O-mapped device.
__asm__(".section \".rodata\", \"a\", " PROGBITS "\n\t" "\nprivate_key_data:\n\t" ".size private_key_data, ( . - private_key_data )\n\t" ".equ private_key_len, ( . - private_key_data )\n\t" ".previous\n\t")
#define outb(data, io_addr)
uint32_t inl(volatile uint32_t *io_addr)
Read 32-bit dword from I/O-mapped device.
static __unused uint64_t i386_readq(volatile uint64_t *io_addr)
Read 64-bit qword from memory-mapped device.
uint8_t data[48]
Additional event data.
void outsl(volatile uint32_t *io_addr, const uint32_t *data, unsigned int count)
Write 32-bit words to I/O-mapped device.
void mb(void)
Memory barrier.
void iodelay(void)
Slow down I/O.
unsigned long bus_to_phys(unsigned long bus_addr)
Convert bus address to a physical address.
void writeq(uint64_t data, volatile uint64_t *io_addr)
Write 64-bit qword to memory-mapped device.
PROVIDE_IOAPI(x86, readq, i386_readq)