14#define BIT(x) (1 << x)
26#define REG32(x) (*((volatile uint32_t *) (x)))
35#define clrsetbits_le32(addr, clear, set) write32((addr), (read32(addr) & ~(clear)) | (set))
43#define setbits_le32(addr, set) write32((addr), read32(addr) | (set))
51#define clrbits_le32(addr, clear) write32((addr), read32(addr) & ~(clear))
58#define readb(addr) read8(addr)
66#define writeb(val, addr) write8((addr), (val))
73#define readw(addr) read16(addr)
81#define writew(val, addr) write16((addr), (val))
88#define readl(addr) read32(addr)
96#define writel(val, addr) write32((addr), (val))
105 return (*((
volatile uint8_t *) (addr)));
115 return (*((
volatile uint16_t *) (addr)));
125 return (*((
volatile uint32_t *) (addr)));
135 return (*((
volatile uint64_t *) (addr)));
static void write64(virtual_addr_t addr, u64_t value)
Definition io.h:34
static u16_t read16(virtual_addr_t addr)
Definition io.h:10
static u64_t read64(virtual_addr_t addr)
Definition io.h:18
static void write8(virtual_addr_t addr, u8_t value)
Definition io.h:22
static u32_t read32(virtual_addr_t addr)
Definition io.h:14
static void write16(virtual_addr_t addr, u16_t value)
Definition io.h:26
static void write32(virtual_addr_t addr, u32_t value)
Definition io.h:30
static u8_t read8(virtual_addr_t addr)
Definition io.h:6
u64_t uint64_t
Definition stdint.h:16
u32_t uint32_t
Definition stdint.h:13
u8_t uint8_t
Definition stdint.h:7
u16_t uint16_t
Definition stdint.h:10
unsigned long long virtual_addr_t
Definition types.h:32
static __attribute__((__always_inline__)) uint8_t read8(virtual_addr_t addr)
Inline function to read an 8-bit value from the specified address.
Definition io.h:104
static uint8_t value
Definition io.h:144