ctl_cmd_table.c revision 273315
1229997Sken/*-
2229997Sken * Copyright (c) 2003, 2004, 2005, 2009 Silicon Graphics International Corp.
3229997Sken * All rights reserved.
4229997Sken *
5229997Sken * Redistribution and use in source and binary forms, with or without
6229997Sken * modification, are permitted provided that the following conditions
7229997Sken * are met:
8229997Sken * 1. Redistributions of source code must retain the above copyright
9229997Sken *    notice, this list of conditions, and the following disclaimer,
10229997Sken *    without modification.
11229997Sken * 2. Redistributions in binary form must reproduce at minimum a disclaimer
12229997Sken *    substantially similar to the "NO WARRANTY" disclaimer below
13229997Sken *    ("Disclaimer") and any redistribution must be conditioned upon
14229997Sken *    including a substantially similar Disclaimer requirement for further
15229997Sken *    binary redistribution.
16229997Sken *
17229997Sken * NO WARRANTY
18229997Sken * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19229997Sken * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20229997Sken * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
21229997Sken * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22229997Sken * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23229997Sken * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24229997Sken * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25229997Sken * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26229997Sken * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27229997Sken * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28229997Sken * POSSIBILITY OF SUCH DAMAGES.
29229997Sken *
30229997Sken * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_cmd_table.c#4 $
31229997Sken * $FreeBSD: stable/10/sys/cam/ctl/ctl_cmd_table.c 273315 2014-10-20 07:41:37Z mav $
32229997Sken */
33229997Sken/*
34229997Sken * CAM Target Layer command table.
35229997Sken *
36229997Sken * Author: Ken Merry <ken@FreeBSD.org>, Kim Le
37229997Sken */
38229997Sken
39229997Sken#include <sys/cdefs.h>
40229997Sken#include <sys/param.h>
41229997Sken#include <sys/systm.h>
42229997Sken#include <sys/kernel.h>
43229997Sken#include <sys/types.h>
44229997Sken#include <sys/malloc.h>
45229997Sken#include <sys/condvar.h>
46229997Sken#include <sys/queue.h>
47233963Sken#include <sys/sysctl.h>
48229997Sken
49229997Sken#include <cam/scsi/scsi_all.h>
50229997Sken#include <cam/scsi/scsi_da.h>
51229997Sken#include <cam/ctl/ctl_io.h>
52229997Sken#include <cam/ctl/ctl.h>
53229997Sken#include <cam/ctl/ctl_frontend.h>
54229997Sken#include <cam/ctl/ctl_backend.h>
55229997Sken#include <cam/ctl/ctl_frontend_internal.h>
56229997Sken#include <cam/ctl/ctl_ioctl.h>
57229997Sken#include <cam/ctl/ctl_ha.h>
58229997Sken#include <cam/ctl/ctl_private.h>
59229997Sken
60229997Sken/*
61268674Smav * Whenever support for a new command is added, it should be added to these
62268674Smav * tables.
63229997Sken */
64268674Smav
65268674Smav/* 5E PERSISTENT RESERVE IN */
66268674Smavconst struct ctl_cmd_entry ctl_cmd_table_5e[32] =
67229997Sken{
68268674Smav/* 00 READ KEYS */
69269295Smav{ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
70268674Smav						CTL_CMD_FLAG_OK_ON_BOTH |
71268674Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
72268674Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
73273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
74268674Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
75268674Smav						CTL_FLAG_DATA_IN |
76268674Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
77268674Smav CTL_LUN_PAT_NONE,
78268674Smav 10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
79268674Smav
80268674Smav/* 01 READ RESERVATION */
81269295Smav{ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
82268674Smav						CTL_CMD_FLAG_OK_ON_BOTH |
83268674Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
84268674Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
85273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
86268674Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
87268674Smav						CTL_FLAG_DATA_IN |
88268674Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
89268674Smav CTL_LUN_PAT_NONE,
90268674Smav 10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
91268674Smav
92268674Smav/* 02 REPORT CAPABILITIES */
93268674Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV |
94268674Smav					    CTL_CMD_FLAG_OK_ON_BOTH |
95268674Smav					    CTL_CMD_FLAG_OK_ON_STOPPED |
96268674Smav					    CTL_CMD_FLAG_OK_ON_INOPERABLE |
97273315Smav					    CTL_CMD_FLAG_OK_ON_OFFLINE |
98268674Smav					    CTL_CMD_FLAG_OK_ON_SECONDARY |
99268674Smav					    CTL_FLAG_DATA_IN |
100268674Smav					    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
101268674Smav CTL_LUN_PAT_NONE,
102268674Smav 10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
103268674Smav
104268674Smav/* 03 READ FULL STATUS */
105268694Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV |
106268694Smav					    CTL_CMD_FLAG_OK_ON_BOTH |
107268694Smav					    CTL_CMD_FLAG_OK_ON_STOPPED |
108268694Smav					    CTL_CMD_FLAG_OK_ON_INOPERABLE |
109273315Smav					    CTL_CMD_FLAG_OK_ON_OFFLINE |
110268694Smav					    CTL_CMD_FLAG_OK_ON_SECONDARY |
111268694Smav					    CTL_FLAG_DATA_IN |
112268694Smav					    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
113268694Smav CTL_LUN_PAT_NONE,
114268694Smav 10, { 0x03, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
115268674Smav
116268674Smav/* 04-1f */
117268674Smav};
118268674Smav
119268674Smav/* 5F PERSISTENT RESERVE OUT */
120268674Smavconst struct ctl_cmd_entry ctl_cmd_table_5f[32] =
121268674Smav{
122268674Smav/* 00 REGISTER */
123269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
124269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
125269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
126269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
127273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
128269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
129269295Smav						CTL_FLAG_DATA_OUT |
130269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
131268674Smav CTL_LUN_PAT_NONE,
132268674Smav 10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
133268674Smav
134268674Smav/* 01 RESERVE */
135269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
136269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
137269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
138269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
139273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
140269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
141269295Smav						CTL_FLAG_DATA_OUT |
142269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
143268674Smav CTL_LUN_PAT_NONE,
144268674Smav 10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
145268674Smav
146268674Smav/* 02 RELEASE */
147269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
148269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
149269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
150269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
151273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
152269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
153269295Smav						CTL_FLAG_DATA_OUT |
154269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
155268674Smav CTL_LUN_PAT_NONE,
156268674Smav 10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
157268674Smav
158268674Smav/* 03 CLEAR */
159269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
160269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
161269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
162269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
163273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
164269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
165269295Smav						CTL_FLAG_DATA_OUT |
166269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
167268674Smav CTL_LUN_PAT_NONE,
168268674Smav 10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
169268674Smav
170268674Smav/* 04 PREEMPT */
171269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
172269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
173269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
174269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
175273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
176269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
177269295Smav						CTL_FLAG_DATA_OUT |
178269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
179268674Smav CTL_LUN_PAT_NONE,
180268674Smav 10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
181268674Smav
182268674Smav/* 05 PREEMPT AND ABORT */
183268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
184268674Smav
185268674Smav/* 06 REGISTER AND IGNORE EXISTING KEY */
186269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
187269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
188269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
189269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
190273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
191269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
192269295Smav						CTL_FLAG_DATA_OUT |
193269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
194268674Smav CTL_LUN_PAT_NONE,
195268674Smav 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
196268674Smav
197268674Smav/* 07 REGISTER AND MOVE */
198268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
199268674Smav
200268674Smav/* 08-1f */
201268674Smav};
202268674Smav
203269296Smav/* 83 EXTENDED COPY */
204269296Smavconst struct ctl_cmd_entry ctl_cmd_table_83[32] =
205269296Smav{
206269296Smav/* 00 EXTENDED COPY (LID1) */
207269296Smav{ctl_extended_copy_lid1, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
208269296Smav					    CTL_FLAG_DATA_OUT,
209269296Smav CTL_LUN_PAT_NONE,
210269296Smav 16, { 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
211269296Smav
212269296Smav/* 01 EXTENDED COPY (LID4) */
213269296Smav{ctl_extended_copy_lid4, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
214269296Smav					    CTL_FLAG_DATA_OUT,
215269296Smav CTL_LUN_PAT_NONE,
216269296Smav 16, { 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
217269296Smav
218269296Smav/* 02 */
219269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
220269296Smav
221269296Smav/* 03 */
222269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
223269296Smav
224269296Smav/* 04 */
225269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
226269296Smav
227269296Smav/* 05 */
228269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
229269296Smav
230269296Smav/* 06 */
231269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
232269296Smav
233269296Smav/* 07 */
234269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
235269296Smav
236269296Smav/* 08 */
237269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
238269296Smav
239269296Smav/* 09 */
240269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
241269296Smav
242269296Smav/* 0A */
243269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
244269296Smav
245269296Smav/* 0B */
246269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
247269296Smav
248269296Smav/* 0C */
249269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
250269296Smav
251269296Smav/* 0D */
252269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
253269296Smav
254269296Smav/* 0E */
255269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
256269296Smav
257269296Smav/* 0F */
258269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
259269296Smav
260269296Smav/* 10 POPULATE TOKEN */
261270106Smav{ctl_populate_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
262270106Smav					CTL_FLAG_DATA_OUT,
263270106Smav CTL_LUN_PAT_NONE,
264270106Smav 16, { 0x10, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff,
265270106Smav       0xff, 0xff, 0xff, 0xff, 0, 0x07}},
266269296Smav
267269296Smav/* 11 WRITE USING TOKEN */
268270106Smav{ctl_write_using_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
269270106Smav					CTL_FLAG_DATA_OUT,
270270106Smav CTL_LUN_PAT_NONE,
271270106Smav 16, { 0x11, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff,
272270106Smav       0xff, 0xff, 0xff, 0xff, 0, 0x07}},
273269296Smav
274269296Smav/* 12 */
275269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
276269296Smav
277269296Smav/* 13 */
278269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
279269296Smav
280269296Smav/* 14 */
281269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
282269296Smav
283269296Smav/* 15 */
284269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
285269296Smav
286269296Smav/* 16 */
287269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
288269296Smav
289269296Smav/* 17 */
290269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
291269296Smav
292269296Smav/* 18 */
293269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
294269296Smav
295269296Smav/* 19 */
296269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
297269296Smav
298269296Smav/* 1A */
299269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
300269296Smav
301269296Smav/* 1B */
302269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
303269296Smav
304269296Smav/* 1C COPY OPERATION ABORT */
305269296Smav{ctl_copy_operation_abort, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
306269296Smav					      CTL_FLAG_DATA_NONE,
307269296Smav CTL_LUN_PAT_NONE,
308269296Smav 16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}},
309269296Smav};
310269296Smav
311269296Smav/* 84 RECEIVE COPY STATUS */
312269296Smavconst struct ctl_cmd_entry ctl_cmd_table_84[32] =
313269296Smav{
314269296Smav/* 00 RECEIVE COPY STATUS (LID1) */
315269296Smav{ctl_receive_copy_status_lid1, CTL_SERIDX_RD_CAP,
316269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
317272633Smav CTL_FLAG_DATA_IN |
318272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
319269296Smav CTL_LUN_PAT_NONE,
320269296Smav 16, {0x00, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
321269296Smav
322269296Smav/* 01 RECEIVE COPY DATA (LID1) */
323269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
324269296Smav
325269296Smav/* 02 */
326269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
327269296Smav
328269296Smav/* 03 RECEIVE COPY OPERATING PARAMETERS */
329269296Smav{ctl_receive_copy_operating_parameters, CTL_SERIDX_RD_CAP,
330269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
331269296Smav CTL_CMD_FLAG_OK_ON_STOPPED |
332269296Smav CTL_CMD_FLAG_OK_ON_INOPERABLE |
333269296Smav CTL_CMD_FLAG_OK_ON_SECONDARY |
334272633Smav CTL_FLAG_DATA_IN |
335272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
336269296Smav CTL_LUN_PAT_NONE,
337269296Smav 16, {0x03, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
338269296Smav
339269296Smav/* 04 RECEIVE COPY FAILURE DETAILS (LID1) */
340269296Smav{ctl_receive_copy_failure_details, CTL_SERIDX_RD_CAP,
341269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
342272633Smav CTL_FLAG_DATA_IN |
343272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
344269296Smav CTL_LUN_PAT_NONE,
345269296Smav 16, {0x04, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
346269296Smav
347269296Smav/* 05 RECEIVE COPY STATUS (LID4) */
348269296Smav{ctl_receive_copy_status_lid4, CTL_SERIDX_RD_CAP,
349269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
350269296Smav CTL_FLAG_DATA_IN,
351269296Smav CTL_LUN_PAT_NONE,
352269296Smav 16, {0x05, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
353269296Smav
354269296Smav/* 06 RECEIVE COPY DATA (LID4)*/
355269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
356269296Smav
357269296Smav/* 07 RECEIVE ROD TOKEN INFORMATION */
358270106Smav{ctl_receive_rod_token_information, CTL_SERIDX_RD_CAP,
359270106Smav CTL_CMD_FLAG_OK_ON_BOTH |
360270106Smav CTL_FLAG_DATA_IN,
361270106Smav CTL_LUN_PAT_NONE,
362270106Smav 16, {0x07, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
363269296Smav
364269296Smav/* 08 REPORT ALL ROD TOKENS */
365270106Smav{ctl_report_all_rod_tokens, CTL_SERIDX_RD_CAP,
366270106Smav CTL_CMD_FLAG_OK_ON_BOTH |
367270106Smav CTL_FLAG_DATA_IN,
368270106Smav CTL_LUN_PAT_NONE,
369270106Smav 16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
370269296Smav};
371269296Smav
372268674Smav/* 9E SERVICE ACTION IN(16) */
373268674Smavconst struct ctl_cmd_entry ctl_cmd_table_9e[32] =
374268674Smav{
375268674Smav/* 00 */
376268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
377268674Smav
378268674Smav/* 01 */
379268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
380268674Smav
381268674Smav/* 02 */
382268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
383268674Smav
384268674Smav/* 03 */
385268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
386268674Smav
387268674Smav/* 04 */
388268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
389268674Smav
390268674Smav/* 05 */
391268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
392268674Smav
393268674Smav/* 06 */
394268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
395268674Smav
396268674Smav/* 07 */
397268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
398268674Smav
399268674Smav/* 08 */
400268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
401268674Smav
402268674Smav/* 09 */
403268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
404268674Smav
405268674Smav/* 0A */
406268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
407268674Smav
408268674Smav/* 0B */
409268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
410268674Smav
411268674Smav/* 0C */
412268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
413268674Smav
414268674Smav/* 0D */
415268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
416268674Smav
417268674Smav/* 0E */
418268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
419268674Smav
420268674Smav/* 0F */
421268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
422268674Smav
423268674Smav/* 10 */
424268674Smav{ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
425268674Smav					  CTL_CMD_FLAG_OK_ON_STOPPED |
426268674Smav					  CTL_CMD_FLAG_OK_ON_INOPERABLE |
427268674Smav					  CTL_CMD_FLAG_OK_ON_SECONDARY |
428268674Smav					  CTL_FLAG_DATA_IN |
429268674Smav					  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
430268674Smav CTL_LUN_PAT_READCAP,
431268674Smav 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
432268674Smav
433268674Smav/* 11-1f */
434268674Smav};
435268674Smav
436268674Smav/* A3 MAINTENANCE IN */
437268674Smavconst struct ctl_cmd_entry ctl_cmd_table_a3[32] =
438268674Smav{
439268674Smav/* 00 */
440268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
441268674Smav
442268674Smav/* 01 */
443268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
444268674Smav
445268674Smav/* 02 */
446268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
447268674Smav
448268674Smav/* 03 */
449268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
450268674Smav
451268674Smav/* 04 */
452268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
453268674Smav
454268674Smav/* 05 */
455268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
456268674Smav
457268674Smav/* 06 */
458268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
459268674Smav
460268674Smav/* 07 */
461268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
462268674Smav
463268674Smav/* 08 */
464268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
465268674Smav
466268674Smav/* 09 */
467268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
468268674Smav
469268674Smav/* 0A REPORT TARGET PORT GROUPS */
470269295Smav{ctl_report_tagret_port_groups, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
471269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
472269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
473273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
474269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
475269295Smav						CTL_FLAG_DATA_IN,
476268674Smav CTL_LUN_PAT_NONE,
477268674Smav 12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
478268674Smav
479268674Smav/* 0B */
480268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
481268674Smav
482268674Smav/* 0C REPORT SUPPORTED_OPCODES */
483269295Smav{ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
484269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
485269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
486273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
487269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
488272633Smav						CTL_FLAG_DATA_IN |
489272633Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
490268674Smav CTL_LUN_PAT_NONE,
491268674Smav 12, {0x0c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
492268674Smav
493268674Smav/* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */
494269295Smav{ctl_report_supported_tmf, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
495269295Smav					   CTL_CMD_FLAG_OK_ON_STOPPED |
496269295Smav					   CTL_CMD_FLAG_OK_ON_INOPERABLE |
497273315Smav					   CTL_CMD_FLAG_OK_ON_OFFLINE |
498269295Smav					   CTL_CMD_FLAG_OK_ON_SECONDARY |
499272633Smav					   CTL_FLAG_DATA_IN |
500272633Smav					   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
501268674Smav CTL_LUN_PAT_NONE,
502268674Smav 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
503268674Smav
504268675Smav/* 0E */
505268675Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
506268675Smav
507268675Smav/* 0F REPORT TIMESTAMP */
508269295Smav{ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
509269295Smav					CTL_CMD_FLAG_OK_ON_STOPPED |
510269295Smav					CTL_CMD_FLAG_OK_ON_INOPERABLE |
511273315Smav					CTL_CMD_FLAG_OK_ON_OFFLINE |
512269295Smav					CTL_CMD_FLAG_OK_ON_SECONDARY |
513269295Smav					CTL_FLAG_DATA_IN,
514268675Smav CTL_LUN_PAT_NONE,
515268675Smav 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
516268675Smav
517268675Smav/* 10-1f */
518268674Smav};
519268674Smav
520268674Smavconst struct ctl_cmd_entry ctl_cmd_table[256] =
521268674Smav{
522229997Sken/* 00 TEST UNIT READY */
523229997Sken{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH |
524229997Sken			  CTL_FLAG_DATA_NONE |
525229997Sken			  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
526268674Smav CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}},
527229997Sken
528229997Sken/* 01 REWIND */
529229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
530229997Sken
531229997Sken/* 02 */
532229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
533229997Sken
534229997Sken/* 03 REQUEST SENSE */
535229997Sken{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN |
536229997Sken				       CTL_CMD_FLAG_OK_ON_ALL_LUNS |
537229997Sken				       CTL_CMD_FLAG_ALLOW_ON_RESV |
538229997Sken				       CTL_CMD_FLAG_NO_SENSE |
539229997Sken				       CTL_CMD_FLAG_OK_ON_STOPPED |
540229997Sken				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
541229997Sken				       CTL_CMD_FLAG_OK_ON_OFFLINE |
542229997Sken				       CTL_CMD_FLAG_OK_ON_SECONDARY |
543229997Sken				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
544268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}},
545229997Sken
546229997Sken/* 04 FORMAT UNIT */
547229997Sken{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN |
548229997Sken				CTL_CMD_FLAG_OK_ON_INOPERABLE |
549229997Sken				CTL_FLAG_DATA_OUT,
550268674Smav CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}},
551229997Sken
552229997Sken/* 05 READ BLOCK LIMITS */
553229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
554229997Sken
555229997Sken/* 06 */
556229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
557229997Sken
558229997Sken/* 07 REASSIGN BLOCKS */
559229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
560229997Sken
561229997Sken/* 08 READ(6) */
562229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
563229997Sken				  CTL_FLAG_DATA_IN |
564229997Sken				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
565268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
566229997Sken
567229997Sken/* 09 */
568229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
569229997Sken
570229997Sken/* 0A WRITE(6) */
571229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
572229997Sken				   CTL_FLAG_DATA_OUT,
573268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
574229997Sken
575229997Sken/* 0B SEEK(6) */
576229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
577229997Sken
578229997Sken/* 0C */
579229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
580229997Sken
581229997Sken/* 0D */
582229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
583229997Sken
584229997Sken/* 0E */
585229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
586229997Sken
587229997Sken/* 0F READ REVERSE(6) */
588229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
589229997Sken
590229997Sken/* 10 WRITE FILEMARKS(6) */
591229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
592229997Sken
593229997Sken/* 11 SPACE(6) */
594229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
595229997Sken
596229997Sken/* 12 INQUIRY */
597229997Sken{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
598229997Sken			      CTL_CMD_FLAG_ALLOW_ON_RESV |
599229997Sken			      CTL_CMD_FLAG_NO_SENSE |
600229997Sken			      CTL_CMD_FLAG_OK_ON_STOPPED |
601229997Sken			      CTL_CMD_FLAG_OK_ON_INOPERABLE |
602229997Sken			      CTL_CMD_FLAG_OK_ON_OFFLINE |
603229997Sken			      CTL_CMD_FLAG_OK_ON_SECONDARY |
604229997Sken			      CTL_FLAG_DATA_IN |
605229997Sken			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
606268674Smav CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}},
607229997Sken
608229997Sken/* 13 */
609229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
610229997Sken
611229997Sken/* 14 RECOVER BUFFERED DATA */
612229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
613229997Sken
614229997Sken/* 15 MODE SELECT(6) */
615229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
616229997Sken				     CTL_CMD_FLAG_OK_ON_STOPPED |
617229997Sken				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
618273315Smav				     CTL_CMD_FLAG_OK_ON_OFFLINE |
619229997Sken				     CTL_CMD_FLAG_OK_ON_SECONDARY |
620229997Sken				     CTL_FLAG_DATA_OUT,
621268674Smav CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}},
622229997Sken
623229997Sken/* 16 RESERVE(6) */
624269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
625229997Sken				    CTL_CMD_FLAG_OK_ON_BOTH |
626229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
627229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
628273315Smav				    CTL_CMD_FLAG_OK_ON_OFFLINE |
629229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
630229997Sken				    CTL_FLAG_DATA_OUT,
631268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
632229997Sken
633229997Sken/* 17 RELEASE(6) */
634269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
635229997Sken				   CTL_CMD_FLAG_OK_ON_BOTH |
636229997Sken				   CTL_CMD_FLAG_OK_ON_STOPPED |
637229997Sken				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
638273315Smav				   CTL_CMD_FLAG_OK_ON_OFFLINE |
639229997Sken				   CTL_CMD_FLAG_OK_ON_SECONDARY |
640229997Sken				   CTL_FLAG_DATA_NONE,
641268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
642229997Sken
643229997Sken/* 18 COPY */
644229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
645229997Sken
646229997Sken/* 19 ERASE(6) */
647229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
648229997Sken
649229997Sken/* 1A MODE SENSE(6) */
650229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
651229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
652229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
653273315Smav				    CTL_CMD_FLAG_OK_ON_OFFLINE |
654229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
655268551Smav				    CTL_FLAG_DATA_IN |
656268551Smav				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
657272635Smav CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0xff, 0xff, 0x07}},
658229997Sken
659229997Sken/* 1B START STOP UNIT */
660229997Sken{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
661229997Sken				   CTL_CMD_FLAG_OK_ON_STOPPED |
662229997Sken				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
663229997Sken				   CTL_CMD_FLAG_OK_ON_OFFLINE |
664229997Sken				   CTL_FLAG_DATA_NONE |
665229997Sken				   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
666268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}},
667229997Sken
668229997Sken/* 1C RECEIVE DIAGNOSTIC RESULTS */
669229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
670229997Sken
671229997Sken/* 1D SEND DIAGNOSTIC */
672229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
673229997Sken
674229997Sken/* 1E PREVENT ALLOW MEDIUM REMOVAL */
675229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
676229997Sken
677229997Sken/* 1F */
678229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
679229997Sken
680229997Sken/* 20 */
681229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
682229997Sken
683229997Sken/* 21 */
684229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
685229997Sken
686229997Sken/* 22 */
687229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
688229997Sken
689229997Sken/* 23 */
690229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
691229997Sken
692229997Sken/* 24 SET WINDOW */
693229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
694229997Sken
695229997Sken/* 25 READ CAPACITY(10) */
696229997Sken{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN|
697229997Sken				       CTL_CMD_FLAG_OK_ON_STOPPED |
698229997Sken				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
699229997Sken				       CTL_CMD_FLAG_OK_ON_SECONDARY |
700229997Sken				       CTL_FLAG_DATA_IN |
701229997Sken				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
702268674Smav CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}},
703229997Sken
704229997Sken/* 26 */
705229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
706229997Sken
707229997Sken/* 27 */
708229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
709229997Sken
710229997Sken/* 28 READ(10) */
711229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
712229997Sken				  CTL_FLAG_DATA_IN |
713229997Sken				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
714268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
715272638Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
716229997Sken
717229997Sken/* 29 READ GENERATION */
718229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
719229997Sken
720229997Sken/* 2A WRITE(10) */
721229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
722268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
723272638Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
724229997Sken
725229997Sken/* 2B SEEK(10) */
726229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
727229997Sken
728229997Sken/* 2C ERASE(10) */
729229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
730229997Sken
731229997Sken/* 2D READ UPDATED BLOCK */
732229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
733229997Sken
734229997Sken/* 2E WRITE AND VERIFY(10) */
735229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
736268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
737272642Smav 10, {0x12, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
738229997Sken
739229997Sken/* 2F VERIFY(10) */
740268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
741268151Smav			      CTL_FLAG_DATA_OUT |
742268151Smav			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
743268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
744268674Smav 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
745229997Sken
746229997Sken/* 30 SEARCH DATA HIGH(10) */
747229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
748229997Sken
749229997Sken/* 31 SEARCH DATA EQUAL(10) */
750229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
751229997Sken
752229997Sken/* 32 SEARCH DATA LOW(10) */
753229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
754229997Sken
755229997Sken/* 33 SET LIMITS(10) */
756229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
757229997Sken
758229997Sken/* 34 PRE-FETCH(10) */
759229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
760229997Sken
761229997Sken/* 35 SYNCHRONIZE CACHE(10) */
762229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
763229997Sken				   CTL_FLAG_DATA_NONE,
764268674Smav CTL_LUN_PAT_NONE,
765268674Smav 10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
766229997Sken
767229997Sken/* 36 LOCK UNLOCK CACHE(10) */
768229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
769229997Sken
770229997Sken/* 37 READ DEFECT DATA(10) */
771229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
772229997Sken
773229997Sken/* 38 MEDIUM SCAN */
774229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
775229997Sken
776229997Sken/* 39 COMPARE */
777229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
778229997Sken
779229997Sken/* 3A COPY AND VERIFY */
780229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
781229997Sken
782229997Sken/* 3B WRITE BUFFER */
783268550Smav{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
784268550Smav				      CTL_FLAG_DATA_OUT,
785268674Smav CTL_LUN_PAT_NONE,
786268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
787229997Sken
788229997Sken/* 3C READ BUFFER */
789268550Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
790268550Smav				     CTL_FLAG_DATA_IN |
791268550Smav				     CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
792268674Smav CTL_LUN_PAT_NONE,
793268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
794229997Sken
795229997Sken/* 3D UPDATE BLOCK */
796229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
797229997Sken
798229997Sken/* 3E READ LONG */
799229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
800229997Sken
801229997Sken/* 3F WRITE LONG */
802229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
803229997Sken
804229997Sken/* 40 CHANGE DEFINITION */
805229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
806229997Sken
807229997Sken/* 41 WRITE SAME(10) */
808265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
809265634Smav				   CTL_FLAG_DATA_OUT,
810268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
811270108Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
812229997Sken
813265634Smav/* 42 READ SUB-CHANNEL / UNMAP */
814265634Smav{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT,
815268674Smav CTL_LUN_PAT_WRITE,
816270108Smav 10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
817229997Sken
818229997Sken/* 43 READ TOC/PMA/ATIP */
819229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
820229997Sken
821229997Sken/* 44 REPORT DENSITY SUPPORT */
822229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
823229997Sken
824229997Sken/* 45 PLAY AUDIO(10) */
825229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
826229997Sken
827229997Sken/* 46 GET CONFIGURATION */
828229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
829229997Sken
830229997Sken/* 47 PLAY AUDIO MSF */
831229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
832229997Sken
833229997Sken/* 48 PLAY AUDIO TRACK INDEX */
834229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
835229997Sken
836229997Sken/* 49 PLAY TRACK RELATIVE(10) */
837229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
838229997Sken
839229997Sken/* 4A GET EVENT STATUS NOTIFICATION */
840229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
841229997Sken
842229997Sken/* 4B PAUSE/RESUME */
843229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
844229997Sken
845229997Sken/* 4C LOG SELECT */
846229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
847229997Sken
848229997Sken/* 4D LOG SENSE */
849229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
850229997Sken
851229997Sken/* 4E STOP PLAY/SCAN */
852229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
853229997Sken
854229997Sken/* 4F */
855229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
856229997Sken
857229997Sken/* 50 XDWRITE(10) */
858229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
859229997Sken
860229997Sken/* 51 XPWRITE(10) */
861229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
862229997Sken
863229997Sken/* 52 XDREAD(10) */
864229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
865229997Sken
866229997Sken/* 53 RESERVE TRACK */
867229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
868229997Sken
869229997Sken/* 54 SEND OPC INFORMATION */
870229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
871229997Sken
872229997Sken/* 55 MODE SELECT(10) */
873229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
874229997Sken				     CTL_CMD_FLAG_OK_ON_STOPPED |
875229997Sken				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
876273315Smav				     CTL_CMD_FLAG_OK_ON_OFFLINE |
877229997Sken				     CTL_CMD_FLAG_OK_ON_SECONDARY |
878229997Sken				     CTL_FLAG_DATA_OUT,
879268674Smav CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} },
880229997Sken
881229997Sken/* 56 RESERVE(10) */
882269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
883229997Sken				    CTL_CMD_FLAG_OK_ON_BOTH |
884229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
885229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
886273315Smav				    CTL_CMD_FLAG_OK_ON_OFFLINE |
887229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
888229997Sken				    CTL_FLAG_DATA_OUT,
889268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
890229997Sken
891229997Sken/* 57 RELEASE(10) */
892269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
893229997Sken				   CTL_CMD_FLAG_OK_ON_BOTH |
894229997Sken				   CTL_CMD_FLAG_OK_ON_STOPPED |
895229997Sken				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
896273315Smav				   CTL_CMD_FLAG_OK_ON_OFFLINE |
897229997Sken				   CTL_CMD_FLAG_OK_ON_SECONDARY |
898229997Sken				   CTL_FLAG_DATA_OUT,
899268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
900229997Sken
901229997Sken/* 58 REPAIR TRACK */
902229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
903229997Sken
904229997Sken/* 59 READ MASTER CUE */
905229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
906229997Sken
907229997Sken/* 5A MODE SENSE(10) */
908229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
909229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
910229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
911273315Smav				    CTL_CMD_FLAG_OK_ON_OFFLINE |
912229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
913268551Smav				    CTL_FLAG_DATA_IN |
914268551Smav				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
915272635Smav CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
916229997Sken
917229997Sken/* 5B CLOSE TRACK/SESSION */
918229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
919229997Sken
920229997Sken/* 5C READ BUFFER CAPACITY */
921229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
922229997Sken
923229997Sken/* 5D SEND CUE SHEET */
924229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
925229997Sken
926229997Sken/* 5E PERSISTENT RESERVE IN */
927268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
928229997Sken CTL_LUN_PAT_NONE},
929229997Sken
930229997Sken/* 5F PERSISTENT RESERVE OUT */
931268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
932229997Sken CTL_LUN_PAT_NONE},
933229997Sken
934229997Sken/* 60 */
935229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
936229997Sken
937229997Sken/* 61 */
938229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
939229997Sken
940229997Sken/* 62 */
941229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
942229997Sken
943229997Sken/* 63 */
944229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
945229997Sken
946229997Sken/* 64 */
947229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
948229997Sken
949229997Sken/* 65 */
950229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
951229997Sken
952229997Sken/* 66 */
953229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
954229997Sken
955229997Sken/* 67 */
956229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
957229997Sken
958229997Sken/* 68 */
959229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
960229997Sken
961229997Sken/* 69 */
962229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
963229997Sken
964229997Sken/* 6A */
965229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
966229997Sken
967229997Sken/* 6B */
968229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
969229997Sken
970229997Sken/* 6C */
971229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
972229997Sken
973229997Sken/* 6D */
974229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
975229997Sken
976229997Sken/* 6E */
977229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
978229997Sken
979229997Sken/* 6F */
980229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
981229997Sken
982229997Sken/* 70 */
983229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
984229997Sken
985229997Sken/* 71 */
986229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
987229997Sken
988229997Sken/* 72 */
989229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
990229997Sken
991229997Sken/* 73 */
992229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
993229997Sken
994229997Sken/* 74 */
995229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
996229997Sken
997229997Sken/* 75 */
998229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
999229997Sken
1000229997Sken/* 76 */
1001229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1002229997Sken
1003229997Sken/* 77 */
1004229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1005229997Sken
1006229997Sken/* 78 */
1007229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1008229997Sken
1009229997Sken/* 79 */
1010229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1011229997Sken
1012229997Sken/* 7A */
1013229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1014229997Sken
1015229997Sken/* 7B */
1016229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1017229997Sken
1018229997Sken/* 7C */
1019229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1020229997Sken
1021229997Sken/* 7D */
1022229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1023229997Sken
1024229997Sken/* 7E */
1025229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1026229997Sken
1027229997Sken/* 7F */
1028229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1029229997Sken
1030229997Sken/* 80 XDWRITE EXTENDED(16) */
1031229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1032229997Sken
1033229997Sken/* 81 REBUILD(16) */
1034229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1035229997Sken
1036229997Sken/* 82 REGENERATE(16) */
1037229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1038229997Sken
1039229997Sken/* 83 EXTENDED COPY */
1040269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1041269296Smav CTL_LUN_PAT_NONE},
1042229997Sken
1043229997Sken/* 84 RECEIVE COPY RESULTS */
1044269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1045269296Smav CTL_LUN_PAT_NONE},
1046229997Sken
1047229997Sken/* 85 */
1048229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1049229997Sken
1050229997Sken/* 86 ACCESS CONTROL IN */
1051229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1052229997Sken
1053229997Sken/* 87 ACCESS CONTROL OUT */
1054229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1055229997Sken
1056229997Sken/* 88 READ(16) */
1057229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
1058229997Sken                                  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1059268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1060272638Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1061268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1062229997Sken
1063268151Smav/* 89 COMPARE AND WRITE */
1064268151Smav{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1065268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1066268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1067268674Smav      0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}},
1068229997Sken
1069229997Sken/* 8A WRITE(16) */
1070229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1071268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1072272638Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1073268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1074229997Sken
1075229997Sken/* 8B */
1076229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1077229997Sken
1078229997Sken/* 8C READ ATTRIBUTE */
1079229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1080229997Sken
1081229997Sken/* 8D WRITE ATTRIBUTE */
1082229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1083229997Sken
1084229997Sken/* 8E WRITE AND VERIFY(16) */
1085229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1086268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1087272642Smav 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1088268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1089229997Sken
1090229997Sken/* 8F VERIFY(16) */
1091268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
1092268151Smav			      CTL_FLAG_DATA_OUT |
1093268151Smav			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1094268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1095268674Smav 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1096268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1097229997Sken
1098229997Sken/* 90 PRE-FETCH(16) */
1099229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1100229997Sken
1101229997Sken/* 91 SYNCHRONIZE CACHE(16) */
1102229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
1103229997Sken				   CTL_FLAG_DATA_NONE,
1104268674Smav CTL_LUN_PAT_NONE,
1105268674Smav 16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1106268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1107229997Sken
1108229997Sken/* 92 LOCK UNLOCK CACHE(16) */
1109229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1110229997Sken
1111229997Sken/* 93 WRITE SAME(16) */
1112265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
1113265634Smav				   CTL_FLAG_DATA_OUT,
1114268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1115272632Smav 16, {0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1116268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1117229997Sken
1118229997Sken/* 94 */
1119229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1120229997Sken
1121229997Sken/* 95 */
1122229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1123229997Sken
1124229997Sken/* 96 */
1125229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1126229997Sken
1127229997Sken/* 97 */
1128229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1129229997Sken
1130229997Sken/* 98 */
1131229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1132229997Sken
1133229997Sken/* 99 */
1134229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1135229997Sken
1136229997Sken/* 9A */
1137229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1138229997Sken
1139229997Sken/* 9B */
1140229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1141229997Sken
1142273311Smav/* 9C WRITE ATOMIC (16) */
1143273311Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1144273311Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1145273311Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1146273311Smav      0xff, 0xff, 0, 0, 0xff, 0xff, 0, 0x07}},
1147229997Sken
1148229997Sken/* 9D */
1149229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1150229997Sken
1151229997Sken/* 9E SERVICE ACTION IN(16) */
1152268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1153268674Smav CTL_LUN_PAT_NONE},
1154229997Sken
1155229997Sken/* 9F SERVICE ACTION OUT(16) */
1156229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1157229997Sken
1158229997Sken/* A0 REPORT LUNS */
1159229997Sken{ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
1160229997Sken				  CTL_CMD_FLAG_ALLOW_ON_RESV |
1161229997Sken				  CTL_CMD_FLAG_NO_SENSE |
1162229997Sken				  CTL_CMD_FLAG_OK_ON_STOPPED |
1163229997Sken				  CTL_CMD_FLAG_OK_ON_INOPERABLE |
1164229997Sken				  CTL_CMD_FLAG_OK_ON_OFFLINE |
1165229997Sken				  CTL_CMD_FLAG_OK_ON_SECONDARY |
1166229997Sken				  CTL_FLAG_DATA_IN |
1167229997Sken				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1168268674Smav CTL_LUN_PAT_NONE,
1169268674Smav 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1170229997Sken
1171229997Sken/* A1 BLANK */
1172229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1173229997Sken
1174229997Sken/* A2 SEND EVENT */
1175229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1176229997Sken
1177268674Smav/* A3 MAINTENANCE IN */
1178268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1179229997Sken CTL_LUN_PAT_NONE},
1180229997Sken
1181268674Smav/* A4 MAINTENANCE OUT */
1182229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1183229997Sken
1184229997Sken/* A5 MOVE MEDIUM */
1185229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1186229997Sken
1187229997Sken/* A6 EXCHANGE MEDIUM */
1188229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1189229997Sken
1190229997Sken/* A7 MOVE MEDIUM ATTACHED */
1191229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1192229997Sken
1193229997Sken/* A8 READ(12) */
1194229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
1195229997Sken                                  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1196268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1197272638Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1198229997Sken
1199229997Sken/* A9 PLAY TRACK RELATIVE(12) */
1200229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1201229997Sken
1202229997Sken/* AA WRITE(12) */
1203229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1204268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1205272638Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1206229997Sken
1207229997Sken/* AB SERVICE ACTION IN(12) */
1208229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1209229997Sken
1210229997Sken/* AC ERASE(12) */
1211229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1212229997Sken
1213229997Sken/* AD READ DVD STRUCTURE */
1214229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1215229997Sken
1216229997Sken/* AE WRITE AND VERIFY(12) */
1217229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1218268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1219272642Smav 12, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1220229997Sken
1221229997Sken/* AF VERIFY(12) */
1222268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
1223268151Smav			      CTL_FLAG_DATA_OUT |
1224268151Smav			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1225268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1226268674Smav 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1227229997Sken
1228229997Sken/* B0 SEARCH DATA HIGH(12) */
1229229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1230229997Sken
1231229997Sken/* B1 SEARCH DATA EQUAL(12) */
1232229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1233229997Sken
1234229997Sken/* B2 SEARCH DATA LOW(12) */
1235229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1236229997Sken
1237229997Sken/* B3 SET LIMITS(12) */
1238229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1239229997Sken
1240229997Sken/* B4 READ ELEMENT STATUS ATTACHED */
1241229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1242229997Sken
1243229997Sken/* B5 REQUEST VOLUME ELEMENT ADDRESS */
1244229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1245229997Sken
1246229997Sken/* B6 SEND VOLUME TAG */
1247229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1248229997Sken
1249229997Sken/* B7 READ DEFECT DATA(12) */
1250229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1251229997Sken
1252229997Sken/* B8 READ ELEMENT STATUS */
1253229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1254229997Sken
1255229997Sken/* B9 READ CD MSF */
1256229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1257229997Sken
1258268674Smav/* BA REDUNDANCY GROUP IN */
1259229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1260229997Sken
1261268674Smav/* BB REDUNDANCY GROUP OUT */
1262229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1263229997Sken
1264268674Smav/* BC SPARE IN */
1265229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1266229997Sken
1267268674Smav/* BD SPARE OUT */
1268229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1269229997Sken
1270268674Smav/* BE VOLUME SET IN */
1271229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1272229997Sken
1273268674Smav/* BF VOLUME SET OUT */
1274229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1275229997Sken
1276229997Sken/* C0 - ISC_SEND_MSG_SHORT */
1277229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1278229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE,
1279268674Smav CTL_LUN_PAT_NONE,
1280268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1281268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1282229997Sken
1283229997Sken/* C1 - ISC_SEND_MSG */
1284229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1285229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
1286268674Smav CTL_LUN_PAT_NONE,
1287268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1288268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1289229997Sken
1290229997Sken/* C2 - ISC_WRITE */
1291229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1292229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
1293268674Smav CTL_LUN_PAT_NONE,
1294268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1295268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1296229997Sken
1297229997Sken/* C3 - ISC_READ */
1298229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1299229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN,
1300268674Smav CTL_LUN_PAT_NONE,
1301268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1302268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1303229997Sken
1304229997Sken/* C4 */
1305229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1306229997Sken
1307229997Sken/* C5 */
1308229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1309229997Sken
1310229997Sken/* C6 */
1311229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1312229997Sken
1313229997Sken/* C7 */
1314229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1315229997Sken
1316229997Sken/* C8 */
1317229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1318229997Sken
1319229997Sken/* C9 */
1320229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1321229997Sken
1322229997Sken/* CA */
1323229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1324229997Sken
1325229997Sken/* CB */
1326229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1327229997Sken
1328229997Sken/* CC */
1329229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1330229997Sken
1331229997Sken/* CD */
1332229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1333229997Sken
1334229997Sken/* CE */
1335229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1336229997Sken
1337229997Sken/* CF */
1338229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1339229997Sken
1340229997Sken/* D0 */
1341229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1342229997Sken
1343229997Sken/* D1 */
1344229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1345229997Sken
1346229997Sken/* D2 */
1347229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1348229997Sken
1349229997Sken/* D3 */
1350229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1351229997Sken
1352229997Sken/* D4 */
1353229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1354229997Sken
1355229997Sken/* D5 */
1356229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1357229997Sken
1358229997Sken/* D6 */
1359229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1360229997Sken
1361229997Sken/* D7 */
1362229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1363229997Sken
1364229997Sken/* D8 */
1365229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1366229997Sken
1367229997Sken/* D9 */
1368229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1369229997Sken
1370229997Sken/* DA */
1371229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1372229997Sken
1373229997Sken/* DB */
1374229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1375229997Sken
1376229997Sken/* DC */
1377229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1378229997Sken
1379229997Sken/* DD */
1380229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1381229997Sken
1382229997Sken/* DE */
1383229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1384229997Sken
1385229997Sken/* DF */
1386229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1387229997Sken
1388229997Sken/* E0 */
1389229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1390229997Sken
1391229997Sken/* E1 */
1392229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1393229997Sken
1394229997Sken/* E2 */
1395229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1396229997Sken
1397229997Sken/* E3 */
1398229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1399229997Sken
1400229997Sken/* E4 */
1401229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1402229997Sken
1403229997Sken/* E5 */
1404229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1405229997Sken
1406229997Sken/* E6 */
1407229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1408229997Sken
1409229997Sken/* E7 */
1410229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1411229997Sken
1412229997Sken/* E8 */
1413229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1414229997Sken
1415229997Sken/* E9 */
1416229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1417229997Sken
1418229997Sken/* EA */
1419229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1420229997Sken
1421229997Sken/* EB */
1422229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1423229997Sken
1424229997Sken/* EC */
1425229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1426229997Sken
1427229997Sken/* ED */
1428229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1429229997Sken
1430229997Sken/* EE */
1431229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1432229997Sken
1433229997Sken/* EF */
1434229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1435229997Sken
1436229997Sken/* F0 */
1437229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1438229997Sken
1439229997Sken/* F1 */
1440229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1441229997Sken
1442229997Sken/* F2 */
1443229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1444229997Sken
1445229997Sken/* F3 */
1446229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1447229997Sken
1448229997Sken/* F4 */
1449229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1450229997Sken
1451229997Sken/* F5 */
1452229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1453229997Sken
1454229997Sken/* F6 */
1455229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1456229997Sken
1457229997Sken/* F7 */
1458229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1459229997Sken
1460229997Sken/* F8 */
1461229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1462229997Sken
1463229997Sken/* F9 */
1464229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1465229997Sken
1466229997Sken/* FA */
1467229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1468229997Sken
1469229997Sken/* FB */
1470229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1471229997Sken
1472229997Sken/* FC */
1473229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1474229997Sken
1475229997Sken/* FD */
1476229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1477229997Sken
1478229997Sken/* FE */
1479229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1480229997Sken
1481229997Sken/* FF */
1482229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}
1483229997Sken
1484229997Sken};
1485