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$
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 |
73268674Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
74268674Smav						CTL_FLAG_DATA_IN |
75268674Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
76268674Smav CTL_LUN_PAT_NONE,
77268674Smav 10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
78268674Smav
79268674Smav/* 01 READ RESERVATION */
80269295Smav{ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
81268674Smav						CTL_CMD_FLAG_OK_ON_BOTH |
82268674Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
83268674Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
84268674Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
85268674Smav						CTL_FLAG_DATA_IN |
86268674Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
87268674Smav CTL_LUN_PAT_NONE,
88268674Smav 10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
89268674Smav
90268674Smav/* 02 REPORT CAPABILITIES */
91268674Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV |
92268674Smav					    CTL_CMD_FLAG_OK_ON_BOTH |
93268674Smav					    CTL_CMD_FLAG_OK_ON_STOPPED |
94268674Smav					    CTL_CMD_FLAG_OK_ON_INOPERABLE |
95268674Smav					    CTL_CMD_FLAG_OK_ON_SECONDARY |
96268674Smav					    CTL_FLAG_DATA_IN |
97268674Smav					    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
98268674Smav CTL_LUN_PAT_NONE,
99268674Smav 10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
100268674Smav
101268674Smav/* 03 READ FULL STATUS */
102268694Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV |
103268694Smav					    CTL_CMD_FLAG_OK_ON_BOTH |
104268694Smav					    CTL_CMD_FLAG_OK_ON_STOPPED |
105268694Smav					    CTL_CMD_FLAG_OK_ON_INOPERABLE |
106268694Smav					    CTL_CMD_FLAG_OK_ON_SECONDARY |
107268694Smav					    CTL_FLAG_DATA_IN |
108268694Smav					    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
109268694Smav CTL_LUN_PAT_NONE,
110268694Smav 10, { 0x03, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
111268674Smav
112268674Smav/* 04-1f */
113268674Smav};
114268674Smav
115268674Smav/* 5F PERSISTENT RESERVE OUT */
116268674Smavconst struct ctl_cmd_entry ctl_cmd_table_5f[32] =
117268674Smav{
118268674Smav/* 00 REGISTER */
119269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
120269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
121269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
122269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
123269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
124269295Smav						CTL_FLAG_DATA_OUT |
125269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
126268674Smav CTL_LUN_PAT_NONE,
127268674Smav 10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
128268674Smav
129268674Smav/* 01 RESERVE */
130269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
131269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
132269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
133269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
134269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
135269295Smav						CTL_FLAG_DATA_OUT |
136269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
137268674Smav CTL_LUN_PAT_NONE,
138268674Smav 10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
139268674Smav
140268674Smav/* 02 RELEASE */
141269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
142269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
143269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
144269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
145269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
146269295Smav						CTL_FLAG_DATA_OUT |
147269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
148268674Smav CTL_LUN_PAT_NONE,
149268674Smav 10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
150268674Smav
151268674Smav/* 03 CLEAR */
152269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
153269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
154269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
155269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
156269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
157269295Smav						CTL_FLAG_DATA_OUT |
158269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
159268674Smav CTL_LUN_PAT_NONE,
160268674Smav 10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
161268674Smav
162268674Smav/* 04 PREEMPT */
163269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
164269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
165269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
166269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
167269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
168269295Smav						CTL_FLAG_DATA_OUT |
169269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
170268674Smav CTL_LUN_PAT_NONE,
171268674Smav 10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
172268674Smav
173268674Smav/* 05 PREEMPT AND ABORT */
174268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
175268674Smav
176268674Smav/* 06 REGISTER AND IGNORE EXISTING KEY */
177269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
178269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
179269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
180269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
181269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
182269295Smav						CTL_FLAG_DATA_OUT |
183269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
184268674Smav CTL_LUN_PAT_NONE,
185268674Smav 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
186268674Smav
187268674Smav/* 07 REGISTER AND MOVE */
188268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
189268674Smav
190268674Smav/* 08-1f */
191268674Smav};
192268674Smav
193269296Smav/* 83 EXTENDED COPY */
194269296Smavconst struct ctl_cmd_entry ctl_cmd_table_83[32] =
195269296Smav{
196269296Smav/* 00 EXTENDED COPY (LID1) */
197269296Smav{ctl_extended_copy_lid1, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
198269296Smav					    CTL_FLAG_DATA_OUT,
199269296Smav CTL_LUN_PAT_NONE,
200269296Smav 16, { 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
201269296Smav
202269296Smav/* 01 EXTENDED COPY (LID4) */
203269296Smav{ctl_extended_copy_lid4, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
204269296Smav					    CTL_FLAG_DATA_OUT,
205269296Smav CTL_LUN_PAT_NONE,
206269296Smav 16, { 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
207269296Smav
208269296Smav/* 02 */
209269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
210269296Smav
211269296Smav/* 03 */
212269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
213269296Smav
214269296Smav/* 04 */
215269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
216269296Smav
217269296Smav/* 05 */
218269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
219269296Smav
220269296Smav/* 06 */
221269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
222269296Smav
223269296Smav/* 07 */
224269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
225269296Smav
226269296Smav/* 08 */
227269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
228269296Smav
229269296Smav/* 09 */
230269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
231269296Smav
232269296Smav/* 0A */
233269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
234269296Smav
235269296Smav/* 0B */
236269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
237269296Smav
238269296Smav/* 0C */
239269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
240269296Smav
241269296Smav/* 0D */
242269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
243269296Smav
244269296Smav/* 0E */
245269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
246269296Smav
247269296Smav/* 0F */
248269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
249269296Smav
250269296Smav/* 10 POPULATE TOKEN */
251270106Smav{ctl_populate_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
252270106Smav					CTL_FLAG_DATA_OUT,
253270106Smav CTL_LUN_PAT_NONE,
254270106Smav 16, { 0x10, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff,
255270106Smav       0xff, 0xff, 0xff, 0xff, 0, 0x07}},
256269296Smav
257269296Smav/* 11 WRITE USING TOKEN */
258270106Smav{ctl_write_using_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
259270106Smav					CTL_FLAG_DATA_OUT,
260270106Smav CTL_LUN_PAT_NONE,
261270106Smav 16, { 0x11, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff,
262270106Smav       0xff, 0xff, 0xff, 0xff, 0, 0x07}},
263269296Smav
264269296Smav/* 12 */
265269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
266269296Smav
267269296Smav/* 13 */
268269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
269269296Smav
270269296Smav/* 14 */
271269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
272269296Smav
273269296Smav/* 15 */
274269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
275269296Smav
276269296Smav/* 16 */
277269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
278269296Smav
279269296Smav/* 17 */
280269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
281269296Smav
282269296Smav/* 18 */
283269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
284269296Smav
285269296Smav/* 19 */
286269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
287269296Smav
288269296Smav/* 1A */
289269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
290269296Smav
291269296Smav/* 1B */
292269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
293269296Smav
294269296Smav/* 1C COPY OPERATION ABORT */
295269296Smav{ctl_copy_operation_abort, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
296269296Smav					      CTL_FLAG_DATA_NONE,
297269296Smav CTL_LUN_PAT_NONE,
298269296Smav 16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}},
299269296Smav};
300269296Smav
301269296Smav/* 84 RECEIVE COPY STATUS */
302269296Smavconst struct ctl_cmd_entry ctl_cmd_table_84[32] =
303269296Smav{
304269296Smav/* 00 RECEIVE COPY STATUS (LID1) */
305269296Smav{ctl_receive_copy_status_lid1, CTL_SERIDX_RD_CAP,
306269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
307269296Smav CTL_FLAG_DATA_IN,
308269296Smav CTL_LUN_PAT_NONE,
309269296Smav 16, {0x00, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
310269296Smav
311269296Smav/* 01 RECEIVE COPY DATA (LID1) */
312269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
313269296Smav
314269296Smav/* 02 */
315269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
316269296Smav
317269296Smav/* 03 RECEIVE COPY OPERATING PARAMETERS */
318269296Smav{ctl_receive_copy_operating_parameters, CTL_SERIDX_RD_CAP,
319269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
320269296Smav CTL_CMD_FLAG_OK_ON_STOPPED |
321269296Smav CTL_CMD_FLAG_OK_ON_INOPERABLE |
322269296Smav CTL_CMD_FLAG_OK_ON_SECONDARY |
323269296Smav CTL_FLAG_DATA_IN,
324269296Smav CTL_LUN_PAT_NONE,
325269296Smav 16, {0x03, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
326269296Smav
327269296Smav/* 04 RECEIVE COPY FAILURE DETAILS (LID1) */
328269296Smav{ctl_receive_copy_failure_details, CTL_SERIDX_RD_CAP,
329269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
330269296Smav CTL_FLAG_DATA_IN,
331269296Smav CTL_LUN_PAT_NONE,
332269296Smav 16, {0x04, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
333269296Smav
334269296Smav/* 05 RECEIVE COPY STATUS (LID4) */
335269296Smav{ctl_receive_copy_status_lid4, CTL_SERIDX_RD_CAP,
336269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
337269296Smav CTL_FLAG_DATA_IN,
338269296Smav CTL_LUN_PAT_NONE,
339269296Smav 16, {0x05, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
340269296Smav
341269296Smav/* 06 RECEIVE COPY DATA (LID4)*/
342269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
343269296Smav
344269296Smav/* 07 RECEIVE ROD TOKEN INFORMATION */
345270106Smav{ctl_receive_rod_token_information, CTL_SERIDX_RD_CAP,
346270106Smav CTL_CMD_FLAG_OK_ON_BOTH |
347270106Smav CTL_FLAG_DATA_IN,
348270106Smav CTL_LUN_PAT_NONE,
349270106Smav 16, {0x07, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
350269296Smav
351269296Smav/* 08 REPORT ALL ROD TOKENS */
352270106Smav{ctl_report_all_rod_tokens, CTL_SERIDX_RD_CAP,
353270106Smav CTL_CMD_FLAG_OK_ON_BOTH |
354270106Smav CTL_FLAG_DATA_IN,
355270106Smav CTL_LUN_PAT_NONE,
356270106Smav 16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
357269296Smav};
358269296Smav
359268674Smav/* 9E SERVICE ACTION IN(16) */
360268674Smavconst struct ctl_cmd_entry ctl_cmd_table_9e[32] =
361268674Smav{
362268674Smav/* 00 */
363268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
364268674Smav
365268674Smav/* 01 */
366268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
367268674Smav
368268674Smav/* 02 */
369268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
370268674Smav
371268674Smav/* 03 */
372268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
373268674Smav
374268674Smav/* 04 */
375268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
376268674Smav
377268674Smav/* 05 */
378268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
379268674Smav
380268674Smav/* 06 */
381268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
382268674Smav
383268674Smav/* 07 */
384268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
385268674Smav
386268674Smav/* 08 */
387268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
388268674Smav
389268674Smav/* 09 */
390268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
391268674Smav
392268674Smav/* 0A */
393268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
394268674Smav
395268674Smav/* 0B */
396268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
397268674Smav
398268674Smav/* 0C */
399268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
400268674Smav
401268674Smav/* 0D */
402268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
403268674Smav
404268674Smav/* 0E */
405268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
406268674Smav
407268674Smav/* 0F */
408268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
409268674Smav
410268674Smav/* 10 */
411268674Smav{ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
412268674Smav					  CTL_CMD_FLAG_OK_ON_STOPPED |
413268674Smav					  CTL_CMD_FLAG_OK_ON_INOPERABLE |
414268674Smav					  CTL_CMD_FLAG_OK_ON_SECONDARY |
415268674Smav					  CTL_FLAG_DATA_IN |
416268674Smav					  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
417268674Smav CTL_LUN_PAT_READCAP,
418268674Smav 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
419268674Smav
420268674Smav/* 11-1f */
421268674Smav};
422268674Smav
423268674Smav/* A3 MAINTENANCE IN */
424268674Smavconst struct ctl_cmd_entry ctl_cmd_table_a3[32] =
425268674Smav{
426268674Smav/* 00 */
427268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
428268674Smav
429268674Smav/* 01 */
430268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
431268674Smav
432268674Smav/* 02 */
433268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
434268674Smav
435268674Smav/* 03 */
436268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
437268674Smav
438268674Smav/* 04 */
439268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
440268674Smav
441268674Smav/* 05 */
442268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
443268674Smav
444268674Smav/* 06 */
445268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
446268674Smav
447268674Smav/* 07 */
448268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
449268674Smav
450268674Smav/* 08 */
451268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
452268674Smav
453268674Smav/* 09 */
454268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
455268674Smav
456268674Smav/* 0A REPORT TARGET PORT GROUPS */
457269295Smav{ctl_report_tagret_port_groups, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
458269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
459269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
460269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
461269295Smav						CTL_FLAG_DATA_IN,
462268674Smav CTL_LUN_PAT_NONE,
463268674Smav 12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
464268674Smav
465268674Smav/* 0B */
466268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
467268674Smav
468268674Smav/* 0C REPORT SUPPORTED_OPCODES */
469269295Smav{ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
470269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
471269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
472269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
473269295Smav						CTL_FLAG_DATA_IN,
474268674Smav CTL_LUN_PAT_NONE,
475268674Smav 12, {0x0c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
476268674Smav
477268674Smav/* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */
478269295Smav{ctl_report_supported_tmf, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
479269295Smav					   CTL_CMD_FLAG_OK_ON_STOPPED |
480269295Smav					   CTL_CMD_FLAG_OK_ON_INOPERABLE |
481269295Smav					   CTL_CMD_FLAG_OK_ON_SECONDARY |
482269295Smav					   CTL_FLAG_DATA_IN,
483268674Smav CTL_LUN_PAT_NONE,
484268674Smav 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
485268674Smav
486268675Smav/* 0E */
487268675Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
488268675Smav
489268675Smav/* 0F REPORT TIMESTAMP */
490269295Smav{ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
491269295Smav					CTL_CMD_FLAG_OK_ON_STOPPED |
492269295Smav					CTL_CMD_FLAG_OK_ON_INOPERABLE |
493269295Smav					CTL_CMD_FLAG_OK_ON_SECONDARY |
494269295Smav					CTL_FLAG_DATA_IN,
495268675Smav CTL_LUN_PAT_NONE,
496268675Smav 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
497268675Smav
498268675Smav/* 10-1f */
499268674Smav};
500268674Smav
501268674Smavconst struct ctl_cmd_entry ctl_cmd_table[256] =
502268674Smav{
503229997Sken/* 00 TEST UNIT READY */
504229997Sken{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH |
505229997Sken			  CTL_FLAG_DATA_NONE |
506229997Sken			  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
507268674Smav CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}},
508229997Sken
509229997Sken/* 01 REWIND */
510229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
511229997Sken
512229997Sken/* 02 */
513229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
514229997Sken
515229997Sken/* 03 REQUEST SENSE */
516229997Sken{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN |
517229997Sken				       CTL_CMD_FLAG_OK_ON_ALL_LUNS |
518229997Sken				       CTL_CMD_FLAG_ALLOW_ON_RESV |
519229997Sken				       CTL_CMD_FLAG_NO_SENSE |
520229997Sken				       CTL_CMD_FLAG_OK_ON_STOPPED |
521229997Sken				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
522229997Sken				       CTL_CMD_FLAG_OK_ON_OFFLINE |
523229997Sken				       CTL_CMD_FLAG_OK_ON_SECONDARY |
524229997Sken				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
525268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}},
526229997Sken
527229997Sken/* 04 FORMAT UNIT */
528229997Sken{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN |
529229997Sken				CTL_CMD_FLAG_OK_ON_INOPERABLE |
530229997Sken				CTL_FLAG_DATA_OUT,
531268674Smav CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}},
532229997Sken
533229997Sken/* 05 READ BLOCK LIMITS */
534229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
535229997Sken
536229997Sken/* 06 */
537229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
538229997Sken
539229997Sken/* 07 REASSIGN BLOCKS */
540229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
541229997Sken
542229997Sken/* 08 READ(6) */
543229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
544229997Sken				  CTL_FLAG_DATA_IN |
545229997Sken				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
546268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
547229997Sken
548229997Sken/* 09 */
549229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
550229997Sken
551229997Sken/* 0A WRITE(6) */
552229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
553229997Sken				   CTL_FLAG_DATA_OUT,
554268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
555229997Sken
556229997Sken/* 0B SEEK(6) */
557229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
558229997Sken
559229997Sken/* 0C */
560229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
561229997Sken
562229997Sken/* 0D */
563229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
564229997Sken
565229997Sken/* 0E */
566229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
567229997Sken
568229997Sken/* 0F READ REVERSE(6) */
569229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
570229997Sken
571229997Sken/* 10 WRITE FILEMARKS(6) */
572229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
573229997Sken
574229997Sken/* 11 SPACE(6) */
575229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
576229997Sken
577229997Sken/* 12 INQUIRY */
578229997Sken{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
579229997Sken			      CTL_CMD_FLAG_ALLOW_ON_RESV |
580229997Sken			      CTL_CMD_FLAG_NO_SENSE |
581229997Sken			      CTL_CMD_FLAG_OK_ON_STOPPED |
582229997Sken			      CTL_CMD_FLAG_OK_ON_INOPERABLE |
583229997Sken			      CTL_CMD_FLAG_OK_ON_OFFLINE |
584229997Sken			      CTL_CMD_FLAG_OK_ON_SECONDARY |
585229997Sken			      CTL_FLAG_DATA_IN |
586229997Sken			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
587268674Smav CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}},
588229997Sken
589229997Sken/* 13 */
590229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
591229997Sken
592229997Sken/* 14 RECOVER BUFFERED DATA */
593229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
594229997Sken
595229997Sken/* 15 MODE SELECT(6) */
596229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
597229997Sken				     CTL_CMD_FLAG_OK_ON_STOPPED |
598229997Sken				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
599229997Sken				     CTL_CMD_FLAG_OK_ON_SECONDARY |
600229997Sken				     CTL_FLAG_DATA_OUT,
601268674Smav CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}},
602229997Sken
603229997Sken/* 16 RESERVE(6) */
604269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
605229997Sken				    CTL_CMD_FLAG_OK_ON_BOTH |
606229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
607229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
608229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
609229997Sken				    CTL_FLAG_DATA_OUT,
610268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
611229997Sken
612229997Sken/* 17 RELEASE(6) */
613269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
614229997Sken				   CTL_CMD_FLAG_OK_ON_BOTH |
615229997Sken				   CTL_CMD_FLAG_OK_ON_STOPPED |
616229997Sken				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
617229997Sken				   CTL_CMD_FLAG_OK_ON_SECONDARY |
618229997Sken				   CTL_FLAG_DATA_NONE,
619268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
620229997Sken
621229997Sken/* 18 COPY */
622229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
623229997Sken
624229997Sken/* 19 ERASE(6) */
625229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
626229997Sken
627229997Sken/* 1A MODE SENSE(6) */
628229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
629229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
630229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
631229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
632268551Smav				    CTL_FLAG_DATA_IN |
633268551Smav				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
634268674Smav CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0, 0xff, 0x07}},
635229997Sken
636229997Sken/* 1B START STOP UNIT */
637229997Sken{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
638229997Sken				   CTL_CMD_FLAG_OK_ON_STOPPED |
639229997Sken				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
640229997Sken				   CTL_CMD_FLAG_OK_ON_OFFLINE |
641229997Sken				   CTL_FLAG_DATA_NONE |
642229997Sken				   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
643268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}},
644229997Sken
645229997Sken/* 1C RECEIVE DIAGNOSTIC RESULTS */
646229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
647229997Sken
648229997Sken/* 1D SEND DIAGNOSTIC */
649229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
650229997Sken
651229997Sken/* 1E PREVENT ALLOW MEDIUM REMOVAL */
652229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
653229997Sken
654229997Sken/* 1F */
655229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
656229997Sken
657229997Sken/* 20 */
658229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
659229997Sken
660229997Sken/* 21 */
661229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
662229997Sken
663229997Sken/* 22 */
664229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
665229997Sken
666229997Sken/* 23 */
667229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
668229997Sken
669229997Sken/* 24 SET WINDOW */
670229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
671229997Sken
672229997Sken/* 25 READ CAPACITY(10) */
673229997Sken{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN|
674229997Sken				       CTL_CMD_FLAG_OK_ON_STOPPED |
675229997Sken				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
676229997Sken				       CTL_CMD_FLAG_OK_ON_SECONDARY |
677229997Sken				       CTL_FLAG_DATA_IN |
678229997Sken				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
679268674Smav CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}},
680229997Sken
681229997Sken/* 26 */
682229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
683229997Sken
684229997Sken/* 27 */
685229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
686229997Sken
687229997Sken/* 28 READ(10) */
688229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
689229997Sken				  CTL_FLAG_DATA_IN |
690229997Sken				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
691268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
692268674Smav 10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
693229997Sken
694229997Sken/* 29 READ GENERATION */
695229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
696229997Sken
697229997Sken/* 2A WRITE(10) */
698229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
699268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
700268674Smav 10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
701229997Sken
702229997Sken/* 2B SEEK(10) */
703229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
704229997Sken
705229997Sken/* 2C ERASE(10) */
706229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
707229997Sken
708229997Sken/* 2D READ UPDATED BLOCK */
709229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
710229997Sken
711229997Sken/* 2E WRITE AND VERIFY(10) */
712229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
713268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
714268674Smav 10, {0x10, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
715229997Sken
716229997Sken/* 2F VERIFY(10) */
717268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
718268151Smav			      CTL_FLAG_DATA_OUT |
719268151Smav			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
720268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
721268674Smav 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
722229997Sken
723229997Sken/* 30 SEARCH DATA HIGH(10) */
724229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
725229997Sken
726229997Sken/* 31 SEARCH DATA EQUAL(10) */
727229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
728229997Sken
729229997Sken/* 32 SEARCH DATA LOW(10) */
730229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
731229997Sken
732229997Sken/* 33 SET LIMITS(10) */
733229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
734229997Sken
735229997Sken/* 34 PRE-FETCH(10) */
736229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
737229997Sken
738229997Sken/* 35 SYNCHRONIZE CACHE(10) */
739229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
740229997Sken				   CTL_FLAG_DATA_NONE,
741268674Smav CTL_LUN_PAT_NONE,
742268674Smav 10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
743229997Sken
744229997Sken/* 36 LOCK UNLOCK CACHE(10) */
745229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
746229997Sken
747229997Sken/* 37 READ DEFECT DATA(10) */
748229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
749229997Sken
750229997Sken/* 38 MEDIUM SCAN */
751229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
752229997Sken
753229997Sken/* 39 COMPARE */
754229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
755229997Sken
756229997Sken/* 3A COPY AND VERIFY */
757229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
758229997Sken
759229997Sken/* 3B WRITE BUFFER */
760268550Smav{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
761268550Smav				      CTL_FLAG_DATA_OUT,
762268674Smav CTL_LUN_PAT_NONE,
763268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
764229997Sken
765229997Sken/* 3C READ BUFFER */
766268550Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
767268550Smav				     CTL_FLAG_DATA_IN |
768268550Smav				     CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
769268674Smav CTL_LUN_PAT_NONE,
770268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
771229997Sken
772229997Sken/* 3D UPDATE BLOCK */
773229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
774229997Sken
775229997Sken/* 3E READ LONG */
776229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
777229997Sken
778229997Sken/* 3F WRITE LONG */
779229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
780229997Sken
781229997Sken/* 40 CHANGE DEFINITION */
782229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
783229997Sken
784229997Sken/* 41 WRITE SAME(10) */
785265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
786265634Smav				   CTL_FLAG_DATA_OUT,
787268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
788270108Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
789229997Sken
790265634Smav/* 42 READ SUB-CHANNEL / UNMAP */
791265634Smav{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT,
792268674Smav CTL_LUN_PAT_WRITE,
793270108Smav 10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
794229997Sken
795229997Sken/* 43 READ TOC/PMA/ATIP */
796229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
797229997Sken
798229997Sken/* 44 REPORT DENSITY SUPPORT */
799229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
800229997Sken
801229997Sken/* 45 PLAY AUDIO(10) */
802229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
803229997Sken
804229997Sken/* 46 GET CONFIGURATION */
805229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
806229997Sken
807229997Sken/* 47 PLAY AUDIO MSF */
808229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
809229997Sken
810229997Sken/* 48 PLAY AUDIO TRACK INDEX */
811229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
812229997Sken
813229997Sken/* 49 PLAY TRACK RELATIVE(10) */
814229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
815229997Sken
816229997Sken/* 4A GET EVENT STATUS NOTIFICATION */
817229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
818229997Sken
819229997Sken/* 4B PAUSE/RESUME */
820229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
821229997Sken
822229997Sken/* 4C LOG SELECT */
823229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
824229997Sken
825229997Sken/* 4D LOG SENSE */
826229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
827229997Sken
828229997Sken/* 4E STOP PLAY/SCAN */
829229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
830229997Sken
831229997Sken/* 4F */
832229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
833229997Sken
834229997Sken/* 50 XDWRITE(10) */
835229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
836229997Sken
837229997Sken/* 51 XPWRITE(10) */
838229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
839229997Sken
840229997Sken/* 52 XDREAD(10) */
841229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
842229997Sken
843229997Sken/* 53 RESERVE TRACK */
844229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
845229997Sken
846229997Sken/* 54 SEND OPC INFORMATION */
847229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
848229997Sken
849229997Sken/* 55 MODE SELECT(10) */
850229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
851229997Sken				     CTL_CMD_FLAG_OK_ON_STOPPED |
852229997Sken				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
853229997Sken				     CTL_CMD_FLAG_OK_ON_SECONDARY |
854229997Sken				     CTL_FLAG_DATA_OUT,
855268674Smav CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} },
856229997Sken
857229997Sken/* 56 RESERVE(10) */
858269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
859229997Sken				    CTL_CMD_FLAG_OK_ON_BOTH |
860229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
861229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
862229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
863229997Sken				    CTL_FLAG_DATA_OUT,
864268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
865229997Sken
866229997Sken/* 57 RELEASE(10) */
867269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
868229997Sken				   CTL_CMD_FLAG_OK_ON_BOTH |
869229997Sken				   CTL_CMD_FLAG_OK_ON_STOPPED |
870229997Sken				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
871229997Sken				   CTL_CMD_FLAG_OK_ON_SECONDARY |
872229997Sken				   CTL_FLAG_DATA_OUT,
873268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
874229997Sken
875229997Sken/* 58 REPAIR TRACK */
876229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
877229997Sken
878229997Sken/* 59 READ MASTER CUE */
879229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
880229997Sken
881229997Sken/* 5A MODE SENSE(10) */
882229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
883229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
884229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
885229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
886268551Smav				    CTL_FLAG_DATA_IN |
887268551Smav				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
888268674Smav CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0x07} },
889229997Sken
890229997Sken/* 5B CLOSE TRACK/SESSION */
891229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
892229997Sken
893229997Sken/* 5C READ BUFFER CAPACITY */
894229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
895229997Sken
896229997Sken/* 5D SEND CUE SHEET */
897229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
898229997Sken
899229997Sken/* 5E PERSISTENT RESERVE IN */
900268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
901229997Sken CTL_LUN_PAT_NONE},
902229997Sken
903229997Sken/* 5F PERSISTENT RESERVE OUT */
904268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
905229997Sken CTL_LUN_PAT_NONE},
906229997Sken
907229997Sken/* 60 */
908229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
909229997Sken
910229997Sken/* 61 */
911229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
912229997Sken
913229997Sken/* 62 */
914229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
915229997Sken
916229997Sken/* 63 */
917229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
918229997Sken
919229997Sken/* 64 */
920229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
921229997Sken
922229997Sken/* 65 */
923229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
924229997Sken
925229997Sken/* 66 */
926229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
927229997Sken
928229997Sken/* 67 */
929229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
930229997Sken
931229997Sken/* 68 */
932229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
933229997Sken
934229997Sken/* 69 */
935229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
936229997Sken
937229997Sken/* 6A */
938229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
939229997Sken
940229997Sken/* 6B */
941229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
942229997Sken
943229997Sken/* 6C */
944229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
945229997Sken
946229997Sken/* 6D */
947229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
948229997Sken
949229997Sken/* 6E */
950229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
951229997Sken
952229997Sken/* 6F */
953229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
954229997Sken
955229997Sken/* 70 */
956229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
957229997Sken
958229997Sken/* 71 */
959229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
960229997Sken
961229997Sken/* 72 */
962229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
963229997Sken
964229997Sken/* 73 */
965229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
966229997Sken
967229997Sken/* 74 */
968229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
969229997Sken
970229997Sken/* 75 */
971229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
972229997Sken
973229997Sken/* 76 */
974229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
975229997Sken
976229997Sken/* 77 */
977229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
978229997Sken
979229997Sken/* 78 */
980229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
981229997Sken
982229997Sken/* 79 */
983229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
984229997Sken
985229997Sken/* 7A */
986229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
987229997Sken
988229997Sken/* 7B */
989229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
990229997Sken
991229997Sken/* 7C */
992229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
993229997Sken
994229997Sken/* 7D */
995229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
996229997Sken
997229997Sken/* 7E */
998229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
999229997Sken
1000229997Sken/* 7F */
1001229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1002229997Sken
1003229997Sken/* 80 XDWRITE EXTENDED(16) */
1004229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1005229997Sken
1006229997Sken/* 81 REBUILD(16) */
1007229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1008229997Sken
1009229997Sken/* 82 REGENERATE(16) */
1010229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1011229997Sken
1012229997Sken/* 83 EXTENDED COPY */
1013269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1014269296Smav CTL_LUN_PAT_NONE},
1015229997Sken
1016229997Sken/* 84 RECEIVE COPY RESULTS */
1017269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1018269296Smav CTL_LUN_PAT_NONE},
1019229997Sken
1020229997Sken/* 85 */
1021229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1022229997Sken
1023229997Sken/* 86 ACCESS CONTROL IN */
1024229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1025229997Sken
1026229997Sken/* 87 ACCESS CONTROL OUT */
1027229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1028229997Sken
1029229997Sken/* 88 READ(16) */
1030229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
1031229997Sken                                  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1032268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1033268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1034268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1035229997Sken
1036268151Smav/* 89 COMPARE AND WRITE */
1037268151Smav{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1038268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1039268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1040268674Smav      0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}},
1041229997Sken
1042229997Sken/* 8A WRITE(16) */
1043229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1044268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1045268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1046268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1047229997Sken
1048229997Sken/* 8B */
1049229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1050229997Sken
1051229997Sken/* 8C READ ATTRIBUTE */
1052229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1053229997Sken
1054229997Sken/* 8D WRITE ATTRIBUTE */
1055229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1056229997Sken
1057229997Sken/* 8E WRITE AND VERIFY(16) */
1058229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1059268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1060268674Smav 16, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1061268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1062229997Sken
1063229997Sken/* 8F VERIFY(16) */
1064268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
1065268151Smav			      CTL_FLAG_DATA_OUT |
1066268151Smav			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1067268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1068268674Smav 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1069268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1070229997Sken
1071229997Sken/* 90 PRE-FETCH(16) */
1072229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1073229997Sken
1074229997Sken/* 91 SYNCHRONIZE CACHE(16) */
1075229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
1076229997Sken				   CTL_FLAG_DATA_NONE,
1077268674Smav CTL_LUN_PAT_NONE,
1078268674Smav 16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1079268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1080229997Sken
1081229997Sken/* 92 LOCK UNLOCK CACHE(16) */
1082229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1083229997Sken
1084229997Sken/* 93 WRITE SAME(16) */
1085265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
1086265634Smav				   CTL_FLAG_DATA_OUT,
1087268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1088270108Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1089268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1090229997Sken
1091229997Sken/* 94 */
1092229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1093229997Sken
1094229997Sken/* 95 */
1095229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1096229997Sken
1097229997Sken/* 96 */
1098229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1099229997Sken
1100229997Sken/* 97 */
1101229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1102229997Sken
1103229997Sken/* 98 */
1104229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1105229997Sken
1106229997Sken/* 99 */
1107229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1108229997Sken
1109229997Sken/* 9A */
1110229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1111229997Sken
1112229997Sken/* 9B */
1113229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1114229997Sken
1115229997Sken/* 9C */
1116229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1117229997Sken
1118229997Sken/* 9D */
1119229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1120229997Sken
1121229997Sken/* 9E SERVICE ACTION IN(16) */
1122268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1123268674Smav CTL_LUN_PAT_NONE},
1124229997Sken
1125229997Sken/* 9F SERVICE ACTION OUT(16) */
1126229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1127229997Sken
1128229997Sken/* A0 REPORT LUNS */
1129229997Sken{ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
1130229997Sken				  CTL_CMD_FLAG_ALLOW_ON_RESV |
1131229997Sken				  CTL_CMD_FLAG_NO_SENSE |
1132229997Sken				  CTL_CMD_FLAG_OK_ON_STOPPED |
1133229997Sken				  CTL_CMD_FLAG_OK_ON_INOPERABLE |
1134229997Sken				  CTL_CMD_FLAG_OK_ON_OFFLINE |
1135229997Sken				  CTL_CMD_FLAG_OK_ON_SECONDARY |
1136229997Sken				  CTL_FLAG_DATA_IN |
1137229997Sken				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1138268674Smav CTL_LUN_PAT_NONE,
1139268674Smav 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1140229997Sken
1141229997Sken/* A1 BLANK */
1142229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1143229997Sken
1144229997Sken/* A2 SEND EVENT */
1145229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1146229997Sken
1147268674Smav/* A3 MAINTENANCE IN */
1148268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1149229997Sken CTL_LUN_PAT_NONE},
1150229997Sken
1151268674Smav/* A4 MAINTENANCE OUT */
1152229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1153229997Sken
1154229997Sken/* A5 MOVE MEDIUM */
1155229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1156229997Sken
1157229997Sken/* A6 EXCHANGE MEDIUM */
1158229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1159229997Sken
1160229997Sken/* A7 MOVE MEDIUM ATTACHED */
1161229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1162229997Sken
1163229997Sken/* A8 READ(12) */
1164229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
1165229997Sken                                  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1166268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1167268674Smav 12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1168229997Sken
1169229997Sken/* A9 PLAY TRACK RELATIVE(12) */
1170229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1171229997Sken
1172229997Sken/* AA WRITE(12) */
1173229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1174268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1175268674Smav 12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1176229997Sken
1177229997Sken/* AB SERVICE ACTION IN(12) */
1178229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1179229997Sken
1180229997Sken/* AC ERASE(12) */
1181229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1182229997Sken
1183229997Sken/* AD READ DVD STRUCTURE */
1184229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1185229997Sken
1186229997Sken/* AE WRITE AND VERIFY(12) */
1187229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1188268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1189268674Smav 12, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1190229997Sken
1191229997Sken/* AF VERIFY(12) */
1192268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
1193268151Smav			      CTL_FLAG_DATA_OUT |
1194268151Smav			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1195268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1196268674Smav 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1197229997Sken
1198229997Sken/* B0 SEARCH DATA HIGH(12) */
1199229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1200229997Sken
1201229997Sken/* B1 SEARCH DATA EQUAL(12) */
1202229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1203229997Sken
1204229997Sken/* B2 SEARCH DATA LOW(12) */
1205229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1206229997Sken
1207229997Sken/* B3 SET LIMITS(12) */
1208229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1209229997Sken
1210229997Sken/* B4 READ ELEMENT STATUS ATTACHED */
1211229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1212229997Sken
1213229997Sken/* B5 REQUEST VOLUME ELEMENT ADDRESS */
1214229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1215229997Sken
1216229997Sken/* B6 SEND VOLUME TAG */
1217229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1218229997Sken
1219229997Sken/* B7 READ DEFECT DATA(12) */
1220229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1221229997Sken
1222229997Sken/* B8 READ ELEMENT STATUS */
1223229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1224229997Sken
1225229997Sken/* B9 READ CD MSF */
1226229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1227229997Sken
1228268674Smav/* BA REDUNDANCY GROUP IN */
1229229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1230229997Sken
1231268674Smav/* BB REDUNDANCY GROUP OUT */
1232229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1233229997Sken
1234268674Smav/* BC SPARE IN */
1235229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1236229997Sken
1237268674Smav/* BD SPARE OUT */
1238229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1239229997Sken
1240268674Smav/* BE VOLUME SET IN */
1241229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1242229997Sken
1243268674Smav/* BF VOLUME SET OUT */
1244229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1245229997Sken
1246229997Sken/* C0 - ISC_SEND_MSG_SHORT */
1247229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1248229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE,
1249268674Smav CTL_LUN_PAT_NONE,
1250268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1251268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1252229997Sken
1253229997Sken/* C1 - ISC_SEND_MSG */
1254229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1255229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
1256268674Smav CTL_LUN_PAT_NONE,
1257268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1258268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1259229997Sken
1260229997Sken/* C2 - ISC_WRITE */
1261229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1262229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
1263268674Smav CTL_LUN_PAT_NONE,
1264268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1265268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1266229997Sken
1267229997Sken/* C3 - ISC_READ */
1268229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1269229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN,
1270268674Smav CTL_LUN_PAT_NONE,
1271268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1272268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1273229997Sken
1274229997Sken/* C4 */
1275229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1276229997Sken
1277229997Sken/* C5 */
1278229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1279229997Sken
1280229997Sken/* C6 */
1281229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1282229997Sken
1283229997Sken/* C7 */
1284229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1285229997Sken
1286229997Sken/* C8 */
1287229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1288229997Sken
1289229997Sken/* C9 */
1290229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1291229997Sken
1292229997Sken/* CA */
1293229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1294229997Sken
1295229997Sken/* CB */
1296229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1297229997Sken
1298229997Sken/* CC */
1299229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1300229997Sken
1301229997Sken/* CD */
1302229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1303229997Sken
1304229997Sken/* CE */
1305229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1306229997Sken
1307229997Sken/* CF */
1308229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1309229997Sken
1310229997Sken/* D0 */
1311229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1312229997Sken
1313229997Sken/* D1 */
1314229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1315229997Sken
1316229997Sken/* D2 */
1317229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1318229997Sken
1319229997Sken/* D3 */
1320229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1321229997Sken
1322229997Sken/* D4 */
1323229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1324229997Sken
1325229997Sken/* D5 */
1326229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1327229997Sken
1328229997Sken/* D6 */
1329229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1330229997Sken
1331229997Sken/* D7 */
1332229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1333229997Sken
1334229997Sken/* D8 */
1335229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1336229997Sken
1337229997Sken/* D9 */
1338229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1339229997Sken
1340229997Sken/* DA */
1341229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1342229997Sken
1343229997Sken/* DB */
1344229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1345229997Sken
1346229997Sken/* DC */
1347229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1348229997Sken
1349229997Sken/* DD */
1350229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1351229997Sken
1352229997Sken/* DE */
1353229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1354229997Sken
1355229997Sken/* DF */
1356229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1357229997Sken
1358229997Sken/* E0 */
1359229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1360229997Sken
1361229997Sken/* E1 */
1362229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1363229997Sken
1364229997Sken/* E2 */
1365229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1366229997Sken
1367229997Sken/* E3 */
1368229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1369229997Sken
1370229997Sken/* E4 */
1371229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1372229997Sken
1373229997Sken/* E5 */
1374229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1375229997Sken
1376229997Sken/* E6 */
1377229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1378229997Sken
1379229997Sken/* E7 */
1380229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1381229997Sken
1382229997Sken/* E8 */
1383229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1384229997Sken
1385229997Sken/* E9 */
1386229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1387229997Sken
1388229997Sken/* EA */
1389229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1390229997Sken
1391229997Sken/* EB */
1392229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1393229997Sken
1394229997Sken/* EC */
1395229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1396229997Sken
1397229997Sken/* ED */
1398229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1399229997Sken
1400229997Sken/* EE */
1401229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1402229997Sken
1403229997Sken/* EF */
1404229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1405229997Sken
1406229997Sken/* F0 */
1407229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1408229997Sken
1409229997Sken/* F1 */
1410229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1411229997Sken
1412229997Sken/* F2 */
1413229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1414229997Sken
1415229997Sken/* F3 */
1416229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1417229997Sken
1418229997Sken/* F4 */
1419229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1420229997Sken
1421229997Sken/* F5 */
1422229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1423229997Sken
1424229997Sken/* F6 */
1425229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1426229997Sken
1427229997Sken/* F7 */
1428229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1429229997Sken
1430229997Sken/* F8 */
1431229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1432229997Sken
1433229997Sken/* F9 */
1434229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1435229997Sken
1436229997Sken/* FA */
1437229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1438229997Sken
1439229997Sken/* FB */
1440229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1441229997Sken
1442229997Sken/* FC */
1443229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1444229997Sken
1445229997Sken/* FD */
1446229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1447229997Sken
1448229997Sken/* FE */
1449229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1450229997Sken
1451229997Sken/* FF */
1452229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}
1453229997Sken
1454229997Sken};
1455