1*7c478bd9Sstevel@tonic-gate /*
2*7c478bd9Sstevel@tonic-gate  * CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate  *
4*7c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate  * with the License.
8*7c478bd9Sstevel@tonic-gate  *
9*7c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate  * and limitations under the License.
13*7c478bd9Sstevel@tonic-gate  *
14*7c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate  *
20*7c478bd9Sstevel@tonic-gate  * CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate  */
22*7c478bd9Sstevel@tonic-gate /*
23*7c478bd9Sstevel@tonic-gate  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24*7c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
25*7c478bd9Sstevel@tonic-gate  */
26*7c478bd9Sstevel@tonic-gate 
27*7c478bd9Sstevel@tonic-gate #ifndef	_SYS_SCSI_GENERIC_COMMANDS_H
28*7c478bd9Sstevel@tonic-gate #define	_SYS_SCSI_GENERIC_COMMANDS_H
29*7c478bd9Sstevel@tonic-gate 
30*7c478bd9Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
31*7c478bd9Sstevel@tonic-gate 
32*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
33*7c478bd9Sstevel@tonic-gate extern "C" {
34*7c478bd9Sstevel@tonic-gate #endif
35*7c478bd9Sstevel@tonic-gate 
36*7c478bd9Sstevel@tonic-gate /*
37*7c478bd9Sstevel@tonic-gate  * Standard SCSI Command Definitions
38*7c478bd9Sstevel@tonic-gate  *
39*7c478bd9Sstevel@tonic-gate  * Macros to determine known command sizes
40*7c478bd9Sstevel@tonic-gate  */
41*7c478bd9Sstevel@tonic-gate 
42*7c478bd9Sstevel@tonic-gate #define	CDB_GROUPID(cmd)	((cmd >> 5) & 0x7)
43*7c478bd9Sstevel@tonic-gate #define	CDB_GROUPID_0	0
44*7c478bd9Sstevel@tonic-gate #define	CDB_GROUPID_1	1
45*7c478bd9Sstevel@tonic-gate #define	CDB_GROUPID_2	2
46*7c478bd9Sstevel@tonic-gate #define	CDB_GROUPID_3	3
47*7c478bd9Sstevel@tonic-gate #define	CDB_GROUPID_4	4
48*7c478bd9Sstevel@tonic-gate #define	CDB_GROUPID_5	5
49*7c478bd9Sstevel@tonic-gate #define	CDB_GROUPID_6	6
50*7c478bd9Sstevel@tonic-gate #define	CDB_GROUPID_7	7
51*7c478bd9Sstevel@tonic-gate 
52*7c478bd9Sstevel@tonic-gate #define	CDB_GROUP0	6	/*  6-byte cdb's */
53*7c478bd9Sstevel@tonic-gate #define	CDB_GROUP1	10	/* 10-byte cdb's */
54*7c478bd9Sstevel@tonic-gate #define	CDB_GROUP2	10	/* 10-byte cdb's */
55*7c478bd9Sstevel@tonic-gate #define	CDB_GROUP3	0	/* reserved */
56*7c478bd9Sstevel@tonic-gate #define	CDB_GROUP4	16	/* 16-byte cdb's */
57*7c478bd9Sstevel@tonic-gate #define	CDB_GROUP5	12	/* 12-byte cdb's */
58*7c478bd9Sstevel@tonic-gate #define	CDB_GROUP6	0	/* reserved */
59*7c478bd9Sstevel@tonic-gate #define	CDB_GROUP7	0	/* reserved */
60*7c478bd9Sstevel@tonic-gate 
61*7c478bd9Sstevel@tonic-gate /*
62*7c478bd9Sstevel@tonic-gate  * Generic Command Definitions
63*7c478bd9Sstevel@tonic-gate  */
64*7c478bd9Sstevel@tonic-gate 
65*7c478bd9Sstevel@tonic-gate /*
66*7c478bd9Sstevel@tonic-gate  * Group 0 Commands (CDB range 0x00 - 0x1F)
67*7c478bd9Sstevel@tonic-gate  */
68*7c478bd9Sstevel@tonic-gate 
69*7c478bd9Sstevel@tonic-gate #define	SCMD_GROUP0		0x00
70*7c478bd9Sstevel@tonic-gate 
71*7c478bd9Sstevel@tonic-gate /*
72*7c478bd9Sstevel@tonic-gate  * Group 0 commands, All Devices
73*7c478bd9Sstevel@tonic-gate  */
74*7c478bd9Sstevel@tonic-gate 
75*7c478bd9Sstevel@tonic-gate #define	SCMD_TEST_UNIT_READY	0x00
76*7c478bd9Sstevel@tonic-gate #define	SCMD_REQUEST_SENSE	0x03
77*7c478bd9Sstevel@tonic-gate #define	SCMD_INQUIRY		0x12
78*7c478bd9Sstevel@tonic-gate #define	SCMD_COPY		0x18
79*7c478bd9Sstevel@tonic-gate #define	SCMD_GDIAG		0x1C	/* receive diagnostic results */
80*7c478bd9Sstevel@tonic-gate #define	SCMD_SDIAG		0x1D	/* send diagnostic results */
81*7c478bd9Sstevel@tonic-gate 
82*7c478bd9Sstevel@tonic-gate /*
83*7c478bd9Sstevel@tonic-gate  * Group 0 commands, Direct Access Devices
84*7c478bd9Sstevel@tonic-gate  */
85*7c478bd9Sstevel@tonic-gate 
86*7c478bd9Sstevel@tonic-gate /*	SCMD_TEST_UNIT_READY	0x00	*/
87*7c478bd9Sstevel@tonic-gate #define	SCMD_REZERO_UNIT	0x01
88*7c478bd9Sstevel@tonic-gate /*	SCMD_REQUEST_SENSE	0x03	*/
89*7c478bd9Sstevel@tonic-gate #define	SCMD_FORMAT		0x04
90*7c478bd9Sstevel@tonic-gate #define	SCMD_REASSIGN_BLOCK	0x07
91*7c478bd9Sstevel@tonic-gate #define	SCMD_READ		0x08
92*7c478bd9Sstevel@tonic-gate #define	SCMD_WRITE		0x0a
93*7c478bd9Sstevel@tonic-gate #define	SCMD_SEEK		0x0b
94*7c478bd9Sstevel@tonic-gate /*	SCMD_INQUIRY		0x12	*/
95*7c478bd9Sstevel@tonic-gate #define	SCMD_MODE_SELECT	0x15
96*7c478bd9Sstevel@tonic-gate #define	SCMD_RESERVE		0x16
97*7c478bd9Sstevel@tonic-gate #define	SCMD_RELEASE		0x17
98*7c478bd9Sstevel@tonic-gate /*	SCMD_COPY		0x18	*/
99*7c478bd9Sstevel@tonic-gate #define	SCMD_MODE_SENSE		0x1a
100*7c478bd9Sstevel@tonic-gate #define	SCMD_START_STOP		0x1b
101*7c478bd9Sstevel@tonic-gate /*	SCMD_GDIAG		0x1C	*/
102*7c478bd9Sstevel@tonic-gate /*	SCMD_SDIAG		0x1D	*/
103*7c478bd9Sstevel@tonic-gate #define	SCMD_DOORLOCK		0x1E	/* Prevent/Allow Medium Removal */
104*7c478bd9Sstevel@tonic-gate 
105*7c478bd9Sstevel@tonic-gate /*
106*7c478bd9Sstevel@tonic-gate  * Group 0 commands, Sequential Access Devices
107*7c478bd9Sstevel@tonic-gate  */
108*7c478bd9Sstevel@tonic-gate 
109*7c478bd9Sstevel@tonic-gate /*	SCMD_TEST_UNIT_READY	0x00	*/
110*7c478bd9Sstevel@tonic-gate #define	SCMD_REWIND		0x01	/* Note similarity to SCMD_REZERO */
111*7c478bd9Sstevel@tonic-gate /*	SCMD_REQUEST_SENSE	0x03	*/
112*7c478bd9Sstevel@tonic-gate #define	SCMD_READ_BLKLIM	0x05
113*7c478bd9Sstevel@tonic-gate /*	SCMD_READ		0x08	*/
114*7c478bd9Sstevel@tonic-gate /*	SCMD_WRITE		0x0a	*/
115*7c478bd9Sstevel@tonic-gate #define	SCMD_TRK_SEL		0x0b	/* Note similarity to SCMD_SEEK */
116*7c478bd9Sstevel@tonic-gate #define	SCMD_READ_REVERSE	0x0f
117*7c478bd9Sstevel@tonic-gate #define	SCMD_WRITE_FILE_MARK	0x10
118*7c478bd9Sstevel@tonic-gate #define	SCMD_SPACE		0x11
119*7c478bd9Sstevel@tonic-gate /*	SCMD_INQUIRY		0x12	*/
120*7c478bd9Sstevel@tonic-gate #define	SCMD_VERIFY_G0		0x13
121*7c478bd9Sstevel@tonic-gate #define	SCMD_RECOVER_BUF	0x14
122*7c478bd9Sstevel@tonic-gate /*	SCMD_MODE_SELECT	0x15	*/
123*7c478bd9Sstevel@tonic-gate /*	SCMD_RESERVE		0x16	*/
124*7c478bd9Sstevel@tonic-gate /*	SCMD_RELEASE		0x17	*/
125*7c478bd9Sstevel@tonic-gate /*	SCMD_COPY		0x18	*/
126*7c478bd9Sstevel@tonic-gate #define	SCMD_ERASE		0x19
127*7c478bd9Sstevel@tonic-gate /*	SCMD_MODE_SENSE		0x1a	*/
128*7c478bd9Sstevel@tonic-gate #define	SCMD_LOAD		0x1b	/* Note similarity to SCMD_START_STOP */
129*7c478bd9Sstevel@tonic-gate /*	SCMD_GDIAG		0x1c	*/
130*7c478bd9Sstevel@tonic-gate /*	SCMD_SDIAG		0x1d	*/
131*7c478bd9Sstevel@tonic-gate /*	SCMD_DOORLOCK		0x1e	*/
132*7c478bd9Sstevel@tonic-gate 
133*7c478bd9Sstevel@tonic-gate 
134*7c478bd9Sstevel@tonic-gate /*
135*7c478bd9Sstevel@tonic-gate  * Group 0 commands, Printer Devices
136*7c478bd9Sstevel@tonic-gate  */
137*7c478bd9Sstevel@tonic-gate 
138*7c478bd9Sstevel@tonic-gate /*	SCMD_TEST_UNIT_READY	0x00	*/
139*7c478bd9Sstevel@tonic-gate /*	SCMD_REQUEST_SENSE	0x03	*/
140*7c478bd9Sstevel@tonic-gate /*	SCMD_FORMAT		0x04	*/
141*7c478bd9Sstevel@tonic-gate #define	SCMD_PRINT		0x0a	/* Note similarity to SCMD_WRITE */
142*7c478bd9Sstevel@tonic-gate #define	SCMD_SLEW_PRINT		0x0b	/* ? similar to SCMD_SEEK ? */
143*7c478bd9Sstevel@tonic-gate #define	SCMD_FLUSH_PRINT_BUF	0x10	/* ? similar to SCMD_WRITE_FILE_MARK */
144*7c478bd9Sstevel@tonic-gate /*	SCMD_INQUIRY		0x12	*/
145*7c478bd9Sstevel@tonic-gate /*	SCMD_RECOVER_BUF	0x14	*/
146*7c478bd9Sstevel@tonic-gate /*	SCMD_MODE_SELECT	0x15	*/
147*7c478bd9Sstevel@tonic-gate /*	SCMD_RESERVE		0x16	*/
148*7c478bd9Sstevel@tonic-gate /*	SCMD_RELEASE		0x17	*/
149*7c478bd9Sstevel@tonic-gate /*	SCMD_COPY		0x18	*/
150*7c478bd9Sstevel@tonic-gate /*	SCMD_MODE_SENSE		0x1a	*/
151*7c478bd9Sstevel@tonic-gate #define	SCMD_STOP_PRINT		0x1b	/* Note similarity to SCMD_START_STOP */
152*7c478bd9Sstevel@tonic-gate /*	SCMD_GDIAG		0x1c	*/
153*7c478bd9Sstevel@tonic-gate /*	SCMD_SDIAG		0x1d	*/
154*7c478bd9Sstevel@tonic-gate 
155*7c478bd9Sstevel@tonic-gate /*
156*7c478bd9Sstevel@tonic-gate  * Group 0 commands, Processor Devices
157*7c478bd9Sstevel@tonic-gate  */
158*7c478bd9Sstevel@tonic-gate /*	SCMD_TEST_UNIT_READY	0x00	*/
159*7c478bd9Sstevel@tonic-gate /*	SCMD_REQUEST_SENSE	0x03	*/
160*7c478bd9Sstevel@tonic-gate #define	SCMD_RECEIVE		0x08	/* Note similarity to SCMD_READ */
161*7c478bd9Sstevel@tonic-gate #define	SCMD_SEND		0x0a	/* Note similarity to SCMD_WRITE */
162*7c478bd9Sstevel@tonic-gate /*	SCMD_INQUIRY		0x12	*/
163*7c478bd9Sstevel@tonic-gate /*	SCMD_COPY		0x18	*/
164*7c478bd9Sstevel@tonic-gate /*	SCMD_MODE_SENSE		0x1a	*/
165*7c478bd9Sstevel@tonic-gate /*	SCMD_GDIAG		0x1c	*/
166*7c478bd9Sstevel@tonic-gate /*	SCMD_SDIAG		0x1d	*/
167*7c478bd9Sstevel@tonic-gate 
168*7c478bd9Sstevel@tonic-gate /*
169*7c478bd9Sstevel@tonic-gate  * Group 0 commands, WORM Devices
170*7c478bd9Sstevel@tonic-gate  */
171*7c478bd9Sstevel@tonic-gate 
172*7c478bd9Sstevel@tonic-gate /*	SCMD_TEST_UNIT_READY	0x00	*/
173*7c478bd9Sstevel@tonic-gate /*	SCMD_REZERO_UNIT	0x01	*/
174*7c478bd9Sstevel@tonic-gate /*	SCMD_REQUEST_SENSE	0x03	*/
175*7c478bd9Sstevel@tonic-gate /*	SCMD_REASSIGN_BLOCK	0x07	*/
176*7c478bd9Sstevel@tonic-gate /*	SCMD_READ		0x08	*/
177*7c478bd9Sstevel@tonic-gate /*	SCMD_WRITE		0x0a	*/
178*7c478bd9Sstevel@tonic-gate /*	SCMD_SEEK		0x0b	*/
179*7c478bd9Sstevel@tonic-gate /*	SCMD_INQUIRY		0x12	*/
180*7c478bd9Sstevel@tonic-gate /*	SCMD_MODE_SELECT	0x15	*/
181*7c478bd9Sstevel@tonic-gate /*	SCMD_RESERVE		0x16	*/
182*7c478bd9Sstevel@tonic-gate /*	SCMD_RELEASE		0x17	*/
183*7c478bd9Sstevel@tonic-gate /*	SCMD_COPY		0x18	*/
184*7c478bd9Sstevel@tonic-gate /*	SCMD_MODE_SENSE		0x1a	*/
185*7c478bd9Sstevel@tonic-gate /*	SCMD_START_STOP		0x1b	*/
186*7c478bd9Sstevel@tonic-gate /*	SCMD_GDIAG		0x1C	*/
187*7c478bd9Sstevel@tonic-gate /*	SCMD_SDIAG		0x1D	*/
188*7c478bd9Sstevel@tonic-gate /*	SCMD_DOORLOCK		0x1E	*/
189*7c478bd9Sstevel@tonic-gate 
190*7c478bd9Sstevel@tonic-gate /*
191*7c478bd9Sstevel@tonic-gate  * Group 0 commands, Read Only Devices
192*7c478bd9Sstevel@tonic-gate  */
193*7c478bd9Sstevel@tonic-gate 
194*7c478bd9Sstevel@tonic-gate /*	SCMD_TEST_UNIT_READY	0x00	*/
195*7c478bd9Sstevel@tonic-gate /*	SCMD_REZERO_UNIT	0x01	*/
196*7c478bd9Sstevel@tonic-gate /*	SCMD_REQUEST_SENSE	0x03	*/
197*7c478bd9Sstevel@tonic-gate /*	SCMD_REASSIGN_BLOCK	0x07	*/
198*7c478bd9Sstevel@tonic-gate /*	SCMD_READ		0x08	*/
199*7c478bd9Sstevel@tonic-gate /*	SCMD_SEEK		0x0b	*/
200*7c478bd9Sstevel@tonic-gate /*	SCMD_INQUIRY		0x12	*/
201*7c478bd9Sstevel@tonic-gate /*	SCMD_MODE_SELECT	0x15	*/
202*7c478bd9Sstevel@tonic-gate /*	SCMD_RESERVE		0x16	*/
203*7c478bd9Sstevel@tonic-gate /*	SCMD_RELEASE		0x17	*/
204*7c478bd9Sstevel@tonic-gate /*	SCMD_COPY		0x18	*/
205*7c478bd9Sstevel@tonic-gate /*	SCMD_MODE_SENSE		0x1a	*/
206*7c478bd9Sstevel@tonic-gate /*	SCMD_START_STOP		0x1b	*/
207*7c478bd9Sstevel@tonic-gate /*	SCMD_GDIAG		0x1C	*/
208*7c478bd9Sstevel@tonic-gate /*	SCMD_SDIAG		0x1D	*/
209*7c478bd9Sstevel@tonic-gate /*	SCMD_DOORLOCK		0x1E	*/
210*7c478bd9Sstevel@tonic-gate 
211*7c478bd9Sstevel@tonic-gate /*
212*7c478bd9Sstevel@tonic-gate  * Group 1 Commands (CDB range 0x20 - 0x3F)
213*7c478bd9Sstevel@tonic-gate  */
214*7c478bd9Sstevel@tonic-gate 
215*7c478bd9Sstevel@tonic-gate #define	SCMD_GROUP1		0x20
216*7c478bd9Sstevel@tonic-gate 
217*7c478bd9Sstevel@tonic-gate /*
218*7c478bd9Sstevel@tonic-gate  * Group 1 Commands, All Devices
219*7c478bd9Sstevel@tonic-gate  */
220*7c478bd9Sstevel@tonic-gate 
221*7c478bd9Sstevel@tonic-gate #define	SCMD_COMPARE		0x39
222*7c478bd9Sstevel@tonic-gate #define	SCMD_COPY_VERIFY	0x3A
223*7c478bd9Sstevel@tonic-gate #define	SCMD_PRIN		0x5E
224*7c478bd9Sstevel@tonic-gate #define	SCMD_PROUT		0x5F
225*7c478bd9Sstevel@tonic-gate 
226*7c478bd9Sstevel@tonic-gate /*
227*7c478bd9Sstevel@tonic-gate  * Group 1 Commands, Direct Access Devices
228*7c478bd9Sstevel@tonic-gate  */
229*7c478bd9Sstevel@tonic-gate 
230*7c478bd9Sstevel@tonic-gate #define	SCMD_READ_FORMAT_CAP	0x23
231*7c478bd9Sstevel@tonic-gate #define	SCMD_READ_CAPACITY	0x25
232*7c478bd9Sstevel@tonic-gate #define	SCMD_READ_G1		0x28	/* Note that only the group changed */
233*7c478bd9Sstevel@tonic-gate #define	SCMD_WRITE_G1		0x2a	/* Note that only the group changed */
234*7c478bd9Sstevel@tonic-gate #define	SCMD_SEEK_G1		0x2b	/* Note that only the group changed */
235*7c478bd9Sstevel@tonic-gate #define	SCMD_WRITE_VERIFY	0x2e
236*7c478bd9Sstevel@tonic-gate #define	SCMD_VERIFY		0x2f
237*7c478bd9Sstevel@tonic-gate #define	SCMD_SEARCH_HIGH	0x30
238*7c478bd9Sstevel@tonic-gate #define	SCMD_SEARCH_EQUAL	0x31
239*7c478bd9Sstevel@tonic-gate #define	SCMD_SEARCH_LOW		0x32
240*7c478bd9Sstevel@tonic-gate #define	SCMD_SET_LIMITS		0x33
241*7c478bd9Sstevel@tonic-gate #define	SCMD_READ_DEFECT_LIST	0x37
242*7c478bd9Sstevel@tonic-gate #define	SCMD_WRITE_BUFFER	0x3B
243*7c478bd9Sstevel@tonic-gate #define	SCMD_READ_BUFFER	0x3c
244*7c478bd9Sstevel@tonic-gate #define	SCMD_READ_LONG		0x3E
245*7c478bd9Sstevel@tonic-gate #define	SCMD_WRITE_LONG		0x3F
246*7c478bd9Sstevel@tonic-gate #define	SCMD_RESERVE_G1		0x56
247*7c478bd9Sstevel@tonic-gate #define	SCMD_RELEASE_G1		0x57
248*7c478bd9Sstevel@tonic-gate #define	SCMD_MODE_SELECT_G1	0x55
249*7c478bd9Sstevel@tonic-gate #define	SCMD_MODE_SENSE_G1	0x5A
250*7c478bd9Sstevel@tonic-gate #define	SCMD_GET_CONFIGURATION	0x46
251*7c478bd9Sstevel@tonic-gate #define	SCMD_LOG_SELECT_G1	0x4C
252*7c478bd9Sstevel@tonic-gate #define	SCMD_LOG_SENSE_G1	0x4d
253*7c478bd9Sstevel@tonic-gate 
254*7c478bd9Sstevel@tonic-gate 
255*7c478bd9Sstevel@tonic-gate /*
256*7c478bd9Sstevel@tonic-gate  * The following have been included for the ATAPI devices
257*7c478bd9Sstevel@tonic-gate  */
258*7c478bd9Sstevel@tonic-gate #define	ATAPI_SET_CD_SPEED	0xBB
259*7c478bd9Sstevel@tonic-gate #define	ATAPI_CAPABILITIES	0x2A
260*7c478bd9Sstevel@tonic-gate 
261*7c478bd9Sstevel@tonic-gate /*
262*7c478bd9Sstevel@tonic-gate  * Group 1 Commands, Sequential Access Devices
263*7c478bd9Sstevel@tonic-gate  */
264*7c478bd9Sstevel@tonic-gate 
265*7c478bd9Sstevel@tonic-gate #define	SCMD_LOCATE		0x2B	/* Note similarity to SCMD_SEEK_G1 */
266*7c478bd9Sstevel@tonic-gate #define	SCMD_READ_POSITION	0x34
267*7c478bd9Sstevel@tonic-gate #define	SCMD_REPORT_DENSITIES	0x44
268*7c478bd9Sstevel@tonic-gate 
269*7c478bd9Sstevel@tonic-gate 
270*7c478bd9Sstevel@tonic-gate /*
271*7c478bd9Sstevel@tonic-gate  * Group 1 Commands, Printer Devices
272*7c478bd9Sstevel@tonic-gate  */
273*7c478bd9Sstevel@tonic-gate 
274*7c478bd9Sstevel@tonic-gate /* (None Defined) */
275*7c478bd9Sstevel@tonic-gate 
276*7c478bd9Sstevel@tonic-gate /*
277*7c478bd9Sstevel@tonic-gate  * Group 1 Commands, Processor Devices
278*7c478bd9Sstevel@tonic-gate  */
279*7c478bd9Sstevel@tonic-gate 
280*7c478bd9Sstevel@tonic-gate /* (None Defined) */
281*7c478bd9Sstevel@tonic-gate 
282*7c478bd9Sstevel@tonic-gate /*
283*7c478bd9Sstevel@tonic-gate  * Group 1 Commands, WORM Devices
284*7c478bd9Sstevel@tonic-gate  */
285*7c478bd9Sstevel@tonic-gate 
286*7c478bd9Sstevel@tonic-gate /*	SCMD_READ_CAPACITY	0x25	*/
287*7c478bd9Sstevel@tonic-gate /*	SCMD_READ_G1		0x28	*/
288*7c478bd9Sstevel@tonic-gate /*	SCMD_WRITE_G1		0x2a	*/
289*7c478bd9Sstevel@tonic-gate /*	SCMD_SEEK_G1		0x2b	*/
290*7c478bd9Sstevel@tonic-gate /*	SCMD_WRITE_VERIFY	0x2e	*/
291*7c478bd9Sstevel@tonic-gate /*	SCMD_VERIFY		0x2f	*/
292*7c478bd9Sstevel@tonic-gate /*	SCMD_SEARCH_HIGH	0x30	*/
293*7c478bd9Sstevel@tonic-gate /*	SCMD_SEARCH_EQUAL	0x31	*/
294*7c478bd9Sstevel@tonic-gate /*	SCMD_SEARCH_LOW		0x32	*/
295*7c478bd9Sstevel@tonic-gate /*	SCMD_SET_LIMITS		0x33	*/
296*7c478bd9Sstevel@tonic-gate 
297*7c478bd9Sstevel@tonic-gate /*
298*7c478bd9Sstevel@tonic-gate  * Group 1 Commands, Read Only Devices
299*7c478bd9Sstevel@tonic-gate  */
300*7c478bd9Sstevel@tonic-gate 
301*7c478bd9Sstevel@tonic-gate /*	SCMD_READ_CAPACITY	0x25	*/
302*7c478bd9Sstevel@tonic-gate /*	SCMD_READ_G1		0x28	*/
303*7c478bd9Sstevel@tonic-gate /*	SCMD_SEEK_G1		0x2b	*/
304*7c478bd9Sstevel@tonic-gate /*	SCMD_VERIFY		0x2f	*/
305*7c478bd9Sstevel@tonic-gate /*	SCMD_SEARCH_HIGH	0x30	*/
306*7c478bd9Sstevel@tonic-gate /*	SCMD_SEARCH_EQUAL	0x31	*/
307*7c478bd9Sstevel@tonic-gate /*	SCMD_SEARCH_LOW		0x32	*/
308*7c478bd9Sstevel@tonic-gate /*	SCMD_SET_LIMITS		0x33	*/
309*7c478bd9Sstevel@tonic-gate 
310*7c478bd9Sstevel@tonic-gate /*
311*7c478bd9Sstevel@tonic-gate  * Group 4 Commands, All Devices
312*7c478bd9Sstevel@tonic-gate  */
313*7c478bd9Sstevel@tonic-gate #define	SCMD_GROUP4		0x80
314*7c478bd9Sstevel@tonic-gate #define	SCMD_EXTENDED_COPY	0x83
315*7c478bd9Sstevel@tonic-gate 
316*7c478bd9Sstevel@tonic-gate /*
317*7c478bd9Sstevel@tonic-gate  * Group 4 Commands, Direct Access Devices
318*7c478bd9Sstevel@tonic-gate  */
319*7c478bd9Sstevel@tonic-gate #define	SCMD_READ_G4		0x88
320*7c478bd9Sstevel@tonic-gate #define	SCMD_WRITE_G4		0x8a
321*7c478bd9Sstevel@tonic-gate #define	SCMD_SVC_ACTION_IN_G4	0x9e
322*7c478bd9Sstevel@tonic-gate #define	SCMD_SVC_ACTION_OUT_G4	0x9f
323*7c478bd9Sstevel@tonic-gate 
324*7c478bd9Sstevel@tonic-gate /*
325*7c478bd9Sstevel@tonic-gate  * Group 4 Service Actions for Service Action In (16)
326*7c478bd9Sstevel@tonic-gate  */
327*7c478bd9Sstevel@tonic-gate #define	SSVC_ACTION_READ_CAPACITY_G4	0x10
328*7c478bd9Sstevel@tonic-gate #define	SSVC_ACTION_READ_LONG_G4	0x11
329*7c478bd9Sstevel@tonic-gate 
330*7c478bd9Sstevel@tonic-gate /*
331*7c478bd9Sstevel@tonic-gate  * Group 4 Service Actions for Service Action Out (16)
332*7c478bd9Sstevel@tonic-gate  */
333*7c478bd9Sstevel@tonic-gate #define	SSVC_ACTION_WRITE_LONG_G4	0x11
334*7c478bd9Sstevel@tonic-gate 
335*7c478bd9Sstevel@tonic-gate /*
336*7c478bd9Sstevel@tonic-gate  * Define for Group 5 command.
337*7c478bd9Sstevel@tonic-gate  */
338*7c478bd9Sstevel@tonic-gate #define	SCMD_GROUP5		0xA0
339*7c478bd9Sstevel@tonic-gate #define	SCMD_READ_G5		0xA8
340*7c478bd9Sstevel@tonic-gate #define	SCMD_WRITE_G5		0xAA
341*7c478bd9Sstevel@tonic-gate #define	SCMD_GET_PERFORMANCE	0xAC
342*7c478bd9Sstevel@tonic-gate #define	SCMD_REPORT_LUNS	0xA0
343*7c478bd9Sstevel@tonic-gate 
344*7c478bd9Sstevel@tonic-gate 
345*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
346*7c478bd9Sstevel@tonic-gate }
347*7c478bd9Sstevel@tonic-gate #endif
348*7c478bd9Sstevel@tonic-gate 
349*7c478bd9Sstevel@tonic-gate 
350*7c478bd9Sstevel@tonic-gate /*
351*7c478bd9Sstevel@tonic-gate  * Below are inclusions of files describing various command structures
352*7c478bd9Sstevel@tonic-gate  * of interest.
353*7c478bd9Sstevel@tonic-gate  */
354*7c478bd9Sstevel@tonic-gate 
355*7c478bd9Sstevel@tonic-gate #include <sys/scsi/generic/inquiry.h>
356*7c478bd9Sstevel@tonic-gate #include <sys/scsi/generic/sense.h>
357*7c478bd9Sstevel@tonic-gate 
358*7c478bd9Sstevel@tonic-gate /*
359*7c478bd9Sstevel@tonic-gate  * Private Vendor Unique Commands - Each implementation provides this.
360*7c478bd9Sstevel@tonic-gate  */
361*7c478bd9Sstevel@tonic-gate 
362*7c478bd9Sstevel@tonic-gate #include <sys/scsi/impl/commands.h>
363*7c478bd9Sstevel@tonic-gate 
364*7c478bd9Sstevel@tonic-gate #endif	/* _SYS_SCSI_GENERIC_COMMANDS_H */
365