12 #ifndef __METAL_BUS__H__
13 #define __METAL_BUS__H__
17 #include <metal/list.h>
18 #include <metal/dma.h>
19 #include <metal/sys.h>
29 #ifndef METAL_MAX_DEVICE_REGIONS
30 #define METAL_MAX_DEVICE_REGIONS 32
149 return (index < device->num_regions
156 #ifdef METAL_INTERNAL
162 uint32_t dir,
struct metal_sg *sg_in,
163 int nents_in,
struct metal_sg *sg_out);
166 uint32_t dir,
struct metal_sg *sg,
int nents);
int metal_generic_dev_open(struct metal_bus *bus, const char *dev_name, struct metal_device **device)
Definition: device.c:98
int metal_generic_dev_dma_map(struct metal_bus *bus, struct metal_device *device, uint32_t dir, struct metal_sg *sg_in, int nents_in, struct metal_sg *sg_out)
Definition: device.c:117
void metal_generic_dev_dma_unmap(struct metal_bus *bus, struct metal_device *device, uint32_t dir, struct metal_sg *sg, int nents)
Definition: device.c:140
int metal_bus_register(struct metal_bus *bus)
Register a libmetal bus.
Definition: device.c:18
int metal_register_generic_device(struct metal_device *device)
Statically register a generic libmetal device.
Definition: device.c:86
int metal_bus_find(const char *name, struct metal_bus **bus)
Find a libmetal bus by name.
Definition: device.c:39
static struct metal_io_region * metal_device_io_region(struct metal_device *device, unsigned int index)
Get an I/O region accessor for a device region.
Definition: device.h:147
void metal_device_close(struct metal_device *device)
Close a libmetal device.
Definition: device.c:79
int metal_device_open(const char *bus_name, const char *dev_name, struct metal_device **device)
Open a libmetal device by name.
Definition: device.c:54
struct metal_bus metal_generic_bus
Libmetal generic bus.
Definition: device.c:156
#define METAL_MAX_DEVICE_REGIONS
Definition: device.h:30
int metal_bus_unregister(struct metal_bus *bus)
Unregister a libmetal bus.
Definition: device.c:30
int metal_generic_dev_sys_open(struct metal_device *dev)
Definition: device.c:16