// SPDX-License-Identifier: GPL-2.0
#ifndef __LINUX_USB_STORAGE_H
#define __LINUX_USB_STORAGE_H
/*
* linux / usb / storage . h
*
* Copyright Matthew Wilcox for Intel Corp , 2010
*
* This file contains definitions taken from the
* USB Mass Storage Class Specification Overview
*/
/* Storage subclass codes */
#define USB_SC_RBC 0 x01 /* Typically, flash devices */
#define USB_SC_8020 0 x02 /* CD-ROM */
#define USB_SC_QIC 0 x03 /* QIC-157 Tapes */
#define USB_SC_UFI 0 x04 /* Floppy */
#define USB_SC_8070 0 x05 /* Removable media */
#define USB_SC_SCSI 0 x06 /* Transparent */
#define USB_SC_LOCKABLE 0 x07 /* Password-protected */
#define USB_SC_ISD200 0 xf0 /* ISD200 ATA */
#define USB_SC_CYP_ATACB 0 xf1 /* Cypress ATACB */
#define USB_SC_DEVICE 0 xff /* Use device's value */
/* Storage protocol codes */
#define USB_PR_CBI 0 x00 /* Control/Bulk/Interrupt */
#define USB_PR_CB 0 x01 /* Control/Bulk w/o interrupt */
#define USB_PR_BULK 0 x50 /* bulk only */
#define USB_PR_UAS 0 x62 /* USB Attached SCSI */
#define USB_PR_USBAT 0 x80 /* SCM-ATAPI bridge */
#define USB_PR_EUSB_SDDR09 0 x81 /* SCM-SCSI bridge for SDDR-09 */
#define USB_PR_SDDR55 0 x82 /* SDDR-55 (made up) */
#define USB_PR_DPCM_USB 0 xf0 /* Combination CB/SDDR09 */
#define USB_PR_FREECOM 0 xf1 /* Freecom */
#define USB_PR_DATAFAB 0 xf2 /* Datafab chipsets */
#define USB_PR_JUMPSHOT 0 xf3 /* Lexar Jumpshot */
#define USB_PR_ALAUDA 0 xf4 /* Alauda chipsets */
#define USB_PR_KARMA 0 xf5 /* Rio Karma */
#define USB_PR_DEVICE 0 xff /* Use device's value */
/*
* Bulk only data structures
*/
/* command block wrapper */
struct bulk_cb_wrap {
__le32 Signature; /* contains 'USBC' */
__u32 Tag; /* unique per command id */
__le32 DataTransferLength; /* size of data */
__u8 Flags; /* direction in bit 7 */
__u8 Lun; /* LUN normally 0 */
__u8 Length; /* length of the CDB */
__u8 CDB[16 ]; /* max command */
};
#define US_BULK_CB_WRAP_LEN 31
#define US_BULK_CB_SIGN 0 x43425355 /* spells out 'USBC' */
#define US_BULK_FLAG_IN (1 << 7 )
#define US_BULK_FLAG_OUT 0
/* command status wrapper */
struct bulk_cs_wrap {
__le32 Signature; /* contains 'USBS' */
__u32 Tag; /* same as original command */
__le32 Residue; /* amount not transferred */
__u8 Status; /* see below */
};
#define US_BULK_CS_WRAP_LEN 13
#define US_BULK_CS_SIGN 0 x53425355 /* spells out 'USBS' */
#define US_BULK_STAT_OK 0
#define US_BULK_STAT_FAIL 1
#define US_BULK_STAT_PHASE 2
/* bulk-only class specific requests */
#define US_BULK_RESET_REQUEST 0 xff
#define US_BULK_GET_MAX_LUN 0 xfe
/*
* If 4 LUNs are supported then the LUNs would be
* numbered from 0 to 3 , and the return value for
* US_BULK_GET_MAX_LUN request would be 3 . The valid
* LUN field is 4 bits wide , the upper limit is 0 x0f .
*/
#define US_BULK_MAX_LUN_LIMIT 0 x0f
#endif
Messung V0.5 in Prozent C=67 H=100 G=84
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland