aboutsummaryrefslogtreecommitdiff
path: root/include/linux/usb/storage.h
blob: 5e4a0921a3968e0c0afa5ede833b6a0f3f370c99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#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
 *
 * Distributed under the terms of the GNU GPL, version two.
 */


#define USB_SC_RBC	0x01		
#define USB_SC_8020	0x02		
#define USB_SC_QIC	0x03		
#define USB_SC_UFI	0x04		
#define USB_SC_8070	0x05		
#define USB_SC_SCSI	0x06		
#define USB_SC_LOCKABLE	0x07		

#define USB_SC_ISD200	0xf0		
#define USB_SC_CYP_ATACB	0xf1	
#define USB_SC_DEVICE	0xff		


#define USB_PR_CBI	0x00		
#define USB_PR_CB	0x01		
#define USB_PR_BULK	0x50		
#define USB_PR_UAS	0x62		

#define USB_PR_USBAT	0x80		
#define USB_PR_EUSB_SDDR09	0x81	
#define USB_PR_SDDR55	0x82		
#define USB_PR_DPCM_USB	0xf0		
#define USB_PR_FREECOM	0xf1		
#define USB_PR_DATAFAB	0xf2		
#define USB_PR_JUMPSHOT	0xf3		
#define USB_PR_ALAUDA	0xf4		
#define USB_PR_KARMA	0xf5		

#define USB_PR_DEVICE	0xff		


struct bulk_cb_wrap {
	__le32	Signature;		
	__u32	Tag;			
	__le32	DataTransferLength;	
	__u8	Flags;			
	__u8	Lun;			
	__u8	Length;			
	__u8	CDB[16];		
};

#define US_BULK_CB_WRAP_LEN	31
#define US_BULK_CB_SIGN		0x43425355	
#define US_BULK_FLAG_IN		(1 << 7)
#define US_BULK_FLAG_OUT	0

struct bulk_cs_wrap {
	__le32	Signature;	
	__u32	Tag;		
	__le32	Residue;	
	__u8	Status;		
};

#define US_BULK_CS_WRAP_LEN	13
#define US_BULK_CS_SIGN		0x53425355      
#define US_BULK_STAT_OK		0
#define US_BULK_STAT_FAIL	1
#define US_BULK_STAT_PHASE	2

#define US_BULK_RESET_REQUEST   0xff
#define US_BULK_GET_MAX_LUN     0xfe

#endif