13#define BIT(x) (1 << (x))
22#define clrsetbits_le32(addr, clear, set) write32((addr), (read32(addr) & ~(clear)) | (set))
30#define setbits_le32(addr, set) write32((addr), read32(addr) | (set))
38#define clrbits_le32(addr, clear) write32((addr), read32(addr) & ~(clear))
45#define readb(addr) read8(addr)
53#define writeb(val, addr) write8((addr), (val))
60#define readw(addr) read16(addr)
68#define writew(val, addr) write16((addr), (val))
75#define readl(addr) read32(addr)
83#define writel(val, addr) write32((addr), (val))
94 asm volatile(
"lb %0, 0(%1)"
109 asm volatile(
"lh %0, 0(%1)"
124 asm volatile(
"lw %0, 0(%1)"
139 asm volatile(
"ld %0, 0(%1)"
152 asm volatile(
"sb %0, 0(%1)"
154 :
"r"(
value),
"r"(addr));
164 asm volatile(
"sh %0, 0(%1)"
166 :
"r"(
value),
"r"(addr));
176 asm volatile(
"sw %0, 0(%1)"
178 :
"r"(
value),
"r"(addr));
188 asm volatile(
"sd %0, 0(%1)"
190 :
"r"(
value),
"r"(addr));
ul val
Definition memtester.c:33
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