cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

storage.h (2645B)


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