~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/usb/storage.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0
  2 #ifndef __LINUX_USB_STORAGE_H
  3 #define __LINUX_USB_STORAGE_H
  4 
  5 /*
  6  * linux/usb/storage.h
  7  *
  8  * Copyright Matthew Wilcox for Intel Corp, 2010
  9  *
 10  * This file contains definitions taken from the
 11  * USB Mass Storage Class Specification Overview
 12  */
 13 
 14 /* Storage subclass codes */
 15 
 16 #define USB_SC_RBC      0x01            /* Typically, flash devices */
 17 #define USB_SC_8020     0x02            /* CD-ROM */
 18 #define USB_SC_QIC      0x03            /* QIC-157 Tapes */
 19 #define USB_SC_UFI      0x04            /* Floppy */
 20 #define USB_SC_8070     0x05            /* Removable media */
 21 #define USB_SC_SCSI     0x06            /* Transparent */
 22 #define USB_SC_LOCKABLE 0x07            /* Password-protected */
 23 
 24 #define USB_SC_ISD200   0xf0            /* ISD200 ATA */
 25 #define USB_SC_CYP_ATACB        0xf1    /* Cypress ATACB */
 26 #define USB_SC_DEVICE   0xff            /* Use device's value */
 27 
 28 /* Storage protocol codes */
 29 
 30 #define USB_PR_CBI      0x00            /* Control/Bulk/Interrupt */
 31 #define USB_PR_CB       0x01            /* Control/Bulk w/o interrupt */
 32 #define USB_PR_BULK     0x50            /* bulk only */
 33 #define USB_PR_UAS      0x62            /* USB Attached SCSI */
 34 
 35 #define USB_PR_USBAT    0x80            /* SCM-ATAPI bridge */
 36 #define USB_PR_EUSB_SDDR09      0x81    /* SCM-SCSI bridge for SDDR-09 */
 37 #define USB_PR_SDDR55   0x82            /* SDDR-55 (made up) */
 38 #define USB_PR_DPCM_USB 0xf0            /* Combination CB/SDDR09 */
 39 #define USB_PR_FREECOM  0xf1            /* Freecom */
 40 #define USB_PR_DATAFAB  0xf2            /* Datafab chipsets */
 41 #define USB_PR_JUMPSHOT 0xf3            /* Lexar Jumpshot */
 42 #define USB_PR_ALAUDA   0xf4            /* Alauda chipsets */
 43 #define USB_PR_KARMA    0xf5            /* Rio Karma */
 44 
 45 #define USB_PR_DEVICE   0xff            /* Use device's value */
 46 
 47 /*
 48  * Bulk only data structures
 49  */
 50 
 51 /* command block wrapper */
 52 struct bulk_cb_wrap {
 53         __le32  Signature;              /* contains 'USBC' */
 54         __u32   Tag;                    /* unique per command id */
 55         __le32  DataTransferLength;     /* size of data */
 56         __u8    Flags;                  /* direction in bit 0 */
 57         __u8    Lun;                    /* LUN normally 0 */
 58         __u8    Length;                 /* length of the CDB */
 59         __u8    CDB[16];                /* max command */
 60 };
 61 
 62 #define US_BULK_CB_WRAP_LEN     31
 63 #define US_BULK_CB_SIGN         0x43425355      /* spells out 'USBC' */
 64 #define US_BULK_FLAG_IN         (1 << 7)
 65 #define US_BULK_FLAG_OUT        0
 66 
 67 /* command status wrapper */
 68 struct bulk_cs_wrap {
 69         __le32  Signature;      /* contains 'USBS' */
 70         __u32   Tag;            /* same as original command */
 71         __le32  Residue;        /* amount not transferred */
 72         __u8    Status;         /* see below */
 73 };
 74 
 75 #define US_BULK_CS_WRAP_LEN     13
 76 #define US_BULK_CS_SIGN         0x53425355      /* spells out 'USBS' */
 77 #define US_BULK_STAT_OK         0
 78 #define US_BULK_STAT_FAIL       1
 79 #define US_BULK_STAT_PHASE      2
 80 
 81 /* bulk-only class specific requests */
 82 #define US_BULK_RESET_REQUEST   0xff
 83 #define US_BULK_GET_MAX_LUN     0xfe
 84 
 85 #endif
 86 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php