version 1.2, 2007/10/16 18:58:43 |
version 1.6, 2007/10/16 21:41:35 |
|
|
* Device drivers attached to bus aquire bus_handle to perform all bus i/o. |
* Device drivers attached to bus aquire bus_handle to perform all bus i/o. |
*/ |
*/ |
struct bus_handle { |
struct bus_handle { |
uint8_t (*bus_read_1)(struct device *devp, uint32_t addr); |
void *bh_ownerdd; /* devdata of device that owns this handler XXX kill that it is ugly */ |
uint16_t (*bus_read_2)(struct device *devp, uint32_t addr); |
uint8_t (*bus_read_1)(void *ddp, uint32_t addr); |
uint32_t (*bus_read_4)(struct device *devp, uint32_t addr); |
uint16_t (*bus_read_2)(void *ddp, uint32_t addr); |
int (*bus_write_1)(struct device *devp, uint32_t addr, uint8_t data); |
uint32_t (*bus_read_4)(void *ddp, uint32_t addr); |
int (*bus_write_2)(struct device *devp, uint32_t addr, uint16_t data); |
int (*bus_write_1)(void *ddp, uint32_t addr, uint8_t data); |
int (*bus_write_4)(struct device *devp, uint32_t addr, uint32_t data); |
int (*bus_write_2)(void *ddp, uint32_t addr, uint16_t data); |
|
int (*bus_write_4)(void *ddp, uint32_t addr, uint32_t data); |
/* XXX DMA related stuff */ |
/* XXX DMA related stuff */ |
}; |
}; |
|
|
#define bus_read_1(dev, addr) ((struct busops *)dev->dv_devdata)->bus_read_1(dev, addr) |
|
|
|
#define bus_write_1(dev, addr, data) ((struct busops *)dev->dv_devdata)->bus_write_1(dev, addr, data) |
uint8_t bus_read_1(struct bus_handle *bhp, uint32_t addr); |
|
uint16_t bus_read_2(struct bus_handle *bhp, uint32_t addr); |
|
uint32_t bus_read_4(struct bus_handle *bhp, uint32_t addr); |
|
int bus_write_1(struct bus_handle *bhp, uint32_t addr, uint8_t data); |
|
int bus_write_2(struct bus_handle *bhp, uint32_t addr, uint16_t data); |
|
int bus_write_4(struct bus_handle *bhp, uint32_t addr, uint32_t data); |
|
|
#endif /* _SYS_BUS_H */ |
#endif /* _SYS_BUS_H */ |