19#define USB_CLASS_MSC 0x08
22#define USB_SUBCLASS_MSC_SCSI 0x06
25#define USB_PROTOCOL_MSC_BULK 0x50
28#define USBBLK_RESET ( USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE | \
29 USB_REQUEST_TYPE ( 255 ) )
50#define USBBLK_COMMAND_SIGNATURE 0x43425355UL
65#define USBBLK_STATUS_SIGNATURE 0x53425355UL
108#define USBBLK_TAG_MAGIC 0x18ae0000
114#define USBBLK_MAX_LEN 2048
120#define USBBLK_MAX_FILL 4
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Universal Serial Bus (USB)
A doubly-linked list entry (or list head)
A SCSI command information unit.
uint8_t cblen
Command block length.
uint32_t len
Data transfer length.
uint8_t cb[16]
Command block.
uint32_t signature
Signature.
A USB mass storage command.
size_t offset
Offset within data buffer.
struct scsi_cmd scsi
SCSI command.
uint32_t tag
Command tag (0 for no command in progress)
A USB mass storage device.
struct usb_endpoint in
Bulk IN endpoint.
struct process process
Command process.
struct usb_endpoint out
Bulk OUT endpoint.
struct refcnt refcnt
Reference count.
int opened
Device opened flag.
struct usb_function * func
USB function.
struct list_head list
List of devices.
struct usbblk_command cmd
Current command (if any)
struct interface scsi
SCSI command-issuing interface.
struct interface data
SCSI data interface.
uint32_t residue
Data residue.
uint32_t signature
Signature.