=================================================================== RCS file: /cvs/funnyos/sys/bus.h,v retrieving revision 1.1 retrieving revision 1.4 diff -u -r1.1 -r1.4 --- funnyos/sys/bus.h 2007/10/16 09:41:05 1.1 +++ funnyos/sys/bus.h 2007/10/16 20:57:54 1.4 @@ -1,5 +1,5 @@ /* - * $Id: bus.h,v 1.1 2007/10/16 08:41:05 init Exp $ + * $Id: bus.h,v 1.4 2007/10/16 19:57:54 init Exp $ */ #ifndef _SYS_BUS_H #define _SYS_BUS_H @@ -7,15 +7,17 @@ #include /* - * Bus operations. + * Each bus (bus driver instance) has its own bus_handle. + * Device drivers attached to bus aquire bus_handle to perform all bus i/o. */ -struct busops { - 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); +struct bus_handle { + struct device *bh_ownerdevp; /* 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 */ };