ctl_cmd_table.c revision 268694
1/*-
2 * Copyright (c) 2003, 2004, 2005, 2009 Silicon Graphics International Corp.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 *    notice, this list of conditions, and the following disclaimer,
10 *    without modification.
11 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
12 *    substantially similar to the "NO WARRANTY" disclaimer below
13 *    ("Disclaimer") and any redistribution must be conditioned upon
14 *    including a substantially similar Disclaimer requirement for further
15 *    binary redistribution.
16 *
17 * NO WARRANTY
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 * POSSIBILITY OF SUCH DAMAGES.
29 *
30 * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_cmd_table.c#4 $
31 * $FreeBSD: stable/10/sys/cam/ctl/ctl_cmd_table.c 268694 2014-07-15 17:16:06Z mav $
32 */
33/*
34 * CAM Target Layer command table.
35 *
36 * Author: Ken Merry <ken@FreeBSD.org>, Kim Le
37 */
38
39#include <sys/cdefs.h>
40#include <sys/param.h>
41#include <sys/systm.h>
42#include <sys/kernel.h>
43#include <sys/types.h>
44#include <sys/malloc.h>
45#include <sys/condvar.h>
46#include <sys/queue.h>
47#include <sys/sysctl.h>
48
49#include <cam/scsi/scsi_all.h>
50#include <cam/scsi/scsi_da.h>
51#include <cam/ctl/ctl_io.h>
52#include <cam/ctl/ctl.h>
53#include <cam/ctl/ctl_frontend.h>
54#include <cam/ctl/ctl_backend.h>
55#include <cam/ctl/ctl_frontend_internal.h>
56#include <cam/ctl/ctl_ioctl.h>
57#include <cam/ctl/ctl_ha.h>
58#include <cam/ctl/ctl_private.h>
59
60/*
61 * Whenever support for a new command is added, it should be added to these
62 * tables.
63 */
64
65/* 5E PERSISTENT RESERVE IN */
66const struct ctl_cmd_entry ctl_cmd_table_5e[32] =
67{
68/* 00 READ KEYS */
69{ctl_persistent_reserve_in, CTL_SERIDX_PRES_IN, CTL_CMD_FLAG_ALLOW_ON_RESV |
70						CTL_CMD_FLAG_OK_ON_BOTH |
71						CTL_CMD_FLAG_OK_ON_STOPPED |
72						CTL_CMD_FLAG_OK_ON_INOPERABLE |
73						CTL_CMD_FLAG_OK_ON_SECONDARY |
74						CTL_FLAG_DATA_IN |
75						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
76 CTL_LUN_PAT_NONE,
77 10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
78
79/* 01 READ RESERVATION */
80{ctl_persistent_reserve_in, CTL_SERIDX_PRES_IN, CTL_CMD_FLAG_ALLOW_ON_RESV |
81						CTL_CMD_FLAG_OK_ON_BOTH |
82						CTL_CMD_FLAG_OK_ON_STOPPED |
83						CTL_CMD_FLAG_OK_ON_INOPERABLE |
84						CTL_CMD_FLAG_OK_ON_SECONDARY |
85						CTL_FLAG_DATA_IN |
86						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
87 CTL_LUN_PAT_NONE,
88 10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
89
90/* 02 REPORT CAPABILITIES */
91{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV |
92					    CTL_CMD_FLAG_OK_ON_BOTH |
93					    CTL_CMD_FLAG_OK_ON_STOPPED |
94					    CTL_CMD_FLAG_OK_ON_INOPERABLE |
95					    CTL_CMD_FLAG_OK_ON_SECONDARY |
96					    CTL_FLAG_DATA_IN |
97					    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
98 CTL_LUN_PAT_NONE,
99 10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
100
101/* 03 READ FULL STATUS */
102{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV |
103					    CTL_CMD_FLAG_OK_ON_BOTH |
104					    CTL_CMD_FLAG_OK_ON_STOPPED |
105					    CTL_CMD_FLAG_OK_ON_INOPERABLE |
106					    CTL_CMD_FLAG_OK_ON_SECONDARY |
107					    CTL_FLAG_DATA_IN |
108					    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
109 CTL_LUN_PAT_NONE,
110 10, { 0x03, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
111
112/* 04-1f */
113};
114
115/* 5F PERSISTENT RESERVE OUT */
116const struct ctl_cmd_entry ctl_cmd_table_5f[32] =
117{
118/* 00 REGISTER */
119{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV |
120						  CTL_CMD_FLAG_OK_ON_BOTH |
121						  CTL_CMD_FLAG_OK_ON_STOPPED |
122						  CTL_CMD_FLAG_OK_ON_INOPERABLE |
123						  CTL_CMD_FLAG_OK_ON_SECONDARY |
124						  CTL_FLAG_DATA_OUT |
125						  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
126 CTL_LUN_PAT_NONE,
127 10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
128
129/* 01 RESERVE */
130{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV |
131						  CTL_CMD_FLAG_OK_ON_BOTH |
132						  CTL_CMD_FLAG_OK_ON_STOPPED |
133						  CTL_CMD_FLAG_OK_ON_INOPERABLE |
134						  CTL_CMD_FLAG_OK_ON_SECONDARY |
135						  CTL_FLAG_DATA_OUT |
136						  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
137 CTL_LUN_PAT_NONE,
138 10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
139
140/* 02 RELEASE */
141{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV |
142						  CTL_CMD_FLAG_OK_ON_BOTH |
143						  CTL_CMD_FLAG_OK_ON_STOPPED |
144						  CTL_CMD_FLAG_OK_ON_INOPERABLE |
145						  CTL_CMD_FLAG_OK_ON_SECONDARY |
146						  CTL_FLAG_DATA_OUT |
147						  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
148 CTL_LUN_PAT_NONE,
149 10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
150
151/* 03 CLEAR */
152{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV |
153						  CTL_CMD_FLAG_OK_ON_BOTH |
154						  CTL_CMD_FLAG_OK_ON_STOPPED |
155						  CTL_CMD_FLAG_OK_ON_INOPERABLE |
156						  CTL_CMD_FLAG_OK_ON_SECONDARY |
157						  CTL_FLAG_DATA_OUT |
158						  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
159 CTL_LUN_PAT_NONE,
160 10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
161
162/* 04 PREEMPT */
163{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV |
164						  CTL_CMD_FLAG_OK_ON_BOTH |
165						  CTL_CMD_FLAG_OK_ON_STOPPED |
166						  CTL_CMD_FLAG_OK_ON_INOPERABLE |
167						  CTL_CMD_FLAG_OK_ON_SECONDARY |
168						  CTL_FLAG_DATA_OUT |
169						  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
170 CTL_LUN_PAT_NONE,
171 10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
172
173/* 05 PREEMPT AND ABORT */
174{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
175
176/* 06 REGISTER AND IGNORE EXISTING KEY */
177{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV |
178						  CTL_CMD_FLAG_OK_ON_BOTH |
179						  CTL_CMD_FLAG_OK_ON_STOPPED |
180						  CTL_CMD_FLAG_OK_ON_INOPERABLE |
181						  CTL_CMD_FLAG_OK_ON_SECONDARY |
182						  CTL_FLAG_DATA_OUT |
183						  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
184 CTL_LUN_PAT_NONE,
185 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
186
187/* 07 REGISTER AND MOVE */
188{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
189
190/* 08-1f */
191};
192
193/* 9E SERVICE ACTION IN(16) */
194const struct ctl_cmd_entry ctl_cmd_table_9e[32] =
195{
196/* 00 */
197{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
198
199/* 01 */
200{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
201
202/* 02 */
203{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
204
205/* 03 */
206{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
207
208/* 04 */
209{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
210
211/* 05 */
212{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
213
214/* 06 */
215{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
216
217/* 07 */
218{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
219
220/* 08 */
221{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
222
223/* 09 */
224{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
225
226/* 0A */
227{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
228
229/* 0B */
230{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
231
232/* 0C */
233{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
234
235/* 0D */
236{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
237
238/* 0E */
239{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
240
241/* 0F */
242{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
243
244/* 10 */
245{ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
246					  CTL_CMD_FLAG_OK_ON_STOPPED |
247					  CTL_CMD_FLAG_OK_ON_INOPERABLE |
248					  CTL_CMD_FLAG_OK_ON_SECONDARY |
249					  CTL_FLAG_DATA_IN |
250					  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
251 CTL_LUN_PAT_READCAP,
252 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
253
254/* 11-1f */
255};
256
257/* A3 MAINTENANCE IN */
258const struct ctl_cmd_entry ctl_cmd_table_a3[32] =
259{
260/* 00 */
261{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
262
263/* 01 */
264{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
265
266/* 02 */
267{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
268
269/* 03 */
270{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
271
272/* 04 */
273{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
274
275/* 05 */
276{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
277
278/* 06 */
279{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
280
281/* 07 */
282{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
283
284/* 08 */
285{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
286
287/* 09 */
288{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
289
290/* 0A REPORT TARGET PORT GROUPS */
291{ctl_report_tagret_port_groups, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH |
292						    CTL_CMD_FLAG_OK_ON_STOPPED |
293						    CTL_CMD_FLAG_OK_ON_INOPERABLE |
294						    CTL_CMD_FLAG_OK_ON_SECONDARY |
295						    CTL_FLAG_DATA_IN,
296 CTL_LUN_PAT_NONE,
297 12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
298
299/* 0B */
300{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
301
302/* 0C REPORT SUPPORTED_OPCODES */
303{ctl_report_supported_opcodes, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH |
304						   CTL_CMD_FLAG_OK_ON_STOPPED |
305						   CTL_CMD_FLAG_OK_ON_INOPERABLE |
306						   CTL_CMD_FLAG_OK_ON_SECONDARY |
307						   CTL_FLAG_DATA_IN,
308 CTL_LUN_PAT_NONE,
309 12, {0x0c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
310
311/* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */
312{ctl_report_supported_tmf, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH |
313					       CTL_CMD_FLAG_OK_ON_STOPPED |
314					       CTL_CMD_FLAG_OK_ON_INOPERABLE |
315					       CTL_CMD_FLAG_OK_ON_SECONDARY |
316					       CTL_FLAG_DATA_IN,
317 CTL_LUN_PAT_NONE,
318 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
319
320/* 0E */
321{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
322
323/* 0F REPORT TIMESTAMP */
324{ctl_report_timestamp, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH |
325					   CTL_CMD_FLAG_OK_ON_STOPPED |
326					   CTL_CMD_FLAG_OK_ON_INOPERABLE |
327					   CTL_CMD_FLAG_OK_ON_SECONDARY |
328					   CTL_FLAG_DATA_IN,
329 CTL_LUN_PAT_NONE,
330 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
331
332/* 10-1f */
333};
334
335const struct ctl_cmd_entry ctl_cmd_table[256] =
336{
337/* 00 TEST UNIT READY */
338{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH |
339			  CTL_FLAG_DATA_NONE |
340			  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
341 CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}},
342
343/* 01 REWIND */
344{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
345
346/* 02 */
347{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
348
349/* 03 REQUEST SENSE */
350{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN |
351				       CTL_CMD_FLAG_OK_ON_ALL_LUNS |
352				       CTL_CMD_FLAG_ALLOW_ON_RESV |
353				       CTL_CMD_FLAG_NO_SENSE |
354				       CTL_CMD_FLAG_OK_ON_STOPPED |
355				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
356				       CTL_CMD_FLAG_OK_ON_OFFLINE |
357				       CTL_CMD_FLAG_OK_ON_SECONDARY |
358				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
359 CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}},
360
361/* 04 FORMAT UNIT */
362{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN |
363				CTL_CMD_FLAG_OK_ON_INOPERABLE |
364				CTL_FLAG_DATA_OUT,
365 CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}},
366
367/* 05 READ BLOCK LIMITS */
368{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
369
370/* 06 */
371{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
372
373/* 07 REASSIGN BLOCKS */
374{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
375
376/* 08 READ(6) */
377{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
378				  CTL_FLAG_DATA_IN |
379				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
380 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
381
382/* 09 */
383{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
384
385/* 0A WRITE(6) */
386{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
387				   CTL_FLAG_DATA_OUT,
388 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
389
390/* 0B SEEK(6) */
391{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
392
393/* 0C */
394{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
395
396/* 0D */
397{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
398
399/* 0E */
400{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
401
402/* 0F READ REVERSE(6) */
403{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
404
405/* 10 WRITE FILEMARKS(6) */
406{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
407
408/* 11 SPACE(6) */
409{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
410
411/* 12 INQUIRY */
412{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
413			      CTL_CMD_FLAG_ALLOW_ON_RESV |
414			      CTL_CMD_FLAG_NO_SENSE |
415			      CTL_CMD_FLAG_OK_ON_STOPPED |
416			      CTL_CMD_FLAG_OK_ON_INOPERABLE |
417			      CTL_CMD_FLAG_OK_ON_OFFLINE |
418			      CTL_CMD_FLAG_OK_ON_SECONDARY |
419			      CTL_FLAG_DATA_IN |
420			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
421 CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}},
422
423/* 13 */
424{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
425
426/* 14 RECOVER BUFFERED DATA */
427{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
428
429/* 15 MODE SELECT(6) */
430{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
431				     CTL_CMD_FLAG_OK_ON_STOPPED |
432				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
433				     CTL_CMD_FLAG_OK_ON_SECONDARY |
434				     CTL_FLAG_DATA_OUT,
435 CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}},
436
437/* 16 RESERVE(6) */
438{ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV |
439				    CTL_CMD_FLAG_OK_ON_BOTH |
440				    CTL_CMD_FLAG_OK_ON_STOPPED |
441				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
442				    CTL_CMD_FLAG_OK_ON_SECONDARY |
443				    CTL_FLAG_DATA_OUT,
444 CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
445
446/* 17 RELEASE(6) */
447{ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV |
448				   CTL_CMD_FLAG_OK_ON_BOTH |
449				   CTL_CMD_FLAG_OK_ON_STOPPED |
450				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
451				   CTL_CMD_FLAG_OK_ON_SECONDARY |
452				   CTL_FLAG_DATA_NONE,
453 CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
454
455/* 18 COPY */
456{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
457
458/* 19 ERASE(6) */
459{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
460
461/* 1A MODE SENSE(6) */
462{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
463				    CTL_CMD_FLAG_OK_ON_STOPPED |
464				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
465				    CTL_CMD_FLAG_OK_ON_SECONDARY |
466				    CTL_FLAG_DATA_IN |
467				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
468 CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0, 0xff, 0x07}},
469
470/* 1B START STOP UNIT */
471{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
472				   CTL_CMD_FLAG_OK_ON_STOPPED |
473				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
474				   CTL_CMD_FLAG_OK_ON_OFFLINE |
475				   CTL_FLAG_DATA_NONE |
476				   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
477 CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}},
478
479/* 1C RECEIVE DIAGNOSTIC RESULTS */
480{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
481
482/* 1D SEND DIAGNOSTIC */
483{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
484
485/* 1E PREVENT ALLOW MEDIUM REMOVAL */
486{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
487
488/* 1F */
489{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
490
491/* 20 */
492{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
493
494/* 21 */
495{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
496
497/* 22 */
498{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
499
500/* 23 */
501{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
502
503/* 24 SET WINDOW */
504{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
505
506/* 25 READ CAPACITY(10) */
507{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN|
508				       CTL_CMD_FLAG_OK_ON_STOPPED |
509				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
510				       CTL_CMD_FLAG_OK_ON_SECONDARY |
511				       CTL_FLAG_DATA_IN |
512				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
513 CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}},
514
515/* 26 */
516{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
517
518/* 27 */
519{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
520
521/* 28 READ(10) */
522{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
523				  CTL_FLAG_DATA_IN |
524				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
525 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
526 10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
527
528/* 29 READ GENERATION */
529{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
530
531/* 2A WRITE(10) */
532{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
533 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
534 10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
535
536/* 2B SEEK(10) */
537{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
538
539/* 2C ERASE(10) */
540{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
541
542/* 2D READ UPDATED BLOCK */
543{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
544
545/* 2E WRITE AND VERIFY(10) */
546{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
547 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
548 10, {0x10, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
549
550/* 2F VERIFY(10) */
551{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
552			      CTL_FLAG_DATA_OUT |
553			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
554 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
555 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
556
557/* 30 SEARCH DATA HIGH(10) */
558{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
559
560/* 31 SEARCH DATA EQUAL(10) */
561{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
562
563/* 32 SEARCH DATA LOW(10) */
564{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
565
566/* 33 SET LIMITS(10) */
567{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
568
569/* 34 PRE-FETCH(10) */
570{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
571
572/* 35 SYNCHRONIZE CACHE(10) */
573{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
574				   CTL_FLAG_DATA_NONE,
575 CTL_LUN_PAT_NONE,
576 10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
577
578/* 36 LOCK UNLOCK CACHE(10) */
579{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
580
581/* 37 READ DEFECT DATA(10) */
582{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
583
584/* 38 MEDIUM SCAN */
585{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
586
587/* 39 COMPARE */
588{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
589
590/* 3A COPY AND VERIFY */
591{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
592
593/* 3B WRITE BUFFER */
594{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
595				      CTL_FLAG_DATA_OUT,
596 CTL_LUN_PAT_NONE,
597 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
598
599/* 3C READ BUFFER */
600{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
601				     CTL_FLAG_DATA_IN |
602				     CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
603 CTL_LUN_PAT_NONE,
604 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
605
606/* 3D UPDATE BLOCK */
607{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
608
609/* 3E READ LONG */
610{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
611
612/* 3F WRITE LONG */
613{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
614
615/* 40 CHANGE DEFINITION */
616{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
617
618/* 41 WRITE SAME(10) */
619{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
620				   CTL_FLAG_DATA_OUT,
621 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
622 10, {0x0a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
623
624/* 42 READ SUB-CHANNEL / UNMAP */
625{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT,
626 CTL_LUN_PAT_WRITE,
627 10, {0, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
628
629/* 43 READ TOC/PMA/ATIP */
630{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
631
632/* 44 REPORT DENSITY SUPPORT */
633{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
634
635/* 45 PLAY AUDIO(10) */
636{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
637
638/* 46 GET CONFIGURATION */
639{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
640
641/* 47 PLAY AUDIO MSF */
642{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
643
644/* 48 PLAY AUDIO TRACK INDEX */
645{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
646
647/* 49 PLAY TRACK RELATIVE(10) */
648{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
649
650/* 4A GET EVENT STATUS NOTIFICATION */
651{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
652
653/* 4B PAUSE/RESUME */
654{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
655
656/* 4C LOG SELECT */
657{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
658
659/* 4D LOG SENSE */
660{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
661
662/* 4E STOP PLAY/SCAN */
663{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
664
665/* 4F */
666{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
667
668/* 50 XDWRITE(10) */
669{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
670
671/* 51 XPWRITE(10) */
672{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
673
674/* 52 XDREAD(10) */
675{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
676
677/* 53 RESERVE TRACK */
678{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
679
680/* 54 SEND OPC INFORMATION */
681{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
682
683/* 55 MODE SELECT(10) */
684{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
685				     CTL_CMD_FLAG_OK_ON_STOPPED |
686				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
687				     CTL_CMD_FLAG_OK_ON_SECONDARY |
688				     CTL_FLAG_DATA_OUT,
689 CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} },
690
691/* 56 RESERVE(10) */
692{ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV |
693				    CTL_CMD_FLAG_OK_ON_BOTH |
694				    CTL_CMD_FLAG_OK_ON_STOPPED |
695				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
696				    CTL_CMD_FLAG_OK_ON_SECONDARY |
697				    CTL_FLAG_DATA_OUT,
698 CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
699
700/* 57 RELEASE(10) */
701{ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV |
702				   CTL_CMD_FLAG_OK_ON_BOTH |
703				   CTL_CMD_FLAG_OK_ON_STOPPED |
704				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
705				   CTL_CMD_FLAG_OK_ON_SECONDARY |
706				   CTL_FLAG_DATA_OUT,
707 CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
708
709/* 58 REPAIR TRACK */
710{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
711
712/* 59 READ MASTER CUE */
713{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
714
715/* 5A MODE SENSE(10) */
716{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
717				    CTL_CMD_FLAG_OK_ON_STOPPED |
718				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
719				    CTL_CMD_FLAG_OK_ON_SECONDARY |
720				    CTL_FLAG_DATA_IN |
721				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
722 CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0x07} },
723
724/* 5B CLOSE TRACK/SESSION */
725{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
726
727/* 5C READ BUFFER CAPACITY */
728{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
729
730/* 5D SEND CUE SHEET */
731{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
732
733/* 5E PERSISTENT RESERVE IN */
734{__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
735 CTL_LUN_PAT_NONE},
736
737/* 5F PERSISTENT RESERVE OUT */
738{__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
739 CTL_LUN_PAT_NONE},
740
741/* 60 */
742{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
743
744/* 61 */
745{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
746
747/* 62 */
748{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
749
750/* 63 */
751{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
752
753/* 64 */
754{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
755
756/* 65 */
757{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
758
759/* 66 */
760{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
761
762/* 67 */
763{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
764
765/* 68 */
766{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
767
768/* 69 */
769{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
770
771/* 6A */
772{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
773
774/* 6B */
775{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
776
777/* 6C */
778{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
779
780/* 6D */
781{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
782
783/* 6E */
784{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
785
786/* 6F */
787{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
788
789/* 70 */
790{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
791
792/* 71 */
793{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
794
795/* 72 */
796{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
797
798/* 73 */
799{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
800
801/* 74 */
802{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
803
804/* 75 */
805{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
806
807/* 76 */
808{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
809
810/* 77 */
811{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
812
813/* 78 */
814{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
815
816/* 79 */
817{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
818
819/* 7A */
820{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
821
822/* 7B */
823{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
824
825/* 7C */
826{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
827
828/* 7D */
829{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
830
831/* 7E */
832{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
833
834/* 7F */
835{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
836
837/* 80 XDWRITE EXTENDED(16) */
838{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
839
840/* 81 REBUILD(16) */
841{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
842
843/* 82 REGENERATE(16) */
844{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
845
846/* 83 EXTENDED COPY */
847{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
848
849/* 84 RECEIVE COPY RESULTS */
850{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
851
852/* 85 */
853{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
854
855/* 86 ACCESS CONTROL IN */
856{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
857
858/* 87 ACCESS CONTROL OUT */
859{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
860
861/* 88 READ(16) */
862{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
863                                  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
864 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
865 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
866      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
867
868/* 89 COMPARE AND WRITE */
869{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
870 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
871 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
872      0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}},
873
874/* 8A WRITE(16) */
875{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
876 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
877 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
878      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
879
880/* 8B */
881{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
882
883/* 8C READ ATTRIBUTE */
884{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
885
886/* 8D WRITE ATTRIBUTE */
887{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
888
889/* 8E WRITE AND VERIFY(16) */
890{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
891 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
892 16, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
893      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
894
895/* 8F VERIFY(16) */
896{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
897			      CTL_FLAG_DATA_OUT |
898			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
899 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
900 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
901      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
902
903/* 90 PRE-FETCH(16) */
904{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
905
906/* 91 SYNCHRONIZE CACHE(16) */
907{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
908				   CTL_FLAG_DATA_NONE,
909 CTL_LUN_PAT_NONE,
910 16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
911      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
912
913/* 92 LOCK UNLOCK CACHE(16) */
914{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
915
916/* 93 WRITE SAME(16) */
917{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
918				   CTL_FLAG_DATA_OUT,
919 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
920 16, {0x0a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
921      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
922
923/* 94 */
924{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
925
926/* 95 */
927{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
928
929/* 96 */
930{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
931
932/* 97 */
933{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
934
935/* 98 */
936{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
937
938/* 99 */
939{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
940
941/* 9A */
942{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
943
944/* 9B */
945{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
946
947/* 9C */
948{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
949
950/* 9D */
951{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
952
953/* 9E SERVICE ACTION IN(16) */
954{__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
955 CTL_LUN_PAT_NONE},
956
957/* 9F SERVICE ACTION OUT(16) */
958{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
959
960/* A0 REPORT LUNS */
961{ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
962				  CTL_CMD_FLAG_ALLOW_ON_RESV |
963				  CTL_CMD_FLAG_NO_SENSE |
964				  CTL_CMD_FLAG_OK_ON_STOPPED |
965				  CTL_CMD_FLAG_OK_ON_INOPERABLE |
966				  CTL_CMD_FLAG_OK_ON_OFFLINE |
967				  CTL_CMD_FLAG_OK_ON_SECONDARY |
968				  CTL_FLAG_DATA_IN |
969				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
970 CTL_LUN_PAT_NONE,
971 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
972
973/* A1 BLANK */
974{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
975
976/* A2 SEND EVENT */
977{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
978
979/* A3 MAINTENANCE IN */
980{__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
981 CTL_LUN_PAT_NONE},
982
983/* A4 MAINTENANCE OUT */
984{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
985
986/* A5 MOVE MEDIUM */
987{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
988
989/* A6 EXCHANGE MEDIUM */
990{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
991
992/* A7 MOVE MEDIUM ATTACHED */
993{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
994
995/* A8 READ(12) */
996{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
997                                  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
998 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
999 12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1000
1001/* A9 PLAY TRACK RELATIVE(12) */
1002{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1003
1004/* AA WRITE(12) */
1005{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1006 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1007 12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1008
1009/* AB SERVICE ACTION IN(12) */
1010{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1011
1012/* AC ERASE(12) */
1013{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1014
1015/* AD READ DVD STRUCTURE */
1016{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1017
1018/* AE WRITE AND VERIFY(12) */
1019{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1020 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1021 12, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1022
1023/* AF VERIFY(12) */
1024{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
1025			      CTL_FLAG_DATA_OUT |
1026			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1027 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1028 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1029
1030/* B0 SEARCH DATA HIGH(12) */
1031{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1032
1033/* B1 SEARCH DATA EQUAL(12) */
1034{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1035
1036/* B2 SEARCH DATA LOW(12) */
1037{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1038
1039/* B3 SET LIMITS(12) */
1040{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1041
1042/* B4 READ ELEMENT STATUS ATTACHED */
1043{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1044
1045/* B5 REQUEST VOLUME ELEMENT ADDRESS */
1046{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1047
1048/* B6 SEND VOLUME TAG */
1049{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1050
1051/* B7 READ DEFECT DATA(12) */
1052{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1053
1054/* B8 READ ELEMENT STATUS */
1055{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1056
1057/* B9 READ CD MSF */
1058{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1059
1060/* BA REDUNDANCY GROUP IN */
1061{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1062
1063/* BB REDUNDANCY GROUP OUT */
1064{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1065
1066/* BC SPARE IN */
1067{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1068
1069/* BD SPARE OUT */
1070{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1071
1072/* BE VOLUME SET IN */
1073{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1074
1075/* BF VOLUME SET OUT */
1076{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1077
1078/* C0 - ISC_SEND_MSG_SHORT */
1079//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1080{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE,
1081 CTL_LUN_PAT_NONE,
1082 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1083      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1084
1085/* C1 - ISC_SEND_MSG */
1086//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1087{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
1088 CTL_LUN_PAT_NONE,
1089 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1090      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1091
1092/* C2 - ISC_WRITE */
1093//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1094{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
1095 CTL_LUN_PAT_NONE,
1096 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1097      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1098
1099/* C3 - ISC_READ */
1100//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1101{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN,
1102 CTL_LUN_PAT_NONE,
1103 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1104      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1105
1106/* C4 */
1107{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1108
1109/* C5 */
1110{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1111
1112/* C6 */
1113{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1114
1115/* C7 */
1116{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1117
1118/* C8 */
1119{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1120
1121/* C9 */
1122{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1123
1124/* CA */
1125{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1126
1127/* CB */
1128{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1129
1130/* CC */
1131{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1132
1133/* CD */
1134{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1135
1136/* CE */
1137{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1138
1139/* CF */
1140{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1141
1142/* D0 */
1143{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1144
1145/* D1 */
1146{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1147
1148/* D2 */
1149{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1150
1151/* D3 */
1152{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1153
1154/* D4 */
1155{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1156
1157/* D5 */
1158{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1159
1160/* D6 */
1161{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1162
1163/* D7 */
1164{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1165
1166/* D8 */
1167{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1168
1169/* D9 */
1170{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1171
1172/* DA */
1173{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1174
1175/* DB */
1176{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1177
1178/* DC */
1179{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1180
1181/* DD */
1182{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1183
1184/* DE */
1185{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1186
1187/* DF */
1188{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1189
1190/* E0 */
1191{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1192
1193/* E1 */
1194{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1195
1196/* E2 */
1197{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1198
1199/* E3 */
1200{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1201
1202/* E4 */
1203{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1204
1205/* E5 */
1206{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1207
1208/* E6 */
1209{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1210
1211/* E7 */
1212{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1213
1214/* E8 */
1215{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1216
1217/* E9 */
1218{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1219
1220/* EA */
1221{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1222
1223/* EB */
1224{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1225
1226/* EC */
1227{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1228
1229/* ED */
1230{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1231
1232/* EE */
1233{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1234
1235/* EF */
1236{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1237
1238/* F0 */
1239{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1240
1241/* F1 */
1242{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1243
1244/* F2 */
1245{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1246
1247/* F3 */
1248{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1249
1250/* F4 */
1251{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1252
1253/* F5 */
1254{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1255
1256/* F6 */
1257{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1258
1259/* F7 */
1260{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1261
1262/* F8 */
1263{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1264
1265/* F9 */
1266{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1267
1268/* FA */
1269{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1270
1271/* FB */
1272{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1273
1274/* FC */
1275{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1276
1277/* FD */
1278{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1279
1280/* FE */
1281{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1282
1283/* FF */
1284{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}
1285
1286};
1287