1#ifndef __SYS__IOFORGE__IOFORGE_H_
2#define __SYS__IOFORGE__IOFORGE_H_
6#define IOFORGE_SERVICE_NAME_MAX_LEN 64
22#define IOFORGE_F_ENABLE 1
23#define IOFORGE_F_VIRTIO (1 << 31)
static struct ioforge_device * root
uint8_t ioforge_get_current_core_id()
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)
struct ioforge_device * ioforge_get_root()
void IOforgeStrCopy(char *dst, char *src)
void ioforge_map_isr(uint8_t irq, uint8_t vector)
struct ioforge_device * ioforge_find_by_name(struct ioforge_device *root, const char *name)
void print_device_tree(struct ioforge_device *node, int indent)
void ioforge_dma_free(void *paddr, void *vaddr, size_t size)
uint32_t isr_irq_register(uint8_t irq, void *handler)
bool ioforge_can_contain_pci(IoForgeType type)
void serial_printf(const char *fmt,...)
void ioforge_free(void *ptr, size_t size)
void * ioforge_dma_alloc(size_t size, uintptr_t *paddr)
void ioforge_attach(struct ioforge_device *parent, struct ioforge_device *child)
void serial2_printf(const char *fmt,...)
void ioforge_sleep(uint32_t time)
uintptr_t IOforgeMMapPhys(uintptr_t paddr, size_t size)
struct ioforge_device * ioforge_get_pci_root()
struct ioforge_device * ioforge_get_block_devices_root()
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()
struct ioforge_pci_device * ioforge_find_pci_device(struct ioforge_device *node, uint16_t vendor_id, uint16_t device_id)
#define IOFORGE_SERVICE_NAME_MAX_LEN
void ioforge_irq_register(uint8_t n, void *handler)
struct ioforge_device * parent
struct ioforge_device * first_child
struct ioforge_device * prev_sibling
struct ioforge_device * next_sibling