diff options
Diffstat (limited to 'sys/dev/cardbus/cardbusvar.h')
-rw-r--r-- | sys/dev/cardbus/cardbusvar.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sys/dev/cardbus/cardbusvar.h b/sys/dev/cardbus/cardbusvar.h index edb98bb..4cbc3c4 100644 --- a/sys/dev/cardbus/cardbusvar.h +++ b/sys/dev/cardbus/cardbusvar.h @@ -46,3 +46,35 @@ struct cardbus_devinfo } funce; uint32_t fepresent; /* bit mask of funce values present */ }; + +struct cis_buffer +{ + size_t len; /* Actual length of the CIS */ + uint8_t buffer[2040]; /* small enough to be 2k */ +}; + +struct cardbus_softc +{ + /* XXX need mutex XXX */ + device_t sc_dev; + struct cdev *sc_cisdev; + struct cis_buffer *sc_cis; + int sc_cis_open; +}; + +struct tuple_callbacks; + +typedef int (tuple_cb) (device_t cbdev, device_t child, int id, int len, + uint8_t *tupledata, uint32_t start, uint32_t *off, + struct tuple_callbacks *info, void *); + +struct tuple_callbacks { + int id; + char *name; + tuple_cb *func; +}; + +int cardbus_device_create(struct cardbus_softc *); +int cardbus_device_destroy(struct cardbus_softc *); +int cardbus_parse_cis(device_t cbdev, device_t child, + struct tuple_callbacks *callbacks, void *); |