Chameleon

Chameleon Svn Source Tree

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

Source at commit 1129 created 12 years 11 months ago.
By meklort, Change options.o so that it reloads the system config as well. Also change it so that it uses that config for variables (NOTE: if the calue exists in chameleonConfig, it's used instead.
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: 1129