summaryrefslogtreecommitdiffstats
path: root/sys/dev/cardbus/cardbusvar.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/cardbus/cardbusvar.h')
-rw-r--r--sys/dev/cardbus/cardbusvar.h32
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 *);
OpenPOWER on IntegriCloud