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