Chameleon

Chameleon Svn Source Tree

Root/branches/Chimera/i386/include/IOKit/scsi/SCSICommandOperationCodes.h

1/*
2 * Copyright (c) 2001-2009 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24#ifndef _SCSI_COMMAND_OPERATION_CODES_H_
25#define _SCSI_COMMAND_OPERATION_CODES_H_
26
27#pragma mark About this file
28/* This file contains the operation code definitions for all commands defined
29 * by the SCSI specifications. The commands are listed in three formats:
30 * 1) All commands are listed in alphabetical order. This list is the live
31 * enumeration for all of the command constants.
32 * 2) The commands are listed in ascending numerical order.
33 * 3) The commands are grouped by Peripheral Device Type.
34 *
35 * In the command listings by Peripheral Device Type, there will be a comment
36 * following each command. This comment indentifies the section of the related
37 * specification where the commands is defined and the requirement type of the
38 * command, Mandatory or Optional.
39 * If a specification redefines an optional command from SPC as mandatory,
40 * the command will be relisted in the Peripheral Device Type command list with
41 * the mandatory tag next to it.
42 * All commands that are listed in SPC as Device Type Specifc will be relisted
43 * as a comment in all specifications lists that support that command with the
44 * appropriate Mandatory or Optional tag for that specification.
45 *
46 * The section number and the requirement type of the command are based on the
47 * version of the specification listed in the header comment for the Peripheral
48 * Device Type. This data is provided for informational purposes only. The
49 * specification document and version that the device adheres to as indicated
50 * by the data returned in response to the INQUIRY command should be used as
51 * the authorative source for supported and required behavior of the device.
52 *
53 * The SPC set is listed before all other Peripheral Device Type commands as
54 * this is the base document from which all of the other documents are derived.
55 *
56 * The Peripheral Device Types and associated command sets as defined by SPC-2,
57 * section 7.4.1 are as follows:
58 * Peripheral Device Type Associated Command Specification
59 * ------------------------------------ -----------------------------------
60 * 0x00 Direct Access Device SBC - SCSI-3 Block Commands
61 * 0x01 Sequential Access Device SSC - SCSI-3 Stream Commands
62 * 0x02 Printer Device SSC - SCSI-3 Stream Commands
63 * 0x03 Processor Device SPC - SCSI Primary Commands-2
64 * 0x04 Write Once Device SBC - SCSI-3 Block Commands
65 * 0x05 CD-ROM Device MMC - SCSI Multimedia Commands-2
66 * 0x06 Scanner Device SGC - SCSI-3 Graphics Commands
67 * 0x07 Optical Memory Device SBC - SCSI-3 Block Commands
68 * 0x08 Medium Changer Device SMC - SCSI-3 Medium Changer Cmds
69 * 0x09 Communications Device SSC - SCSI-3 Stream Commands
70 * 0x0A - 0x0B Graphic Arts Prepress Dev ASC IT8
71 * 0x0C Storage Array Controller Device SCC-2 - SCSI Controller Commands-2
72 * 0x0D Enclosure Services SES - SCSI-3 Enclosure Services
73 * 0x0E Simplified Direct Access Device RBC - SCSI Reduced Block Commands
74 * 0x0F Optical Card Reader/Writer Device OCRW - SCSI Specification for
75 * Optical Card Reader/Writer
76 * 0x10 Reserved No command specification
77 *0x11 Object-Based Storage DeviceOSD - SCSI Object Based Storage
78 *Device Commands
79 * 0x12 - 0x14 Reserved No command specification
80 * 0x15 Multimedia Media Access Engine RMC - Reduced Multimedia Commands
81 * 0x16 - 0x1E Reserved No command specification
82 * 0x1F Unknown or No Device No command specification
83 */
84
85#pragma mark -
86#pragma mark Command Definitions by Name
87/* All SCSI Commands listed in alphabetical order. These are the live
88 * definitions of the commands. All other command lists are informative.
89 */
90enum
91{
92 kSCSICmd_ACCESS_CONTROL_IN = 0x86,
93 kSCSICmd_ACCESS_CONTROL_OUT = 0x87,
94 kSCSICmd_BLANK = 0xA1,
95 kSCSICmd_CHANGE_DEFINITION = 0x40,
96 kSCSICmd_CLOSE_TRACK_SESSION = 0x5B,
97 kSCSICmd_COMPARE = 0x39,
98 kSCSICmd_COPY = 0x18,
99 kSCSICmd_COPY_AND_VERIFY = 0x3A,
100 kSCSICmd_ERASE_10= 0x2C,
101 kSCSICmd_ERASE_12= 0xAC,
102 kSCSICmd_EXTENDED_COPY = 0x83,
103 kSCSICmd_FORMAT_UNIT = 0x04,
104 kSCSICmd_GET_CONFIGURATION = 0x46,
105 kSCSICmd_GET_EVENT_STATUS_NOTIFICATION = 0x4A,
106 kSCSICmd_GET_PERFORMANCE = 0xAC,
107 kSCSICmd_INQUIRY = 0x12,
108 kSCSICmd_LOAD_UNLOAD_MEDIUM = 0xA6,
109 kSCSICmd_LOCK_UNLOCK_CACHE = 0x36,
110 kSCSICmd_LOCK_UNLOCK_CACHE_16 = 0x92,
111 kSCSICmd_LOG_SELECT = 0x4C,
112 kSCSICmd_LOG_SENSE = 0x4D,
113 kSCSICmd_MAINTENANCE_IN = 0xA3,
114 kSCSICmd_MAINTENANCE_OUT = 0xA4,
115 kSCSICmd_MECHANISM_STATUS = 0xBD,
116 kSCSICmd_MEDIUM_SCAN = 0x38,
117 kSCSICmd_MODE_SELECT_6 = 0x15,
118 kSCSICmd_MODE_SELECT_10 = 0x55,
119 kSCSICmd_MODE_SENSE_6 = 0x1A,
120 kSCSICmd_MODE_SENSE_10 = 0x5A,
121 kSCSICmd_MOVE_MEDIUM_ATTACHED = 0xA7,
122 kSCSICmd_PAUSE_RESUME = 0x4B,
123 kSCSICmd_PERSISTENT_RESERVE_IN = 0x5E,
124 kSCSICmd_PERSISTENT_RESERVE_OUT = 0x5F,
125 kSCSICmd_PLAY_AUDIO_10 = 0x45,
126 kSCSICmd_PLAY_AUDIO_12 = 0xA5,
127 kSCSICmd_PLAY_AUDIO_MSF = 0x47,
128 kSCSICmd_PLAY_AUDIO_TRACK_INDEX = 0x48,
129 kSCSICmd_PLAY_CD = 0xBC,
130 kSCSICmd_PLAY_RELATIVE_10 = 0x49,
131 kSCSICmd_PLAY_RELATIVE_12 = 0xA9,
132 kSCSICmd_PREFETCH = 0x34,
133 kSCSICmd_PREFETCH_16 = 0x90,
134 kSCSICmd_PREVENT_ALLOW_MEDIUM_REMOVAL = 0x1E,
135 kSCSICmd_READ_6 = 0x08,
136 kSCSICmd_READ_10 = 0x28,
137 kSCSICmd_READ_12 = 0xA8,
138 kSCSICmd_READ_16 = 0x88,
139 kSCSICmd_READ_ATTRIBUTE = 0x8C,
140 kSCSICmd_READ_BUFFER = 0x3C,
141 kSCSICmd_READ_BUFFER_CAPACITY = 0x5C,
142 kSCSICmd_READ_CAPACITY = 0x25,
143 kSCSICmd_READ_CD = 0xBE,
144 kSCSICmd_READ_CD_MSF = 0xB9,
145 kSCSICmd_READ_DEFECT_DATA_10 = 0x37,
146 kSCSICmd_READ_DEFECT_DATA_12 = 0xB7,
147 kSCSICmd_READ_DISC_INFORMATION = 0x51,
148 kSCSICmd_READ_DVD_STRUCTURE = 0xAD,
149 kSCSICmd_READ_DISC_STRUCTURE = 0xAD,
150 kSCSICmd_READ_ELEMENT_STATUS_ATTACHED = 0xB4,
151 kSCSICmd_READ_FORMAT_CAPACITIES = 0x23,
152 kSCSICmd_READ_GENERATION= 0x29,
153 kSCSICmd_READ_HEADER = 0x44,
154 kSCSICmd_READ_LONG = 0x3E,
155 kSCSICmd_READ_MASTER_CUE = 0x59,
156 kSCSICmd_READ_SUB_CHANNEL = 0x42,
157 kSCSICmd_READ_TOC_PMA_ATIP = 0x43,
158 kSCSICmd_READ_TRACK_INFORMATION = 0x52,
159 kSCSICmd_READ_UPDATED_BLOCK_10= 0x2D,
160 kSCSICmd_REASSIGN_BLOCKS = 0x07,
161 kSCSICmd_REBUILD = 0x81,
162 kSCSICmd_RECEIVE = 0x08,
163 kSCSICmd_RECEIVE_COPY_RESULTS = 0x84,
164 kSCSICmd_RECEIVE_DIAGNOSTICS_RESULTS = 0x1C,
165 kSCSICmd_REDUNDANCY_GROUP_IN= 0xBA,
166 kSCSICmd_REDUNDANCY_GROUP_OUT= 0xBB,
167 kSCSICmd_REGENERATE = 0x82,
168 kSCSICmd_RELEASE_6 = 0x17,
169 kSCSICmd_RELEASE_10 = 0x57,
170 kSCSICmd_REPAIR_TRACK = 0x58,
171 kSCSICmd_REPORT_DEVICE_IDENTIFIER = 0xA3,
172 kSCSICmd_REPORT_KEY = 0xA4,
173 kSCSICmd_REPORT_LUNS = 0xA0,
174 kSCSICmd_REQUEST_SENSE = 0x03,
175 kSCSICmd_RESERVE_6 = 0x16,
176 kSCSICmd_RESERVE_10 = 0x56,
177 kSCSICmd_RESERVE_TRACK = 0x53,
178 kSCSICmd_REZERO_UNIT = 0x01,
179 kSCSICmd_SCAN_MMC = 0xBA,
180 kSCSICmd_SEARCH_DATA_EQUAL_10 = 0x31,
181 kSCSICmd_SEARCH_DATA_EQUAL_12 = 0xB1,
182 kSCSICmd_SEARCH_DATA_HIGH_10 = 0x30,
183 kSCSICmd_SEARCH_DATA_HIGH_12 = 0xB0,
184 kSCSICmd_SEARCH_DATA_LOW_10 = 0x32,
185 kSCSICmd_SEARCH_DATA_LOW_12 = 0xB2,
186 kSCSICmd_SEEK_6 = 0x0B,
187 kSCSICmd_SEEK_10 = 0x2B,
188 kSCSICmd_SEND = 0x0A,
189 kSCSICmd_SEND_CUE_SHEET = 0x5D,
190 kSCSICmd_SEND_DIAGNOSTICS = 0x1D,
191 kSCSICmd_SEND_DVD_STRUCTURE = 0xBF,
192 kSCSICmd_SEND_EVENT = 0xA2,
193 kSCSICmd_SEND_KEY = 0xA3,
194 kSCSICmd_SEND_OPC_INFORMATION = 0x54,
195 kSCSICmd_SERVICE_ACTION_IN = 0x9E,
196 kSCSICmd_SERVICE_ACTION_OUT = 0x9F,
197 kSCSICmd_SET_CD_SPEED = 0xBB,
198 kSCSICmd_SET_DEVICE_IDENTIFIER = 0xA4,
199 kSCSICmd_SET_LIMITS_10 = 0x33,
200 kSCSICmd_SET_LIMITS_12 = 0xB3,
201 kSCSICmd_SET_READ_AHEAD = 0xA7,
202 kSCSICmd_SET_STREAMING = 0xB6,
203 kSCSICmd_SPARE_IN = 0xBC,
204 kSCSICmd_SPARE_OUT = 0xBD,
205 kSCSICmd_START_STOP_UNIT = 0x1B,
206 kSCSICmd_STOP_PLAY_SCAN = 0x4E,
207 kSCSICmd_SYNCHRONIZE_CACHE = 0x35,
208 kSCSICmd_SYNCHRONIZE_CACHE_16 = 0x91,
209 kSCSICmd_TEST_UNIT_READY = 0x00,
210kSCSICmd_UPDATE_BLOCK= 0x3D,
211 kSCSICmd_VERIFY_10 = 0x2F,
212 kSCSICmd_VERIFY_12 = 0xAF,
213 kSCSICmd_VERIFY_16 = 0x8F,
214 kSCSICmd_VOLUME_SET_IN = 0xBE,
215 kSCSICmd_VOLUME_SET_OUT = 0xBF,
216 kSCSICmd_WRITE_6 = 0x0A,
217 kSCSICmd_WRITE_10 = 0x2A,
218 kSCSICmd_WRITE_12 = 0xAA,
219 kSCSICmd_WRITE_16 = 0x8A,
220 kSCSICmd_WRITE_AND_VERIFY_10 = 0x2E,
221kSCSICmd_WRITE_AND_VERIFY_12 = 0xAE,
222kSCSICmd_WRITE_AND_VERIFY_16 = 0x8E,
223kSCSICmd_WRITE_ATTRIBUTE = 0x8D,
224 kSCSICmd_WRITE_BUFFER = 0x3B,
225 kSCSICmd_WRITE_LONG = 0x3F,
226 kSCSICmd_WRITE_SAME = 0x41,
227 kSCSICmd_WRITE_SAME_16 = 0x93,
228 kSCSICmd_XDREAD = 0x52,
229 kSCSICmd_XDWRITE = 0x50,
230 kSCSICmd_XDWRITE_EXTENDED = 0x80,
231 kSCSICmd_XDWRITEREAD_10 = 0x53,
232 kSCSICmd_XPWRITE = 0x51,
233
234 kSCSICmdVariableLengthCDB= 0x7F
235};
236
237/* Service Action Definitions for the Variable Length CDB (7Fh) command */
238enum
239{
240kSCSIServiceAction_READ_32= 0x0009,
241kSCSIServiceAction_VERIFY_32= 0x000A,
242kSCSIServiceAction_WRITE_32= 0x000B,
243kSCSIServiceAction_WRITE_AND_VERIFY_32= 0x000C,
244kSCSIServiceAction_WRITE_SAME_32= 0x000D,
245kSCSIServiceAction_XDREAD_32= 0x0003,
246kSCSIServiceAction_XDWRITE_32= 0x0004,
247kSCSIServiceAction_XDWRITEREAD_32= 0x0007,
248kSCSIServiceAction_XPWRITE_32= 0x0006
249};
250
251/* Service Action Definitions for the MAINTENANCE IN (A3h) command */
252enum
253{
254kSCSIServiceAction_REPORT_ALIASES= 0x0B,
255kSCSIServiceAction_REPORT_DEVICE_IDENTIFIER= 0x05,
256kSCSIServiceAction_REPORT_PRIORITY= 0x0E,
257kSCSIServiceAction_REPORT_SUPPORTED_OPERATION_CODES= 0x0C,
258kSCSIServiceAction_REPORT_SUPPORTED_TASK_MANAGEMENT_FUNCTIONS= 0x0D,
259kSCSIServiceAction_REPORT_TARGET_PORT_GROUPS= 0x0A
260};
261
262/* Service Action Definitions for the MAINTENANCE OUT (A4h) command */
263enum
264{
265kSCSIServiceAction_CHANGE_ALIASES= 0x0B,
266kSCSIServiceAction_SET_DEVICE_IDENTIFIER= 0x06,
267kSCSIServiceAction_SET_PRIORITY= 0x0E,
268kSCSIServiceAction_SET_TARGET_PORT_GROUPS= 0x0A
269};
270
271/* Service Action Definitions for the SERVICE ACTION IN (9Eh) command */
272enum
273{
274kSCSIServiceAction_READ_CAPACITY_16= 0x10,
275kSCSIServiceAction_READ_LONG_16= 0x11
276};
277
278/* Service Action Definitions for the SERVICE ACTION OUT (9Fh) command */
279enum
280{
281kSCSIServiceAction_WRITE_LONG_16= 0x11
282};
283
284#pragma mark -
285#pragma mark Command Definitions by Number
286#if 0
287enum
288{
289};
290#endif
291
292
293#pragma mark -
294#pragma mark All Types SPC Commands
295/* Commands defined by the T10:1236-D SCSI Primary Commands-2 (SPC-2)
296 * command specification. The definitions and section numbers are based on
297 * section 7 of the revision 18, 21 May 2000 version of the specification.
298 *
299 * These commands are defined for all devices.
300 */
301#if 0
302enum
303{
304 kSCSICmd_CHANGE_DEFINITION = 0x40, /* Obsolete */
305 kSCSICmd_COMPARE = 0x39, /* Sec. 7.2: Optional */
306 kSCSICmd_COPY = 0x18, /* Sec. 7.3: Optional */
307 kSCSICmd_COPY_AND_VERIFY = 0x3A, /* Sec. 7.4: Optional */
308 kSCSICmd_EXTENDED_COPY = 0x83, /* Sec. 7.5: Optional */
309 kSCSICmd_INQUIRY = 0x12, /* Sec. 7.6: Mandatory */
310 kSCSICmd_LOG_SELECT = 0x4C, /* Sec. 7.7: Optional */
311 kSCSICmd_LOG_SENSE = 0x4D, /* Sec. 7.8: Optional */
312 kSCSICmd_MODE_SELECT_6 = 0x15, /* Sec. 7.9: Device Type
313 * Specific */
314 kSCSICmd_MODE_SELECT_10 = 0x55, /* Sec. 7.10: Device Type
315 * Specific */
316 kSCSICmd_MODE_SENSE_6 = 0x1A, /* Sec. 7.11: Device Type
317 * Specific */
318 kSCSICmd_MODE_SENSE_10 = 0x5A, /* Sec. 7.12: Device Type
319 * Specific */
320 kSCSICmd_MOVE_MEDIUM_ATTACHED = 0xA7, /* Defined in SMC */
321 kSCSICmd_PERSISTENT_RESERVE_IN = 0x5E, /* Sec. 7.13: Device Type
322 * Specific */
323 kSCSICmd_PERSISTENT_RESERVE_OUT = 0x5F, /* Sec. 7.14: Device Type
324 * Specific */
325 kSCSICmd_PREVENT_ALLOW_MEDIUM_REMOVAL = 0x1E, /* Sec. 7.15: Device Type
326 * Specific */
327 kSCSICmd_READ_BUFFER = 0x3C, /* Sec. 7.16: Optional */
328 kSCSICmd_READ_ELEMENT_STATUS_ATTACHED = 0xB4, /* Defined in SMC */
329 kSCSICmd_RECEIVE_COPY_RESULTS = 0x84, /* Sec. 7.17: Optional */
330 kSCSICmd_RECEIVE_DIAGNOSTICS_RESULTS = 0x1C, /* Sec. 7.18: Optional */
331 kSCSICmd_RELEASE_10 = 0x57, /* Sec. 7.19: Device Type
332 * Specific */
333 kSCSICmd_RELEASE_6 = 0x17, /* Sec. 7.20: Device Type
334 * Specific */
335 kSCSICmd_REPORT_DEVICE_IDENTIFIER = 0xA3, /* Sec. 7.21: Optional */
336 kSCSICmd_REPORT_LUNS = 0xA0, /* Sec. 7.22: Mandatory for
337 * LUN Supporting devices*/
338 kSCSICmd_REQUEST_SENSE = 0x03, /* Sec. 7.23: Device Type
339 * Specific */
340 kSCSICmd_RESERVE_10 = 0x56, /* Sec. 7.24: Device Type
341 * Specific */
342 kSCSICmd_RESERVE_6 = 0x16, /* Sec. 7.25: Device Type
343 * Specific */
344 kSCSICmd_SEND_DIAGNOSTICS = 0x1D, /* Sec. 7.26: Optional */
345 kSCSICmd_SET_DEVICE_IDENTIFIER = 0xA4, /* Sec. 7.27: Optional */
346 kSCSICmd_TEST_UNIT_READY = 0x00, /* Sec. 7.28: Mandatory */
347 kSCSICmd_WRITE_BUFFER = 0x3B /* Sec. 7.29: Optional */
348};
349#endif
350
351#pragma mark -
352#pragma mark 0x00 SBC Direct Access Commands
353/* Commands defined by the T10:990-D SCSI-3 Block Commands (SBC) command
354 * specification. The definitions and section numbers are based on section 6.1
355 * of the revision 8c, 13 November 1997 version of the specification.
356 */
357#if 0
358enum
359{
360 kSCSICmd_CHANGE_DEFINITION = 0x40, /* Obsolete */
361 kSCSICmd_COMPARE = 0x39, /* SPC: Optional */
362 kSCSICmd_COPY = 0x18, /* SPC: Optional */
363 kSCSICmd_COPY_AND_VERIFY = 0x3A, /* SPC: Optional*/
364 kSCSICmd_FORMAT_UNIT = 0x04, /* Sec. 6.1.1: Mandatory */
365 kSCSICmd_INQUIRY = 0x12, /* SPC: Mandatory */
366 kSCSICmd_LOCK_UNLOCK_CACHE = 0x36, /* Sec. 6.1.2: Optional */
367 kSCSICmd_LOG_SELECT = 0x4C, /* SPC: Optional */
368 kSCSICmd_LOG_SENSE = 0x4D, /* SPC: Optional */
369 kSCSICmd_MODE_SELECT_6 = 0x15, /* SPC: Optional */
370 kSCSICmd_MODE_SELECT_10 = 0x55, /* SPC: Optional */
371 kSCSICmd_MODE_SENSE_6 = 0x1A, /* SPC: Optional */
372 kSCSICmd_MODE_SENSE_10 = 0x5A, /* SPC: Optional */
373 kSCSICmd_MOVE_MEDIUM_ATTACHED = 0xA7, /* SMC: Optional */
374 kSCSICmd_PERSISTENT_RESERVE_IN = 0x5E, /* SPC: Optional */
375 kSCSICmd_PERSISTENT_RESERVE_OUT = 0x5F, /* SPC: Optional */
376 kSCSICmd_PREFETCH = 0x34, /* Sec. 6.1.3: Optional */
377 kSCSICmd_PREVENT_ALLOW_MEDIUM_REMOVAL = 0x1E, /* SPC: Optional */
378 kSCSICmd_READ_6 = 0x08, /* Sec. 6.1.4: Mandatory */
379 kSCSICmd_READ_10 = 0x28, /* Sec. 6.1.5: Mandatory */
380 kSCSICmd_READ_12 = 0xA8, /* Sec. 6.2.4: Optional */
381 kSCSICmd_READ_BUFFER = 0x3C, /* SPC: Optional */
382 kSCSICmd_READ_CAPACITY = 0x25, /* Sec. 6.1.6: Mandatory */
383 kSCSICmd_READ_DEFECT_DATA_10 = 0x37, /* Sec. 6.1.7: Optional */
384 kSCSICmd_READ_DEFECT_DATA_12 = 0xB7, /* Sec. 6.2.5: Optional */
385 kSCSICmd_READ_ELEMENT_STATUS_ATTACHED = 0xB4, /* SMC: Optional */
386 kSCSICmd_READ_GENERATION= 0x29,/* Sec. 6.2.6: Optional */
387 kSCSICmd_READ_LONG = 0x3E, /* Sec. 6.1.8: Optional */
388 kSCSICmd_READ_UPDATED_BLOCK_10= 0x2D, /* Sec. 6.2.7: Optional */
389 kSCSICmd_REASSIGN_BLOCKS = 0x07, /* Sec. 6.1.9: Optional */
390 kSCSICmd_REBUILD = 0x81, /* Sec. 6.1.10: Optional */
391 kSCSICmd_RECEIVE_DIAGNOSTICS_RESULTS = 0x1C, /* SPC: Optional */
392 kSCSICmd_REGENERATE = 0x82, /* Sec. 6.1.11: Optional */
393 kSCSICmd_RELEASE_6 = 0x17, /* SPC: Optional */
394 kSCSICmd_RELEASE_10 = 0x57, /* SPC: Mandatory */
395 kSCSICmd_REPORT_LUNS = 0xA0, /* SPC: Optional */
396 kSCSICmd_REQUEST_SENSE = 0x03, /* SPC: Mandatory */
397 kSCSICmd_RESERVE_6 = 0x16, /* SPC: Optional */
398 kSCSICmd_RESERVE_10 = 0x56, /* SPC: Mandatory */
399 kSCSICmd_REZERO_UNIT = 0x01, /* Obsolete */
400 kSCSICmd_SEARCH_DATA_EQUAL_10 = 0x31, /* Obsolete */
401 kSCSICmd_SEARCH_DATA_HIGH_10 = 0x30, /* Obsolete */
402 kSCSICmd_SEARCH_DATA_LOW_10 = 0x32, /* Obsolete */
403 kSCSICmd_SEEK_6 = 0x0B, /* Obsolete */
404 kSCSICmd_SEEK_10 = 0x2B, /* Sec. 6.1.12: Optional */
405 kSCSICmd_SEND_DIAGNOSTICS = 0x1D, /* SPC: Mandatory */
406 kSCSICmd_SET_LIMITS_10 = 0x33, /* Sec. 6.1.13: Optional */
407 kSCSICmd_SET_LIMITS_12 = 0xB3, /* Sec. 6.2.8: Optional */
408 kSCSICmd_START_STOP_UNIT = 0x1B, /* Sec. 6.1.14: Optional */
409 kSCSICmd_SYNCHRONIZE_CACHE = 0x35, /* Sec. 6.1.15: Optional */
410 kSCSICmd_TEST_UNIT_READY = 0x00, /* SPC: Mandatory */
411kSCSICmd_UPDATE_BLOCK= 0x3D,/* Sec. 6.2.9: Optional */
412 kSCSICmd_VERIFY_10 = 0x2F, /* Sec. 6.1.16: Optional */
413 kSCSICmd_WRITE_6 = 0x0A, /* Sec. 6.1.17: Optional */
414 kSCSICmd_WRITE_10 = 0x2A, /* Sec. 6.1.18: Optional */
415 kSCSICmd_WRITE_12 = 0xAA, /* Sec. 6.2.13: Optional */
416 kSCSICmd_WRITE_AND_VERIFY_10 = 0x2E, /* Sec. 6.1.19: Optional */
417 kSCSICmd_WRITE_AND_VERIFY_12 = 0xAE, /* Sec. 6.2.15: Optional */
418 kSCSICmd_WRITE_BUFFER = 0x3B, /* SPC: Optional */
419 kSCSICmd_WRITE_LONG = 0x3F, /* Sec. 6.1.20: Optional */
420 kSCSICmd_WRITE_SAME = 0x41, /* Sec. 6.1.21: Optional */
421 kSCSICmd_XDREAD = 0x52, /* Sec. 6.1.22: Optional */
422 kSCSICmd_XDWRITE = 0x50, /* Sec. 6.1.23: Optional */
423 kSCSICmd_XDWRITE_EXTENDED = 0x80, /* Sec. 6.1.24: Optional */
424 kSCSICmd_XPWRITE = 0x51 /* Sec. 6.1.25: Optional */
425};
426#endif
427
428#pragma mark -
429#pragma mark 0x01 SSC Sequential Access Commands
430/* Commands defined by the T10:997-D SCSI-3 Stream Commands (SSC) command
431 * specification. The definitions and section numbers are based on section 5
432 * of the revision 22, January 1, 2000 version of the specification.
433 */
434#if 0
435enum
436{
437 kSCSICmd_CHANGE_DEFINITION = 0x40, /* Obsolete */
438 kSCSICmd_COMPARE = 0x39, /* SPC: Optional */
439 kSCSICmd_COPY = 0x18, /* SPC: Optional */
440 kSCSICmd_COPY_AND_VERIFY = 0x3A, /* SPC: Optional */
441 kSCSICmd_ERASE = 0x19, /* Sec. 5.3.1: Mandatory */
442 kSCSICmd_FORMAT_MEDIUM = 0x04, /* Sec. 5.3.2: Optional */
443 kSCSICmd_INQUIRY = 0x12, /* SPC: Mandatory */
444 kSCSICmd_LOAD_UNLOAD = 0x1B, /* Sec. 5.3.3: Optional */
445 kSCSICmd_LOCATE = 0x2B, /* Sec. 5.3.4: Optional */
446 kSCSICmd_LOG_SELECT = 0x4C, /* SPC: Optional */
447 kSCSICmd_LOG_SENSE = 0x4D, /* SPC: Optional */
448 kSCSICmd_MODE_SELECT_6 = 0x15, /* SPC: Mandatory */
449 kSCSICmd_MODE_SELECT_10 = 0x55, /* SPC: Optional */
450 kSCSICmd_MODE_SENSE_6 = 0x1A, /* SPC: Mandatory */
451 kSCSICmd_MODE_SENSE_10 = 0x5A, /* SPC: Optional */
452 kSCSICmd_MOVE_MEDIUM = 0xA5, /* SMC: Optional */
453 kSCSICmd_MOVE_MEDIUM_ATTACHED = 0xA7, /* SMC: Optional */
454 kSCSICmd_PERSISTENT_RESERVE_IN = 0x5E, /* SPC: Optional */
455 kSCSICmd_PERSISTENT_RESERVE_OUT = 0x5F, /* SPC: Optional */
456 kSCSICmd_PREVENT_ALLOW_MEDIUM_REMOVAL = 0x1E, /* SPC: Optional */
457 kSCSICmd_READ_6 = 0x08, /* Sec. 5.3.5: Mandatory */
458 kSCSICmd_READ_BLOCK_LIMITS = 0x05, /* Sec. 5.3.6: Mandatory */
459 kSCSICmd_READ_BUFFER = 0x3C, /* SPC: Optional */
460 kSCSICmd_READ_ELEMENT_STATUS = 0xB8, /* SMC: Optional */
461 kSCSICmd_READ_ELEMENT_STATUS_ATTACHED = 0xB4, /* SMC: Optional */
462 kSCSICmd_READ_POSITION = 0x34, /* Sec. 5.3.7: Mandatory */
463 kSCSICmd_READ_REVERSE = 0x0F, /* Sec. 5.3.8: Optional */
464 kSCSICmd_RECEIVE_DIAGNOSTICS_RESULTS = 0x1C, /* SPC: Optional */
465 kSCSICmd_RECOVER_BUFFERED_DATA = 0x14, /* Sec. 5.3.9: Optional */
466 kSCSICmd_RELEASE_6 = 0x17, /* SPC: Mandatory */
467 kSCSICmd_RELEASE_10 = 0x57, /* SPC: Mandatory */
468 kSCSICmd_REPORT_DENSITY_SUPPORT = 0x44, /* Sec. 5.3.10: Mandatory*/
469 kSCSICmd_REPORT_LUNS = 0xA0, /* SPC: Mandatory */
470 kSCSICmd_REQUEST_SENSE = 0x03, /* SPC: Mandatory */
471 kSCSICmd_RESERVE_6 = 0x16, /* SPC: Mandatory */
472 kSCSICmd_RESERVE_10 = 0x56, /* SPC: Mandatory */
473 kSCSICmd_REWIND = 0x01, /* Sec. 5.3.11: Mandatory*/
474 kSCSICmd_SEND_DIAGNOSTICS = 0x1D, /* SPC: Mandatory */
475 kSCSICmd_SPACE = 0x11, /* Sec. 5.3.12: Mandatory*/
476 kSCSICmd_TEST_UNIT_READY = 0x00, /* SPC: Mandatory */
477 kSCSICmd_VERIFY_6 = 0x13, /* Sec. 5.3.13: Optional */
478 kSCSICmd_WRITE_6 = 0x0A, /* Sec. 5.3.14: Mandatory*/
479 kSCSICmd_WRITE_BUFFER = 0x3B, /* SPC: Optional */
480 kSCSICmd_WRITE_FILEMARKS = 0x10 /* Sec. 5.3.15: Mandatory*/
481};
482#endif
483
484#pragma mark -
485#pragma mark 0x02 SSC Printer Commands
486/* Commands defined by the T10:997-D SCSI-3 Stream Commands (SSC) command
487 * specification. The definitions and section numbers are based on section 6
488 * of the revision 22, January 1, 2000 version of the specification.
489 */
490#if 0
491enum
492{
493 kSCSICmd_CHANGE_DEFINITION = 0x40, /* Obsolete */
494 kSCSICmd_COMPARE = 0x39, /* SPC: Optional */
495 kSCSICmd_COPY = 0x18, /* SPC: Optional */
496 kSCSICmd_COPY_AND_VERIFY = 0x3A, /* SPC: Optional */
497 kSCSICmd_FORMAT = 0x04, /* Sec. 6.2.1: Optional */
498 kSCSICmd_INQUIRY = 0x12, /* SPC: Mandatory */
499 kSCSICmd_LOG_SELECT = 0x4C, /* SPC: Optional */
500 kSCSICmd_LOG_SENSE = 0x4D, /* SPC: Optional */
501 kSCSICmd_MODE_SELECT_6 = 0x15, /* SPC: Mandatory */
502 kSCSICmd_MODE_SELECT_10 = 0x55, /* SPC: Optional */
503 kSCSICmd_MODE_SENSE_6 = 0x1A, /* SPC: Mandatory */
504 kSCSICmd_MODE_SENSE_10 = 0x5A, /* SPC: Optional */
505 kSCSICmd_PERSISTENT_RESERVE_IN = 0x5E, /* SPC: Optional */
506 kSCSICmd_PERSISTENT_RESERVE_OUT = 0x5F, /* SPC: Optional */
507 kSCSICmd_PRINT = 0x0A, /* Sec. 6.2.2: Mandatory */
508 kSCSICmd_READ_BUFFER = 0x3C, /* SPC: Optional */
509 kSCSICmd_RECEIVE_DIAGNOSTICS_RESULTS = 0x1C, /* SPC: Optional */
510 kSCSICmd_RECOVER_BUFFERED_DATA = 0x14, /* Sec. 6.2.3: Optional */
511 kSCSICmd_RELEASE_6 = 0x17, /* SPC: Mandatory */
512 kSCSICmd_RELEASE_10 = 0x57, /* SPC: Mandatory */
513 kSCSICmd_REPORT_LUNS = 0xA0, /* SPC: Mandatory */
514 kSCSICmd_REQUEST_SENSE = 0x03, /* SPC: Mandatory */
515 kSCSICmd_RESERVE_6 = 0x16, /* SPC: Mandatory */
516 kSCSICmd_RESERVE_10 = 0x56, /* SPC: Mandatory */
517 kSCSICmd_SEND_DIAGNOSTICS = 0x1D, /* SPC: Mandatory */
518 kSCSICmd_SLEW_AND_PRINT = 0x0B, /* Sec. 6.2.4: Optional */
519 kSCSICmd_STOP_PRINT = 0x1B, /* Sec. 6.2.5: Optional */
520 kSCSICmd_SYNCHRONIZE_BUFFER = 0x10, /* Sec. 6.2.6: Optional */
521 kSCSICmd_TEST_UNIT_READY = 0x00, /* SPC: Mandatory */
522 kSCSICmd_WRITE_BUFFER = 0x3B /* SPC: Optional */
523};
524#endif
525
526#pragma mark -
527#pragma mark 0x03 SPC Processor Commands
528/* Commands defined by the T10:1236-D SCSI Primary Commands-2 (SPC-2)
529 * command specification. The definitions and section numbers are based on
530 * section 9 of the revision 18, 21 May 2000 version of the specification.
531 */
532#if 0
533enum
534{
535 kSCSICmd_CHANGE_DEFINITION = 0x40, /* Obsolete */
536 kSCSICmd_COMPARE = 0x39, /* Sec. 7.2: Optional */
537 kSCSICmd_COPY = 0x18, /* Sec. 7.3: Optional */
538 kSCSICmd_COPY_AND_VERIFY = 0x3A, /* Sec. 7.4: Optional */
539 kSCSICmd_EXTENDED_COPY = 0x83, /* Sec. 7.5: Optional */
540 kSCSICmd_INQUIRY = 0x12, /* Sec. 7.6: Mandatory */
541 kSCSICmd_LOG_SELECT = 0x4C, /* Sec. 7.7: Optional */
542 kSCSICmd_LOG_SENSE = 0x4D, /* Sec. 7.8: Optional */
543 kSCSICmd_PERSISTENT_RESERVE_IN = 0x5E, /* Sec. 7.13: Optional */
544 kSCSICmd_PERSISTENT_RESERVE_OUT = 0x5F, /* Sec. 7.14: Optional */
545 kSCSICmd_READ_BUFFER = 0x3C, /* Sec. 7.16: Optional */
546 kSCSICmd_RECEIVE = 0x08, /* Sec. 9.2: Optional */
547 kSCSICmd_RECEIVE_COPY_RESULTS = 0x84, /* Sec. 7.17: Optional */
548 kSCSICmd_RECEIVE_DIAGNOSTICS_RESULTS = 0x1C, /* Sec. 7.18: Optional */
549 kSCSICmd_RELEASE_10 = 0x57, /* Sec. 7.19: Optional */
550 kSCSICmd_RELEASE_6 = 0x17, /* Sec. 7.20: Optional */
551 kSCSICmd_REPORT_LUNS = 0xA0, /* Sec. 7.22: Optional */
552 kSCSICmd_REQUEST_SENSE = 0x03, /* Sec. 7.23: Mandatory */
553 kSCSICmd_RESERVE_10 = 0x56, /* Sec. 7.24: Optional */
554 kSCSICmd_RESERVE_6 = 0x16, /* Sec. 7.25: Optional */
555 kSCSICmd_SEND = 0x0A, /* Sec. 9.3: Optional */
556 kSCSICmd_SEND_DIAGNOSTICS = 0x1D, /* Sec. 7.26: Mandatory */
557 kSCSICmd_TEST_UNIT_READY = 0x00, /* Sec. 7.27: Mandatory */
558 kSCSICmd_WRITE_BUFFER = 0x3B /* Sec. 7.29: Optional */
559};
560#endif
561
562#pragma mark -
563#pragma mark 0x04 SBC Write Once Commands
564/* Commands defined by the T10:990-D SCSI-3 Block Commands (SBC) command
565 * specification. The definitions and section numbers are based on section 6.3
566 * of the revision 8c, 13 November 1997 version of the specification.
567 */
568#if 0
569enum
570{
571 kSCSICmd_CHANGE_DEFINITION = 0x40, /* SPC: Optional */
572 kSCSICmd_COMPARE = 0x39, /* SPC: Optional */
573 kSCSICmd_COPY = 0x18, /* SPC: Optional */
574 kSCSICmd_COPY_AND_VERIFY = 0x3A, /* SPC: Optional*/
575 kSCSICmd_INQUIRY = 0x12, /* SPC: Mandatory */
576 kSCSICmd_LOCK_UNLOCK_CACHE = 0x36, /* Sec. 6.1.2: Optional */
577 kSCSICmd_LOG_SELECT = 0x4C, /* SPC: Optional */
578 kSCSICmd_LOG_SENSE = 0x4D, /* SPC: Optional */
579 kSCSICmd_MEDIUM_SCAN = 0x38, /* Sec. 6.2.3: Optional */
580 kSCSICmd_MODE_SELECT_6 = 0x15, /* SPC: Optional */
581 kSCSICmd_MODE_SELECT_10 = 0x55, /* SPC: Optional */
582 kSCSICmd_MODE_SENSE_6 = 0x1A, /* SPC: Optional */
583 kSCSICmd_MODE_SENSE_10 = 0x5A, /* SPC: Optional */
584 kSCSICmd_MOVE_MEDIUM = 0xA5, /* SMC: Optional */
585 kSCSICmd_PERSISTENT_RESERVE_IN = 0x5E, /* SPC: Optional */
586 kSCSICmd_PERSISTENT_RESERVE_OUT = 0x5F, /* SPC: Optional */
587 kSCSICmd_PREFETCH = 0x34, /* Sec. 6.1.3: Optional */
588 kSCSICmd_PREVENT_ALLOW_MEDIUM_REMOVAL = 0x1E, /* SPC: Optional */
589 kSCSICmd_READ_6 = 0x08, /* Sec. 6.1.4: Optional */
590 kSCSICmd_READ_10 = 0x28, /* Sec. 6.1.5: Mandatory */
591 kSCSICmd_READ_12 = 0xA8, /* Sec. 6.2.4: Optional */
592 kSCSICmd_READ_BUFFER = 0x3C, /* SPC: Optional */
593 kSCSICmd_READ_CAPACITY = 0x25, /* Sec. 6.1.6: Mandatory */
594 kSCSICmd_READ_ELEMENT_STATUS = 0xB8, /* SMC: Optional */
595 kSCSICmd_READ_LONG = 0x3E, /* Sec. 6.1.8: Optional */
596 kSCSICmd_REASSIGN_BLOCKS = 0x07, /* Sec. 6.1.9: Optional */
597 kSCSICmd_RECEIVE_DIAGNOSTICS_RESULTS = 0x1C, /* SPC: Optional */
598 kSCSICmd_RELEASE_6 = 0x17, /* SPC: Optional */
599 kSCSICmd_RELEASE_10 = 0x57, /* SPC: Mandatory */
600 kSCSICmd_REQUEST_SENSE = 0x03, /* SPC: Mandatory */
601 kSCSICmd_RESERVE_6 = 0x16, /* SPC: Optional */
602 kSCSICmd_RESERVE_10 = 0x56, /* SPC: Mandatory */
603 kSCSICmd_REZERO_UNIT = 0x01, /* Obsolete */
604 kSCSICmd_SEARCH_DATA_EQUAL_10 = 0x31, /* Obsolete */
605 kSCSICmd_SEARCH_DATA_EQUAL_12 = 0xB1, /* Obsolete */
606 kSCSICmd_SEARCH_DATA_HIGH_10 = 0x30, /* Obsolete */
607 kSCSICmd_SEARCH_DATA_HIGH_12 = 0xB0, /* Obsolete */
608 kSCSICmd_SEARCH_DATA_LOW_10 = 0x32, /* Obsolete */
609 kSCSICmd_SEARCH_DATA_LOW_12 = 0xB2, /* Obsolete */
610 kSCSICmd_SEEK_6 = 0x0B, /* Obsolete */
611 kSCSICmd_SEEK_10 = 0x2B, /* Sec. 6.1.12: Optional */
612 kSCSICmd_SEND_DIAGNOSTICS = 0x1D, /* SPC: Mandatory */
613 kSCSICmd_SET_LIMITS_10 = 0x33, /* Sec. 6.1.13: Optional */
614 kSCSICmd_SET_LIMITS_12 = 0xB3, /* Sec. 6.2.8: Optional */
615 kSCSICmd_START_STOP_UNIT = 0x1B, /* Sec. 6.1.14: Optional */
616 kSCSICmd_SYNCHRONIZE_CACHE = 0x35, /* Sec. 6.1.15: Optional */
617 kSCSICmd_TEST_UNIT_READY = 0x00, /* SPC: Mandatory */
618 kSCSICmd_VERIFY_10 = 0x2F, /* Sec. 6.2.10: Optional */
619 kSCSICmd_VERIFY_12 = 0xAF, /* Sec. 6.2.11: Optional */
620 kSCSICmd_WRITE_6 = 0x0A, /* Sec. 6.1.17: Optional */
621 kSCSICmd_WRITE_10 = 0x2A, /* Sec. 6.2.10: Mandatory*/
622 kSCSICmd_WRITE_12 = 0xAA, /* Sec. 6.2.13: Optional */
623 kSCSICmd_WRITE_AND_VERIFY_10 = 0x2E, /* Sec. 6.2.14: Optional */
624 kSCSICmd_WRITE_AND_VERIFY_12 = 0xAE, /* Sec. 6.2.15: Optional */
625 kSCSICmd_WRITE_BUFFER = 0x3B, /* SPC: Optional */
626 kSCSICmd_WRITE_LONG = 0x3F /* Sec. 6.1.20: Optional */
627};
628#endif
629
630#pragma mark -
631#pragma mark 0x05 MMC CD-ROM Commands
632/* Commands defined by the T10:1363-D SCSI Multimedia Commands-3 (MMC-3)
633 * specification. The definitions and section numbers are based on section 6.1
634 * of the revision 01, March 03, 2000 version of the specification.
635 *
636 * NOTE: The comments following each command may not be accurate. These are
637 * not from the MMC-3 specification, but have been derived from the SCSI-2 and
638 * original MMC specifications. Unlike the other SCSI command specifications,
639 * MMC-2 and MMC-3 do not provide a command requirement type and therefore does
640 * not relist the SPC commands with these requirements as they apply to MMC
641 * devices. The MMC-2 and MMC-3 specifications also refer back to the SBC
642 * specification which seems invalid since MMC devices do not represent a
643 * Peripheral Device Type defined by SBC. It is assumed that the SBC
644 * references refer to the Peripheral Device Type 0x00 - Direct Access Commands
645 * definitions from that specification.
646 */
647#if 0
648enum
649{
650 kSCSICmd_BLANK = 0xA1, /* Sec. 6.1.1: */
651 kSCSICmd_CHANGE_DEFINITION = 0x40, /* Obsolete */
652 kSCSICmd_CLOSE_TRACK_SESSION = 0x5B, /* Sec. 6.1.2: */
653 kSCSICmd_COMPARE = 0x39, /* SPC: Optional */
654 kSCSICmd_COPY = 0x18, /* SPC: Optional */
655 kSCSICmd_COPY_AND_VERIFY = 0x3A, /* SPC: Optional */
656 kSCSICmd_ERASE = 0x2C, /* SBC: */
657 kSCSICmd_FORMAT_UNIT = 0x04, /* Sec. 6.1.3: */
658 kSCSICmd_GET_CONFIGURATION = 0x46, /* Sec. 6.1.4: */
659 kSCSICmd_GET_EVENT_STATUS_NOTIFICATION = 0x4A, /* Sec. 6.1.5: */
660 kSCSICmd_GET_PERFORMANCE = 0xAC, /* Sec. 6.1.6: */
661 kSCSICmd_INQUIRY = 0x12, /* SPC: Mandatory */
662 kSCSICmd_LOAD_UNLOAD_MEDIUM = 0xA6, /* Sec. 6.1.7: */
663 kSCSICmd_LOG_SELECT = 0x4C, /* SPC: Optional */
664 kSCSICmd_LOG_SENSE = 0x4D, /* SPC: Optional */
665 kSCSICmd_MECHANISM_STATUS = 0xBD, /* Sec. 6.1.8: */
666 kSCSICmd_MODE_SELECT_6 = 0x15, /* SPC: Mandatory */
667 kSCSICmd_MODE_SELECT_10 = 0x55, /* SPC: Mandatory */
668 kSCSICmd_MODE_SENSE_6 = 0x1A, /* SPC: Mandatory */
669 kSCSICmd_MODE_SENSE_10 = 0x5A, /* SPC: Mandatory */
670 kSCSICmd_PAUSE_RESUME = 0x4B, /* Sec. 6.1.9: */
671 kSCSICmd_PLAY_AUDIO_10 = 0x45, /* Sec. 6.1.10: */
672 kSCSICmd_PLAY_AUDIO_12 = 0xA5, /* Sec. 6.1.11: */
673 kSCSICmd_PLAY_AUDIO_MSF = 0x47, /* Sec. 6.1.12: */
674 kSCSICmd_PLAY_AUDIO_TRACK_INDEX = 0x48, /* Obsolete */
675 kSCSICmd_PLAY_CD = 0xBC, /* Sec. 6.1.13: */
676 kSCSICmd_PLAY_RELATIVE_10 = 0x49, /* Obsolete */
677 kSCSICmd_PLAY_RELATIVE_12 = 0xA9, /* Obsolete */
678 kSCSICmd_PREFETCH = 0x34, /* Optional */
679 kSCSICmd_PREVENT_ALLOW_MEDIUM_REMOVAL = 0x1E, /* Optional */
680 kSCSICmd_READ_6 = 0x08, /* Optional */
681 kSCSICmd_READ_10 = 0x28, /* Mandatory */
682 kSCSICmd_READ_12 = 0xA8, /* Optional */
683 kSCSICmd_READ_BUFFER = 0x3C, /* Optional */
684 kSCSICmd_READ_BUFFER_CAPACITY = 0x5C, /* Sec. 6.1.15: */
685 kSCSICmd_READ_CD = 0xBE, /* Sec. 6.1.16: */
686 kSCSICmd_READ_CD_MSF = 0xB9, /* Sec. 6.1.17: */
687 kSCSICmd_READ_CAPACITY = 0x25, /* Sec. 6.1.18: */
688 kSCSICmd_READ_DISC_INFORMATION = 0x51, /* Sec. 6.1.19: */
689 kSCSICmd_READ_DVD_STRUCTURE = 0xAD, /* Sec. 6.1.20: */
690 kSCSICmd_READ_DISC_STRUCTURE = 0xAD, /* Sec. 6.1.20: */
691 kSCSICmd_READ_FORMAT_CAPACITIES = 0x23, /* Sec. 6.1.21: */
692 kSCSICmd_READ_HEADER = 0x44, /* Sec. 6.1.22: */
693 kSCSICmd_READ_LONG = 0x3E, /* Optional */
694 kSCSICmd_READ_MASTER_CUE = 0x59, /* Sec. 6.1.23: */
695 kSCSICmd_READ_SUB_CHANNEL = 0x42, /* Sec. 6.1.24: */
696 kSCSICmd_READ_TOC_PMA_ATIP = 0x43, /* Sec. 6.1.25: */
697 kSCSICmd_READ_TRACK_INFORMATION = 0x52, /* Sec. 6.1.27: */
698 kSCSICmd_RECEIVE_DIAGNOSTICS_RESULTS = 0x1C, /* Optional */
699 kSCSICmd_RELEASE_6 = 0x17, /* Mandatory */
700 kSCSICmd_RELEASE_10 = 0x57, /* Optional */
701 kSCSICmd_REPAIR_TRACK = 0x58, /* Sec. 6.1.28: */
702 kSCSICmd_REPORT_KEY = 0xA4, /* Sec. 6.1.29: */
703 kSCSICmd_REQUEST_SENSE = 0x03, /* Mandatory */
704 kSCSICmd_RESERVE_6 = 0x16, /* Mandatory */
705 kSCSICmd_RESERVE_10 = 0x56, /* Optional */
706 kSCSICmd_RESERVE_TRACK = 0x53, /* Sec. 6.1.30: */
707 kSCSICmd_SCAN_MMC = 0xBA, /* Sec. 6.1.31: */
708 kSCSICmd_SEARCH_DATA_EQUAL_10 = 0x31, /* Obsolete */
709 kSCSICmd_SEARCH_DATA_EQUAL_12 = 0xB1, /* Obsolete */
710 kSCSICmd_SEARCH_DATA_HIGH_10 = 0x30, /* Obsolete */
711 kSCSICmd_SEARCH_DATA_HIGH_12 = 0xB0, /* Obsolete */
712 kSCSICmd_SEARCH_DATA_LOW_10 = 0x32, /* Obsolete */
713 kSCSICmd_SEARCH_DATA_LOW_12 = 0xB2, /* Obsolete */
714 kSCSICmd_SEEK_6 = 0x0B, /* Obsolete */
715 kSCSICmd_SEEK_10 = 0x2B, /* SBC: */
716 kSCSICmd_SEND_CUE_SHEET = 0x5D, /* Sec. 6.1.32: */
717 kSCSICmd_SEND_DIAGNOSTICS = 0x1D, /* Mandatory */
718 kSCSICmd_SEND_DVD_STRUCTURE = 0xBF, /* Sec. 6.1.33: */
719 kSCSICmd_SEND_EVENT = 0xA2, /* Sec. 6.1.34: */
720 kSCSICmd_SEND_KEY = 0xA3, /* Sec. 6.1.35: */
721 kSCSICmd_SEND_OPC_INFORMATION = 0x54, /* Sec. 6.1.36: */
722 kSCSICmd_SET_CD_SPEED = 0xBB, /* Sec. 6.1.37: */
723 kSCSICmd_SET_LIMITS_10 = 0x33, /* Optional */
724 kSCSICmd_SET_LIMITS_12 = 0xB3, /* Optional */
725 kSCSICmd_SET_READ_AHEAD = 0xA7, /* Sec. 6.1.38: */
726 kSCSICmd_SET_STREAMING = 0xB6, /* Sec. 6.1.39: */
727 kSCSICmd_START_STOP_UNIT = 0x1B, /* Optional */
728 kSCSICmd_STOP_PLAY_SCAN = 0x4E, /* Sec. 6.1.40: */
729 kSCSICmd_SYNCHRONIZE_CACHE = 0x35, /* Sec. 6.1.41: */
730 kSCSICmd_TEST_UNIT_READY = 0x00, /* Mandatory */
731 kSCSICmd_VERIFY_10 = 0x2F, /* Optional */
732 kSCSICmd_VERIFY_12 = 0xAF, /* Optional */
733 kSCSICmd_WRITE_10 = 0x2A, /* Sec. 6.1.42: */
734 kSCSICmd_WRITE_12 = 0xAA, /* Sec. 6.1.43: */
735 kSCSICmd_WRITE_AND_VERIFY_10 = 0x2E, /* Sec. 6.1.44: */
736 kSCSICmd_WRITE_BUFFER = 0x3B /* Optional */
737};
738#endif
739
740#pragma mark -
741#pragma mark 0x06 SGC Scanner Commands
742/* Commands defined by the T10:998-D SCSI-3 Graphics Commands (SGC)
743 * specification. The definitions and section numbers are based on section 6
744 * of the revision 0, April 1995 version of the specification.
745 */
746#if 0
747enum
748{
749 kSCSICmd_CHANGE_DEFINITION = 0x40, /* SPC: Optional */
750 kSCSICmd_COMPARE = 0x39, /* SPC: Optional */
751 kSCSICmd_COPY = 0x18, /* SPC: Optional */
752 kSCSICmd_COPY_AND_VERIFY = 0x3A, /* SPC: Optional */
753 kSCSICmd_GET_DATA_BUFFER_STATUS = 0x34, /* Sec. 6.1.1: Optional */
754 kSCSICmd_GET_WINDOW = 0x25, /* Sec. 6.1.2: Optional */
755 kSCSICmd_INQUIRY = 0x12, /* SPC: Mandatory */
756 kSCSICmd_LOG_SELECT = 0x4C, /* SPC: Optional */
757 kSCSICmd_LOG_SENSE = 0x4D, /* SPC: Optional */
758 kSCSICmd_MODE_SELECT_6 = 0x15, /* SPC: Optional */
759 kSCSICmd_MODE_SELECT_10 = 0x55, /* SPC: Optional */
760 kSCSICmd_MODE_SENSE_6 = 0x1A, /* SPC: Optional */
761 kSCSICmd_MODE_SENSE_10 = 0x5A, /* SPC: Optional */
762 kSCSICmd_OBJECT_POSITION = 0x31, /* Sec. 6.1.3: Optional */
763 kSCSICmd_PORT_STATUS = 0x11, /* SPC (??): Mandatory
764 * for dual port devices */
765 kSCSICmd_READ = 0x28, /* Sec. 6.1.4: Mandatory */
766 kSCSICmd_READ_BUFFER = 0x3C, /* SPC: Optional */
767 kSCSICmd_RECEIVE_DIAGNOSTICS_RESULTS = 0x1C, /* SPC: Optional */
768 kSCSICmd_RELEASE_6 = 0x17, /* SPC: Mandatory */
769 kSCSICmd_REQUEST_SENSE = 0x03, /* SPC: Mandatory */
770 kSCSICmd_RESERVE_6 = 0x16, /* SPC: Mandatory */
771 kSCSICmd_SCAN = 0x1B, /* Sec. 6.1.5: Optional */
772 kSCSICmd_SEND = 0x1B, /* Sec. 6.1.6: Optional */
773 kSCSICmd_SEND_DIAGNOSTICS = 0x1D, /* SPC: Mandatory */
774 kSCSICmd_SET_WINDOW = 0x24, /* Sec. 6.1.7: Mandatory */
775 kSCSICmd_TEST_UNIT_READY = 0x00, /* SPC: Mandatory */
776 kSCSICmd_WRITE_BUFFER = 0x3B /* SPC: Optional */
777};
778#endif
779
780#pragma mark -
781#pragma mark 0x07 SBC Optical Media Commands
782/* Commands defined by the T10:990-D SCSI-3 Block Commands (SBC)
783 * (revision 8c, 13 November 1998) command specification.
784 */
785
786#pragma mark -
787#pragma mark 0x08 SMC Medium Changer Commands
788/* Commands defined by the T10:1228-D SCSI-3 Medium Changer Commands-2 (SMC-2)
789 * (revision 0, March 16, 2000) command specification.
790 */
791#if 0
792enum
793{
794 /* Commands For Independent Medium Changers */
795 kSCSICmd_EXCHANGE_MEDIUM = 0xA6, /* Optional */
796 kSCSICmd_INITIALIZE_ELEMENT_STATUS = 0x07, /* Optional */
797 kSCSICmd_MODE_SELECT_6 = 0x15, /* Optional */
798 kSCSICmd_MODE_SELECT_10 = 0x55, /* Optional */
799 kSCSICmd_MODE_SENSE_6 = 0x1A, /* Optional */
800 kSCSICmd_MODE_SENSE_10 = 0x5A, /* Optional */
801 kSCSICmd_MOVE_MEDIUM = 0xA5, /* Mandatory */
802 kSCSICmd_PERSISTENT_RESERVE_IN = 0x5E, /* Optional */
803 kSCSICmd_PERSISTENT_RESERVE_OUT = 0x5F, /* Optional */
804 kSCSICmd_POSITION_TO_ELEMENT = 0x2B, /* Optional */
805 kSCSICmd_READ_ELEMENT_STATUS = 0xB8, /* Mandatory */
806 kSCSICmd_RELEASE_ELEMENT_6 = 0x16, /* Optional */
807 kSCSICmd_RELEASE_ELEMENT_10 = 0x56, /* Optional */
808 kSCSICmd_REQUEST_VOLUME_ELEMENT_ADDRESS = 0xB5, /* Optional */
809 kSCSICmd_REQUEST_SENSE = 0x03, /* Mandatory */
810 kSCSICmd_RESERVE_ELEMENT_6 = 0x16, /* Optional */
811 kSCSICmd_RESERVE_ELEMENT_10 = 0x56 /* Optional */
812};
813#endif
814
815#pragma mark -
816#pragma mark 0x09 SSC Communications Commands
817/* Commands defined by the T10:997-D SCSI-3 Stream Commands (SSC)
818 * (revision 22, January 1, 2000) command specification.
819 */
820
821#pragma mark -
822#pragma mark 0x0A ASC IT8 Prepress Commands
823#pragma mark 0x0B ASC IT8 Prepress Commands
824/* Commands defined by the ASC IT8 <title goes here> specification
825 * (revision xx, month day, year) command specification.
826 */
827#if 0
828enum
829{
830};
831#endif
832
833#pragma mark -
834#pragma mark 0x0C SCC Array Controller Commands
835/* Commands defined by the ANSI NCITS.318-199x SCSI Controller
836 * Commands (SCC-2) ratified command specification.
837 */
838#if 0
839enum
840{
841 kSCSICmd_MAINTENANCE_IN = 0xA3, /* Mandatory */
842 kSCSICmd_MAINTENANCE_OUT = 0xA4, /* Optional */
843 kSCSICmd_MODE_SELECT_6 = 0x15, /* Optional */
844 kSCSICmd_MODE_SELECT_10 = 0x55, /* Optional */
845 kSCSICmd_MODE_SENSE_6 = 0x1A, /* Optional */
846 kSCSICmd_MODE_SENSE_10 = 0x5A, /* Optional */
847 kSCSICmd_PERSISTENT_RESERVE_IN = 0x5E, /* Optional */
848 kSCSICmd_PERSISTENT_RESERVE_OUT = 0x5F, /* Optional */
849 kSCSICmd_PORT_STATUS = 0x1F, /* Optional */
850 kSCSICmd_REDUNDANCY_GROUP_IN = 0xBA, /* Mandatory */
851 kSCSICmd_REDUNDANCY_GROUP_OUT = 0xBB, /* Optional */
852 kSCSICmd_RELEASE_6 = 0x17, /* Optional */
853 kSCSICmd_RELEASE_10 = 0x57, /* Optional */
854 kSCSICmd_REPORT_LUNS = 0xA0, /* Mandatory */
855 kSCSICmd_REQUEST_SENSE = 0x03, /* Mandatory */
856 kSCSICmd_RESERVE_6 = 0x16, /* Optional */
857 kSCSICmd_RESERVE_10 = 0x56, /* Optional*/
858 kSCSICmd_SEND_DIAGNOSTICS = 0x1D, /* Optional */
859 kSCSICmd_SPARE_IN = 0xBC, /* Mandatory */
860 kSCSICmd_SPARE_OUT = 0xBD /* Optional */
861};
862#endif
863
864#pragma mark -
865#pragma mark 0x0D SES Enclosure Services Commands
866/* Commands defined by the T10:1212-D SCSI-3 Enclosure Services (SES)
867 * (revision 8b, February 11, 1998) command specification.
868 */
869#if 0
870enum
871{
872 kSCSICmd_MODE_SELECT_6 = 0x15, /* Optional */
873 kSCSICmd_MODE_SELECT_10 = 0x55, /* Optional */
874 kSCSICmd_MODE_SENSE_6 = 0x1A, /* Optional */
875 kSCSICmd_MODE_SENSE_10 = 0x5A, /* Optional */
876 kSCSICmd_PERSISTENT_RESERVE_IN = 0x5E, /* Optional */
877 kSCSICmd_PERSISTENT_RESERVE_OUT = 0x5F, /* Optional */
878 kSCSICmd_RECEIVE_DIAGNOSTICS_RESULTS = 0x17, /* Mandatory */
879 kSCSICmd_RELEASE_6 = 0x17, /* Optional */
880 kSCSICmd_RELEASE_10 = 0x57, /* Optional */
881 kSCSICmd_REQUEST_SENSE = 0x03, /* Mandatory */
882 kSCSICmd_RESERVE_6 = 0x16, /* Optional */
883 kSCSICmd_RESERVE_10 = 0x56, /* Optional */
884 kSCSICmd_SEND_DIAGNOSTICS = 0x1D /* Mandatory */
885};
886#endif
887
888#pragma mark -
889#pragma mark 0x0E RBC Reduced Block Commands
890/* Commands defined by the T10:1240-D Reduced Block Commands (RBC)
891 * (revision 10a, August 18, 1999) command specification.
892 */
893#if 0
894enum
895{
896 kSCSICmd_FORMAT_UNIT = 0x04, /* Optional */
897 kSCSICmd_READ_10 = 0x28, /* Mandatory */
898 kSCSICmd_READ_CAPACITY = 0x25, /* Mandatory */
899 kSCSICmd_START_STOP_UNIT = 0x1B, /* Mandatory */
900 kSCSICmd_SYNCHRONIZE_CACHE = 0x35, /* Optional */
901 kSCSICmd_VERIFY_10 = 0x2F, /* Mandatory */
902 kSCSICmd_WRITE_10 = 0x2A, /* Mandatory */
903 kSCSICmd_WRITE_BUFFER = 0x3B /* Mandatory for fixed media
904 * Optional for removable */
905};
906#endif
907
908#pragma mark -
909#pragma mark 0x0F OCRW Optical Card Commands
910/* Commands defined by the ISO/IEC 14776-381 SCSI Specification for
911 * Optical Card Reader/Writer (OCRW) ratified command specification.
912 */
913#if 0
914enum
915{
916};
917#endif
918
919#pragma mark -
920#pragma mark 0x11 OSD Object-based Storage Commands
921/* Commands defined by the T10:1355-D Object-based Storage Commands (OSD)
922 * (revision 1, 18 May 2000) command specification.
923 */
924#if 0
925enum
926{
927};
928#endif
929
930#pragma mark -
931#pragma mark 0x15 RMC Simplified Multimedia Commands
932/* Commands defined by the T10:1364-D Reduced Multimedia Commands (RMC)
933 * (revision 1, November 11, 1999) command specification.
934 */
935#if 0
936enum
937{
938};
939#endif
940
941#endif/* _SCSI_COMMAND_OPERATION_CODES_H_ */
942

Archive Download this file

Revision: 2225