1 /* $NetBSD: ppbus_device.h,v 1.6 2008/04/15 15:02:29 cegger Exp $ */ 2 3 #ifndef __PPBUS_DEVICE_H 4 #define __PPBUS_DEVICE_H 5 6 #include <sys/device.h> 7 8 #include <dev/ppbus/ppbus_msq.h> 9 10 11 /* Parallel Port Bus Device context. */ 12 struct ppbus_context { 13 int valid; /* 1 if the struct is valid */ 14 int mode; /* XXX chipset operating mode */ 15 struct microseq *curpc; /* pc in curmsq */ 16 struct microseq *curmsq; /* currently executed microseqence */ 17 }; 18 19 /* Parallel Port Bus Device structure. */ 20 struct ppbus_device_softc { 21 device_t sc_dev; 22 23 u_int16_t mode; /* current mode of the device */ 24 u_int16_t capabilities; /* ppbus capabilities */ 25 26 /* uint flags; flags */ 27 struct ppbus_context ctx; /* context of the device */ 28 29 /* mode dependent get msq. If NULL, 30 * IEEE1284 code is used */ 31 struct ppbus_xfer 32 get_xfer[PPBUS_MAX_XFER]; 33 34 /* mode dependent put msq. If NULL, 35 * IEEE1284 code is used */ 36 struct ppbus_xfer 37 put_xfer[PPBUS_MAX_XFER]; 38 39 /* Each structure is a node in a list of child devices */ 40 SLIST_ENTRY(ppbus_device_softc) entries; 41 }; 42 43 struct ppbus_attach_args { 44 /* Available IEEE1284 modes */ 45 u_int16_t capabilities; 46 47 /* Flags? 48 u_int16_t flags;*/ 49 }; 50 51 #endif /* __PPBUS_DEVICE_H */ 52