File: [local] / funnyos / sys / bus.h (download)
Revision 1.5, Tue Oct 16 20:40:47 2007 UTC (16 years, 8 months ago) by init
Branch: MAIN
Changes since 1.4: +8 -4 lines
bh_ownerdevp -> bh_ownerdd; again, think it is a better name
|
/*
* $Id: bus.h,v 1.5 2007/10/16 20:40:47 init Exp $
*/
#ifndef _SYS_BUS_H
#define _SYS_BUS_H
#include <sys/device.h>
/*
* 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 bus_handle {
struct device *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 */
};
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 */