1#ifndef __IOFORGE__IOFORGE_HPP__
2#define __IOFORGE__IOFORGE_HPP__
7#define IoForgeModuleConstructor(Class) \
8 static Class instance; \
9 extern "C" void load(); \
10 extern "C" void load() { instance.load(); }
12#define log(mod, fmt, ...) \
13 serial2_printf("[INFO][%s][CORE %d] " fmt "\n", mod, \
14 (int)get_current_core_cpuid(), ##__VA_ARGS__)
45 inline static void DMAFree(
void* paddr,
void* vaddr,
53 inline static void memcpy(
void*
dst,
void* src,
size_t num) {
static uint16_t irq_alloc_entry()
static uint32_t isr_get_vector(uint8_t irq)
static void free(void *ptr, size_t size)
static void DMAFree(void *paddr, void *vaddr, size_t size)
static void strncopy(char *dst, char *src, size_t len)
static void * alloc(size_t size)
static void isr_map(uint8_t irq, uint8_t vector)
static void strcopy(char *dst, char *src)
static void memcpy(void *dst, void *src, size_t num)
static void * DMAAlloc(size_t size, uintptr_t *paddr)
static void sleep(uint32_t us)
static void irq_register(uint8_t n, void *handler)
static void memset(void *ptr, uint8_t value, size_t num)
void * ioforge_alloc(size_t size)
void ioforge_memset(void *ptr, uint8_t value, size_t num)
uint32_t ioforge_isr_get_vector(uint8_t irq)
void IOforgeStrCopy(char *dst, char *src)
void ioforge_map_isr(uint8_t irq, uint8_t vector)
void ioforge_dma_free(void *paddr, void *vaddr, size_t size)
void ioforge_free(void *ptr, size_t size)
void * ioforge_dma_alloc(size_t size, uintptr_t *paddr)
void ioforge_sleep(uint32_t time)
void ioforge_memcpy(void *dst, void *src, size_t num)
void IOforgeStrnCopy(char *dst, char *src, size_t len)
uint16_t ioforge_irq_alloc_entry()
void ioforge_irq_register(uint8_t n, void *handler)