=================================================================== RCS file: /cvs/funnyos/sys/bus.h,v retrieving revision 1.2 retrieving revision 1.6 diff -u -r1.2 -r1.6 --- funnyos/sys/bus.h 2007/10/16 18:58:43 1.2 +++ funnyos/sys/bus.h 2007/10/16 21:41:35 1.6 @@ -1,5 +1,5 @@ /* - * $Id: bus.h,v 1.2 2007/10/16 17:58:43 init Exp $ + * $Id: bus.h,v 1.6 2007/10/16 20:41:35 init Exp $ */ #ifndef _SYS_BUS_H #define _SYS_BUS_H @@ -11,17 +11,22 @@ * Device drivers attached to bus aquire bus_handle to perform all bus i/o. */ struct bus_handle { - uint8_t (*bus_read_1)(struct device *devp, uint32_t addr); - uint16_t (*bus_read_2)(struct device *devp, uint32_t addr); - uint32_t (*bus_read_4)(struct device *devp, uint32_t addr); - int (*bus_write_1)(struct device *devp, uint32_t addr, uint8_t data); - int (*bus_write_2)(struct device *devp, uint32_t addr, uint16_t data); - int (*bus_write_4)(struct device *devp, uint32_t addr, uint32_t data); + void *bh_ownerdd; /* devdata of device that owns this handler XXX kill that it is ugly */ + uint8_t (*bus_read_1)(void *ddp, uint32_t addr); + uint16_t (*bus_read_2)(void *ddp, uint32_t addr); + uint32_t (*bus_read_4)(void *ddp, uint32_t addr); + int (*bus_write_1)(void *ddp, uint32_t addr, uint8_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 */ }; -#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 */