2 * mass storage transport protocols and subclasses,
3 * from usb mass storage class specification overview rev 1.2
6 typedef struct Umsc Umsc;
7 typedef struct Ums Ums;
8 typedef struct Cbw Cbw; /* command block wrapper */
9 typedef struct Csw Csw; /* command status wrapper */
10 typedef struct Part Part;
14 Protocbi = 0, /* control/bulk/interrupt; mainly floppies */
15 Protocb = 1, /* " with no interrupt; mainly floppies */
16 Protobulk = 0x50, /* bulk only */
18 Subrbc = 1, /* reduced blk cmds */
19 Subatapi = 2, /* cd/dvd using sff-8020i or mmc-2 cmd blks */
20 Subqic = 3, /* QIC-157 tapes */
21 Subufi = 4, /* floppy */
22 Sub8070 = 5, /* removable media, atapi-like */
23 Subscsi = 6, /* scsi transparent cmd set */
24 Subisd200 = 7, /* ISD200 ATA */
25 Subdev = 0xff, /* use device's value */
51 * corresponds to a lun.
52 * these are ~600+Maxiosize bytes each; ScsiReq is not tiny.
62 vlong offset; /* in lbsize units */
63 vlong length; /* in lbsize units */
76 long off; /* offset within a block */
77 long nb; /* byte count */
103 * USB transparent SCSI devices
107 char signature[4]; /* "USBC" */
118 char signature[4]; /* "USBS" */