linux/include/linux/usb/storage.h

// 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
#define USB_SC_8020
#define USB_SC_QIC
#define USB_SC_UFI
#define USB_SC_8070
#define USB_SC_SCSI
#define USB_SC_LOCKABLE

#define USB_SC_ISD200
#define USB_SC_CYP_ATACB
#define USB_SC_DEVICE

/* Storage protocol codes */

#define USB_PR_CBI
#define USB_PR_CB
#define USB_PR_BULK
#define USB_PR_UAS

#define USB_PR_USBAT
#define USB_PR_EUSB_SDDR09
#define USB_PR_SDDR55
#define USB_PR_DPCM_USB
#define USB_PR_FREECOM
#define USB_PR_DATAFAB
#define USB_PR_JUMPSHOT
#define USB_PR_ALAUDA
#define USB_PR_KARMA

#define USB_PR_DEVICE

/*
 * Bulk only data structures
 */

/* command block wrapper */
struct bulk_cb_wrap {};

#define US_BULK_CB_WRAP_LEN
#define US_BULK_CB_SIGN
#define US_BULK_FLAG_IN
#define US_BULK_FLAG_OUT

/* command status wrapper */
struct bulk_cs_wrap {};

#define US_BULK_CS_WRAP_LEN
#define US_BULK_CS_SIGN
#define US_BULK_STAT_OK
#define US_BULK_STAT_FAIL
#define US_BULK_STAT_PHASE

/* bulk-only class specific requests */
#define US_BULK_RESET_REQUEST
#define US_BULK_GET_MAX_LUN

#endif