blob: 76f9581d5ea1727df89af9d6558d8233c6a5b3e7 [file] [log] [blame]
#pragma once
#include <stddef.h>
#include <stdint.h>
#include "hf/arch/barriers.h"
static inline uint32_t io_read(size_t addr)
{
return *(volatile uint32_t *)addr;
}
static inline uint32_t io_read_mb(size_t addr)
{
uint32_t v = io_read(addr);
dsb();
isb();
return v;
}
static inline void io_write(size_t addr, uint32_t v)
{
*(volatile uint32_t *)addr = v;
}
static inline void io_write_mb(size_t addr, uint32_t v)
{
dsb();
isb();
io_write(addr, v);
}