ctl_cmd_table.c revision 274562
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 274562 2014-11-16 01:47:43Z 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 */
183274562Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
184274562Smav						CTL_CMD_FLAG_OK_ON_BOTH |
185274562Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
186274562Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
187274562Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
188274562Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
189274562Smav						CTL_FLAG_DATA_OUT |
190274562Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
191274562Smav CTL_LUN_PAT_NONE,
192274562Smav 10, { 0x05, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
193268674Smav
194268674Smav/* 06 REGISTER AND IGNORE EXISTING KEY */
195269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
196269295Smav						CTL_CMD_FLAG_OK_ON_BOTH |
197269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
198269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
199273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
200269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
201269295Smav						CTL_FLAG_DATA_OUT |
202269295Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
203268674Smav CTL_LUN_PAT_NONE,
204268674Smav 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
205268674Smav
206268674Smav/* 07 REGISTER AND MOVE */
207268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
208268674Smav
209268674Smav/* 08-1f */
210268674Smav};
211268674Smav
212269296Smav/* 83 EXTENDED COPY */
213269296Smavconst struct ctl_cmd_entry ctl_cmd_table_83[32] =
214269296Smav{
215269296Smav/* 00 EXTENDED COPY (LID1) */
216269296Smav{ctl_extended_copy_lid1, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
217269296Smav					    CTL_FLAG_DATA_OUT,
218269296Smav CTL_LUN_PAT_NONE,
219269296Smav 16, { 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
220269296Smav
221269296Smav/* 01 EXTENDED COPY (LID4) */
222269296Smav{ctl_extended_copy_lid4, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
223269296Smav					    CTL_FLAG_DATA_OUT,
224269296Smav CTL_LUN_PAT_NONE,
225269296Smav 16, { 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
226269296Smav
227269296Smav/* 02 */
228269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
229269296Smav
230269296Smav/* 03 */
231269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
232269296Smav
233269296Smav/* 04 */
234269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
235269296Smav
236269296Smav/* 05 */
237269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
238269296Smav
239269296Smav/* 06 */
240269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
241269296Smav
242269296Smav/* 07 */
243269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
244269296Smav
245269296Smav/* 08 */
246269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
247269296Smav
248269296Smav/* 09 */
249269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
250269296Smav
251269296Smav/* 0A */
252269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
253269296Smav
254269296Smav/* 0B */
255269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
256269296Smav
257269296Smav/* 0C */
258269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
259269296Smav
260269296Smav/* 0D */
261269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
262269296Smav
263269296Smav/* 0E */
264269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
265269296Smav
266269296Smav/* 0F */
267269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
268269296Smav
269269296Smav/* 10 POPULATE TOKEN */
270270106Smav{ctl_populate_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
271274003Smav					CTL_FLAG_DATA_OUT |
272274003Smav					CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
273270106Smav CTL_LUN_PAT_NONE,
274270106Smav 16, { 0x10, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff,
275270106Smav       0xff, 0xff, 0xff, 0xff, 0, 0x07}},
276269296Smav
277269296Smav/* 11 WRITE USING TOKEN */
278270106Smav{ctl_write_using_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
279270106Smav					CTL_FLAG_DATA_OUT,
280270106Smav CTL_LUN_PAT_NONE,
281270106Smav 16, { 0x11, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff,
282270106Smav       0xff, 0xff, 0xff, 0xff, 0, 0x07}},
283269296Smav
284269296Smav/* 12 */
285269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
286269296Smav
287269296Smav/* 13 */
288269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
289269296Smav
290269296Smav/* 14 */
291269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
292269296Smav
293269296Smav/* 15 */
294269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
295269296Smav
296269296Smav/* 16 */
297269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
298269296Smav
299269296Smav/* 17 */
300269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
301269296Smav
302269296Smav/* 18 */
303269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
304269296Smav
305269296Smav/* 19 */
306269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
307269296Smav
308269296Smav/* 1A */
309269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
310269296Smav
311269296Smav/* 1B */
312269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
313269296Smav
314269296Smav/* 1C COPY OPERATION ABORT */
315269296Smav{ctl_copy_operation_abort, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
316269296Smav					      CTL_FLAG_DATA_NONE,
317269296Smav CTL_LUN_PAT_NONE,
318269296Smav 16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}},
319269296Smav};
320269296Smav
321269296Smav/* 84 RECEIVE COPY STATUS */
322269296Smavconst struct ctl_cmd_entry ctl_cmd_table_84[32] =
323269296Smav{
324269296Smav/* 00 RECEIVE COPY STATUS (LID1) */
325269296Smav{ctl_receive_copy_status_lid1, CTL_SERIDX_RD_CAP,
326269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
327272633Smav CTL_FLAG_DATA_IN |
328272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
329269296Smav CTL_LUN_PAT_NONE,
330269296Smav 16, {0x00, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
331269296Smav
332269296Smav/* 01 RECEIVE COPY DATA (LID1) */
333269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
334269296Smav
335269296Smav/* 02 */
336269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
337269296Smav
338269296Smav/* 03 RECEIVE COPY OPERATING PARAMETERS */
339269296Smav{ctl_receive_copy_operating_parameters, CTL_SERIDX_RD_CAP,
340269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
341269296Smav CTL_CMD_FLAG_OK_ON_STOPPED |
342269296Smav CTL_CMD_FLAG_OK_ON_INOPERABLE |
343269296Smav CTL_CMD_FLAG_OK_ON_SECONDARY |
344272633Smav CTL_FLAG_DATA_IN |
345272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
346269296Smav CTL_LUN_PAT_NONE,
347269296Smav 16, {0x03, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
348269296Smav
349269296Smav/* 04 RECEIVE COPY FAILURE DETAILS (LID1) */
350269296Smav{ctl_receive_copy_failure_details, CTL_SERIDX_RD_CAP,
351269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
352272633Smav CTL_FLAG_DATA_IN |
353272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
354269296Smav CTL_LUN_PAT_NONE,
355269296Smav 16, {0x04, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
356269296Smav
357269296Smav/* 05 RECEIVE COPY STATUS (LID4) */
358269296Smav{ctl_receive_copy_status_lid4, CTL_SERIDX_RD_CAP,
359269296Smav CTL_CMD_FLAG_OK_ON_BOTH |
360274003Smav CTL_FLAG_DATA_IN |
361274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
362269296Smav CTL_LUN_PAT_NONE,
363269296Smav 16, {0x05, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
364269296Smav
365269296Smav/* 06 RECEIVE COPY DATA (LID4)*/
366269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
367269296Smav
368269296Smav/* 07 RECEIVE ROD TOKEN INFORMATION */
369270106Smav{ctl_receive_rod_token_information, CTL_SERIDX_RD_CAP,
370270106Smav CTL_CMD_FLAG_OK_ON_BOTH |
371274003Smav CTL_FLAG_DATA_IN |
372274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
373270106Smav CTL_LUN_PAT_NONE,
374270106Smav 16, {0x07, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
375269296Smav
376269296Smav/* 08 REPORT ALL ROD TOKENS */
377270106Smav{ctl_report_all_rod_tokens, CTL_SERIDX_RD_CAP,
378270106Smav CTL_CMD_FLAG_OK_ON_BOTH |
379274003Smav CTL_FLAG_DATA_IN |
380274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
381270106Smav CTL_LUN_PAT_NONE,
382270106Smav 16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
383269296Smav};
384269296Smav
385268674Smav/* 9E SERVICE ACTION IN(16) */
386268674Smavconst struct ctl_cmd_entry ctl_cmd_table_9e[32] =
387268674Smav{
388268674Smav/* 00 */
389268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
390268674Smav
391268674Smav/* 01 */
392268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
393268674Smav
394268674Smav/* 02 */
395268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
396268674Smav
397268674Smav/* 03 */
398268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
399268674Smav
400268674Smav/* 04 */
401268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
402268674Smav
403268674Smav/* 05 */
404268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
405268674Smav
406268674Smav/* 06 */
407268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
408268674Smav
409268674Smav/* 07 */
410268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
411268674Smav
412268674Smav/* 08 */
413268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
414268674Smav
415268674Smav/* 09 */
416268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
417268674Smav
418268674Smav/* 0A */
419268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
420268674Smav
421268674Smav/* 0B */
422268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
423268674Smav
424268674Smav/* 0C */
425268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
426268674Smav
427268674Smav/* 0D */
428268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
429268674Smav
430268674Smav/* 0E */
431268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
432268674Smav
433268674Smav/* 0F */
434268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
435268674Smav
436268674Smav/* 10 */
437268674Smav{ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
438268674Smav					  CTL_CMD_FLAG_OK_ON_STOPPED |
439268674Smav					  CTL_CMD_FLAG_OK_ON_INOPERABLE |
440268674Smav					  CTL_CMD_FLAG_OK_ON_SECONDARY |
441268674Smav					  CTL_FLAG_DATA_IN |
442268674Smav					  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
443268674Smav CTL_LUN_PAT_READCAP,
444268674Smav 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
445268674Smav
446268674Smav/* 11-1f */
447268674Smav};
448268674Smav
449268674Smav/* A3 MAINTENANCE IN */
450268674Smavconst struct ctl_cmd_entry ctl_cmd_table_a3[32] =
451268674Smav{
452268674Smav/* 00 */
453268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
454268674Smav
455268674Smav/* 01 */
456268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
457268674Smav
458268674Smav/* 02 */
459268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
460268674Smav
461268674Smav/* 03 */
462268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
463268674Smav
464268674Smav/* 04 */
465268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
466268674Smav
467268674Smav/* 05 */
468268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
469268674Smav
470268674Smav/* 06 */
471268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
472268674Smav
473268674Smav/* 07 */
474268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
475268674Smav
476268674Smav/* 08 */
477268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
478268674Smav
479268674Smav/* 09 */
480268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
481268674Smav
482268674Smav/* 0A REPORT TARGET PORT GROUPS */
483269295Smav{ctl_report_tagret_port_groups, 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 |
488274003Smav						CTL_FLAG_DATA_IN |
489274003Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
490268674Smav CTL_LUN_PAT_NONE,
491268674Smav 12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
492268674Smav
493268674Smav/* 0B */
494268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
495268674Smav
496268674Smav/* 0C REPORT SUPPORTED_OPCODES */
497269295Smav{ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
498269295Smav						CTL_CMD_FLAG_OK_ON_STOPPED |
499269295Smav						CTL_CMD_FLAG_OK_ON_INOPERABLE |
500273315Smav						CTL_CMD_FLAG_OK_ON_OFFLINE |
501269295Smav						CTL_CMD_FLAG_OK_ON_SECONDARY |
502272633Smav						CTL_FLAG_DATA_IN |
503272633Smav						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
504268674Smav CTL_LUN_PAT_NONE,
505268674Smav 12, {0x0c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
506268674Smav
507268674Smav/* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */
508269295Smav{ctl_report_supported_tmf, 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 |
513272633Smav					   CTL_FLAG_DATA_IN |
514272633Smav					   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
515268674Smav CTL_LUN_PAT_NONE,
516268674Smav 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
517268674Smav
518268675Smav/* 0E */
519268675Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
520268675Smav
521268675Smav/* 0F REPORT TIMESTAMP */
522269295Smav{ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
523269295Smav					CTL_CMD_FLAG_OK_ON_STOPPED |
524269295Smav					CTL_CMD_FLAG_OK_ON_INOPERABLE |
525273315Smav					CTL_CMD_FLAG_OK_ON_OFFLINE |
526269295Smav					CTL_CMD_FLAG_OK_ON_SECONDARY |
527274003Smav					CTL_FLAG_DATA_IN |
528274003Smav					CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
529268675Smav CTL_LUN_PAT_NONE,
530268675Smav 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
531268675Smav
532268675Smav/* 10-1f */
533268674Smav};
534268674Smav
535268674Smavconst struct ctl_cmd_entry ctl_cmd_table[256] =
536268674Smav{
537229997Sken/* 00 TEST UNIT READY */
538229997Sken{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH |
539229997Sken			  CTL_FLAG_DATA_NONE |
540229997Sken			  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
541268674Smav CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}},
542229997Sken
543229997Sken/* 01 REWIND */
544229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
545229997Sken
546229997Sken/* 02 */
547229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
548229997Sken
549229997Sken/* 03 REQUEST SENSE */
550229997Sken{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN |
551229997Sken				       CTL_CMD_FLAG_OK_ON_ALL_LUNS |
552229997Sken				       CTL_CMD_FLAG_ALLOW_ON_RESV |
553229997Sken				       CTL_CMD_FLAG_NO_SENSE |
554229997Sken				       CTL_CMD_FLAG_OK_ON_STOPPED |
555229997Sken				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
556229997Sken				       CTL_CMD_FLAG_OK_ON_OFFLINE |
557229997Sken				       CTL_CMD_FLAG_OK_ON_SECONDARY |
558229997Sken				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
559268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}},
560229997Sken
561229997Sken/* 04 FORMAT UNIT */
562229997Sken{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN |
563229997Sken				CTL_CMD_FLAG_OK_ON_INOPERABLE |
564229997Sken				CTL_FLAG_DATA_OUT,
565268674Smav CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}},
566229997Sken
567229997Sken/* 05 READ BLOCK LIMITS */
568229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
569229997Sken
570229997Sken/* 06 */
571229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
572229997Sken
573229997Sken/* 07 REASSIGN BLOCKS */
574229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
575229997Sken
576229997Sken/* 08 READ(6) */
577229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
578229997Sken				  CTL_FLAG_DATA_IN |
579274003Smav				  CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
580268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
581229997Sken
582229997Sken/* 09 */
583229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
584229997Sken
585229997Sken/* 0A WRITE(6) */
586229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
587229997Sken				   CTL_FLAG_DATA_OUT,
588268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
589229997Sken
590229997Sken/* 0B SEEK(6) */
591229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
592229997Sken
593229997Sken/* 0C */
594229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
595229997Sken
596229997Sken/* 0D */
597229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
598229997Sken
599229997Sken/* 0E */
600229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
601229997Sken
602229997Sken/* 0F READ REVERSE(6) */
603229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
604229997Sken
605229997Sken/* 10 WRITE FILEMARKS(6) */
606229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
607229997Sken
608229997Sken/* 11 SPACE(6) */
609229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
610229997Sken
611229997Sken/* 12 INQUIRY */
612229997Sken{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
613229997Sken			      CTL_CMD_FLAG_ALLOW_ON_RESV |
614229997Sken			      CTL_CMD_FLAG_NO_SENSE |
615229997Sken			      CTL_CMD_FLAG_OK_ON_STOPPED |
616229997Sken			      CTL_CMD_FLAG_OK_ON_INOPERABLE |
617229997Sken			      CTL_CMD_FLAG_OK_ON_OFFLINE |
618229997Sken			      CTL_CMD_FLAG_OK_ON_SECONDARY |
619229997Sken			      CTL_FLAG_DATA_IN |
620229997Sken			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
621268674Smav CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}},
622229997Sken
623229997Sken/* 13 */
624229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
625229997Sken
626229997Sken/* 14 RECOVER BUFFERED DATA */
627229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
628229997Sken
629229997Sken/* 15 MODE SELECT(6) */
630229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
631229997Sken				     CTL_CMD_FLAG_OK_ON_STOPPED |
632229997Sken				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
633273315Smav				     CTL_CMD_FLAG_OK_ON_OFFLINE |
634229997Sken				     CTL_CMD_FLAG_OK_ON_SECONDARY |
635229997Sken				     CTL_FLAG_DATA_OUT,
636268674Smav CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}},
637229997Sken
638229997Sken/* 16 RESERVE(6) */
639269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
640229997Sken				    CTL_CMD_FLAG_OK_ON_BOTH |
641229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
642229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
643273315Smav				    CTL_CMD_FLAG_OK_ON_OFFLINE |
644229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
645229997Sken				    CTL_FLAG_DATA_OUT,
646268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
647229997Sken
648229997Sken/* 17 RELEASE(6) */
649269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
650229997Sken				   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 |
655229997Sken				   CTL_FLAG_DATA_NONE,
656268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
657229997Sken
658229997Sken/* 18 COPY */
659229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
660229997Sken
661229997Sken/* 19 ERASE(6) */
662229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
663229997Sken
664229997Sken/* 1A MODE SENSE(6) */
665229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
666229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
667229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
668273315Smav				    CTL_CMD_FLAG_OK_ON_OFFLINE |
669229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
670268551Smav				    CTL_FLAG_DATA_IN |
671274003Smav				    CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
672272635Smav CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0xff, 0xff, 0x07}},
673229997Sken
674229997Sken/* 1B START STOP UNIT */
675229997Sken{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
676229997Sken				   CTL_CMD_FLAG_OK_ON_STOPPED |
677229997Sken				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
678229997Sken				   CTL_CMD_FLAG_OK_ON_OFFLINE |
679229997Sken				   CTL_FLAG_DATA_NONE |
680229997Sken				   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
681268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}},
682229997Sken
683229997Sken/* 1C RECEIVE DIAGNOSTIC RESULTS */
684229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
685229997Sken
686229997Sken/* 1D SEND DIAGNOSTIC */
687229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
688229997Sken
689229997Sken/* 1E PREVENT ALLOW MEDIUM REMOVAL */
690229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
691229997Sken
692229997Sken/* 1F */
693229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
694229997Sken
695229997Sken/* 20 */
696229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
697229997Sken
698229997Sken/* 21 */
699229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
700229997Sken
701229997Sken/* 22 */
702229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
703229997Sken
704229997Sken/* 23 */
705229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
706229997Sken
707229997Sken/* 24 SET WINDOW */
708229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
709229997Sken
710229997Sken/* 25 READ CAPACITY(10) */
711229997Sken{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN|
712229997Sken				       CTL_CMD_FLAG_OK_ON_STOPPED |
713229997Sken				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
714229997Sken				       CTL_CMD_FLAG_OK_ON_SECONDARY |
715229997Sken				       CTL_FLAG_DATA_IN |
716229997Sken				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
717268674Smav CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}},
718229997Sken
719229997Sken/* 26 */
720229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
721229997Sken
722229997Sken/* 27 */
723229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
724229997Sken
725229997Sken/* 28 READ(10) */
726229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
727229997Sken				  CTL_FLAG_DATA_IN |
728274003Smav				  CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
729268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
730272638Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
731229997Sken
732229997Sken/* 29 READ GENERATION */
733229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
734229997Sken
735229997Sken/* 2A WRITE(10) */
736229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
737268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
738272638Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
739229997Sken
740229997Sken/* 2B SEEK(10) */
741229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
742229997Sken
743229997Sken/* 2C ERASE(10) */
744229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
745229997Sken
746229997Sken/* 2D READ UPDATED BLOCK */
747229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
748229997Sken
749229997Sken/* 2E WRITE AND VERIFY(10) */
750229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
751268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
752272642Smav 10, {0x12, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
753229997Sken
754229997Sken/* 2F VERIFY(10) */
755268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
756268151Smav			      CTL_FLAG_DATA_OUT |
757274003Smav			      CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
758268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
759268674Smav 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
760229997Sken
761229997Sken/* 30 SEARCH DATA HIGH(10) */
762229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
763229997Sken
764229997Sken/* 31 SEARCH DATA EQUAL(10) */
765229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
766229997Sken
767229997Sken/* 32 SEARCH DATA LOW(10) */
768229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
769229997Sken
770229997Sken/* 33 SET LIMITS(10) */
771229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
772229997Sken
773229997Sken/* 34 PRE-FETCH(10) */
774229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
775229997Sken
776229997Sken/* 35 SYNCHRONIZE CACHE(10) */
777229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
778229997Sken				   CTL_FLAG_DATA_NONE,
779268674Smav CTL_LUN_PAT_NONE,
780268674Smav 10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
781229997Sken
782229997Sken/* 36 LOCK UNLOCK CACHE(10) */
783229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
784229997Sken
785229997Sken/* 37 READ DEFECT DATA(10) */
786273323Smav{ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_SLUN |
787273323Smav				     CTL_FLAG_DATA_IN |
788274003Smav				     CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
789273323Smav CTL_LUN_PAT_NONE,
790273323Smav 10, {0, 0x1f, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
791229997Sken
792229997Sken/* 38 MEDIUM SCAN */
793229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
794229997Sken
795229997Sken/* 39 COMPARE */
796229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
797229997Sken
798229997Sken/* 3A COPY AND VERIFY */
799229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
800229997Sken
801229997Sken/* 3B WRITE BUFFER */
802268550Smav{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
803268550Smav				      CTL_FLAG_DATA_OUT,
804268674Smav CTL_LUN_PAT_NONE,
805268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
806229997Sken
807229997Sken/* 3C READ BUFFER */
808268550Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
809268550Smav				     CTL_FLAG_DATA_IN |
810274003Smav				     CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
811268674Smav CTL_LUN_PAT_NONE,
812268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
813229997Sken
814229997Sken/* 3D UPDATE BLOCK */
815229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
816229997Sken
817229997Sken/* 3E READ LONG */
818229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
819229997Sken
820229997Sken/* 3F WRITE LONG */
821229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
822229997Sken
823229997Sken/* 40 CHANGE DEFINITION */
824229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
825229997Sken
826229997Sken/* 41 WRITE SAME(10) */
827265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
828265634Smav				   CTL_FLAG_DATA_OUT,
829268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
830270108Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
831229997Sken
832265634Smav/* 42 READ SUB-CHANNEL / UNMAP */
833265634Smav{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT,
834268674Smav CTL_LUN_PAT_WRITE,
835270108Smav 10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
836229997Sken
837229997Sken/* 43 READ TOC/PMA/ATIP */
838229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
839229997Sken
840229997Sken/* 44 REPORT DENSITY SUPPORT */
841229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
842229997Sken
843229997Sken/* 45 PLAY AUDIO(10) */
844229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
845229997Sken
846229997Sken/* 46 GET CONFIGURATION */
847229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
848229997Sken
849229997Sken/* 47 PLAY AUDIO MSF */
850229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
851229997Sken
852229997Sken/* 48 PLAY AUDIO TRACK INDEX */
853229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
854229997Sken
855229997Sken/* 49 PLAY TRACK RELATIVE(10) */
856229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
857229997Sken
858229997Sken/* 4A GET EVENT STATUS NOTIFICATION */
859229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
860229997Sken
861229997Sken/* 4B PAUSE/RESUME */
862229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
863229997Sken
864229997Sken/* 4C LOG SELECT */
865229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
866229997Sken
867229997Sken/* 4D LOG SENSE */
868273977Smav{ctl_log_sense, CTL_SERIDX_LOG_SNS, CTL_CMD_FLAG_OK_ON_SLUN |
869273977Smav				    CTL_FLAG_DATA_IN |
870273977Smav				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
871273977Smav CTL_LUN_PAT_NONE, 10, {0, 0xff, 0xff, 0, 0xff, 0xff, 0xff, 0xff, 0x07} },
872229997Sken
873229997Sken/* 4E STOP PLAY/SCAN */
874229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
875229997Sken
876229997Sken/* 4F */
877229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
878229997Sken
879229997Sken/* 50 XDWRITE(10) */
880229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
881229997Sken
882229997Sken/* 51 XPWRITE(10) */
883229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
884229997Sken
885229997Sken/* 52 XDREAD(10) */
886229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
887229997Sken
888229997Sken/* 53 RESERVE TRACK */
889229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
890229997Sken
891229997Sken/* 54 SEND OPC INFORMATION */
892229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
893229997Sken
894229997Sken/* 55 MODE SELECT(10) */
895229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
896229997Sken				     CTL_CMD_FLAG_OK_ON_STOPPED |
897229997Sken				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
898273315Smav				     CTL_CMD_FLAG_OK_ON_OFFLINE |
899229997Sken				     CTL_CMD_FLAG_OK_ON_SECONDARY |
900229997Sken				     CTL_FLAG_DATA_OUT,
901268674Smav CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} },
902229997Sken
903229997Sken/* 56 RESERVE(10) */
904269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
905229997Sken				    CTL_CMD_FLAG_OK_ON_BOTH |
906229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
907229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
908273315Smav				    CTL_CMD_FLAG_OK_ON_OFFLINE |
909229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
910229997Sken				    CTL_FLAG_DATA_OUT,
911268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
912229997Sken
913229997Sken/* 57 RELEASE(10) */
914269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
915229997Sken				   CTL_CMD_FLAG_OK_ON_BOTH |
916229997Sken				   CTL_CMD_FLAG_OK_ON_STOPPED |
917229997Sken				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
918273315Smav				   CTL_CMD_FLAG_OK_ON_OFFLINE |
919229997Sken				   CTL_CMD_FLAG_OK_ON_SECONDARY |
920229997Sken				   CTL_FLAG_DATA_OUT,
921268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
922229997Sken
923229997Sken/* 58 REPAIR TRACK */
924229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
925229997Sken
926229997Sken/* 59 READ MASTER CUE */
927229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
928229997Sken
929229997Sken/* 5A MODE SENSE(10) */
930229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
931229997Sken				    CTL_CMD_FLAG_OK_ON_STOPPED |
932229997Sken				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
933273315Smav				    CTL_CMD_FLAG_OK_ON_OFFLINE |
934229997Sken				    CTL_CMD_FLAG_OK_ON_SECONDARY |
935268551Smav				    CTL_FLAG_DATA_IN |
936274003Smav				    CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
937272635Smav CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
938229997Sken
939229997Sken/* 5B CLOSE TRACK/SESSION */
940229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
941229997Sken
942229997Sken/* 5C READ BUFFER CAPACITY */
943229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
944229997Sken
945229997Sken/* 5D SEND CUE SHEET */
946229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
947229997Sken
948229997Sken/* 5E PERSISTENT RESERVE IN */
949268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
950229997Sken CTL_LUN_PAT_NONE},
951229997Sken
952229997Sken/* 5F PERSISTENT RESERVE OUT */
953268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
954229997Sken CTL_LUN_PAT_NONE},
955229997Sken
956229997Sken/* 60 */
957229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
958229997Sken
959229997Sken/* 61 */
960229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
961229997Sken
962229997Sken/* 62 */
963229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
964229997Sken
965229997Sken/* 63 */
966229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
967229997Sken
968229997Sken/* 64 */
969229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
970229997Sken
971229997Sken/* 65 */
972229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
973229997Sken
974229997Sken/* 66 */
975229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
976229997Sken
977229997Sken/* 67 */
978229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
979229997Sken
980229997Sken/* 68 */
981229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
982229997Sken
983229997Sken/* 69 */
984229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
985229997Sken
986229997Sken/* 6A */
987229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
988229997Sken
989229997Sken/* 6B */
990229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
991229997Sken
992229997Sken/* 6C */
993229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
994229997Sken
995229997Sken/* 6D */
996229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
997229997Sken
998229997Sken/* 6E */
999229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1000229997Sken
1001229997Sken/* 6F */
1002229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1003229997Sken
1004229997Sken/* 70 */
1005229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1006229997Sken
1007229997Sken/* 71 */
1008229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1009229997Sken
1010229997Sken/* 72 */
1011229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1012229997Sken
1013229997Sken/* 73 */
1014229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1015229997Sken
1016229997Sken/* 74 */
1017229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1018229997Sken
1019229997Sken/* 75 */
1020229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1021229997Sken
1022229997Sken/* 76 */
1023229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1024229997Sken
1025229997Sken/* 77 */
1026229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1027229997Sken
1028229997Sken/* 78 */
1029229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1030229997Sken
1031229997Sken/* 79 */
1032229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1033229997Sken
1034229997Sken/* 7A */
1035229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1036229997Sken
1037229997Sken/* 7B */
1038229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1039229997Sken
1040229997Sken/* 7C */
1041229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1042229997Sken
1043229997Sken/* 7D */
1044229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1045229997Sken
1046229997Sken/* 7E */
1047229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1048229997Sken
1049229997Sken/* 7F */
1050229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1051229997Sken
1052229997Sken/* 80 XDWRITE EXTENDED(16) */
1053229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1054229997Sken
1055229997Sken/* 81 REBUILD(16) */
1056229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1057229997Sken
1058229997Sken/* 82 REGENERATE(16) */
1059229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1060229997Sken
1061229997Sken/* 83 EXTENDED COPY */
1062269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1063269296Smav CTL_LUN_PAT_NONE},
1064229997Sken
1065229997Sken/* 84 RECEIVE COPY RESULTS */
1066269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1067269296Smav CTL_LUN_PAT_NONE},
1068229997Sken
1069229997Sken/* 85 */
1070229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1071229997Sken
1072229997Sken/* 86 ACCESS CONTROL IN */
1073229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1074229997Sken
1075229997Sken/* 87 ACCESS CONTROL OUT */
1076229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1077229997Sken
1078229997Sken/* 88 READ(16) */
1079229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
1080274003Smav                                  CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
1081268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1082272638Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1083268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1084229997Sken
1085268151Smav/* 89 COMPARE AND WRITE */
1086268151Smav{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1087268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1088268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1089268674Smav      0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}},
1090229997Sken
1091229997Sken/* 8A WRITE(16) */
1092229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1093268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1094272638Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1095268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1096229997Sken
1097229997Sken/* 8B */
1098229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1099229997Sken
1100229997Sken/* 8C READ ATTRIBUTE */
1101229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1102229997Sken
1103229997Sken/* 8D WRITE ATTRIBUTE */
1104229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1105229997Sken
1106229997Sken/* 8E WRITE AND VERIFY(16) */
1107229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1108268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1109272642Smav 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1110268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1111229997Sken
1112229997Sken/* 8F VERIFY(16) */
1113268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
1114268151Smav			      CTL_FLAG_DATA_OUT |
1115274003Smav			      CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
1116268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1117268674Smav 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1118268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1119229997Sken
1120229997Sken/* 90 PRE-FETCH(16) */
1121229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1122229997Sken
1123229997Sken/* 91 SYNCHRONIZE CACHE(16) */
1124229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
1125229997Sken				   CTL_FLAG_DATA_NONE,
1126268674Smav CTL_LUN_PAT_NONE,
1127268674Smav 16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1128268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1129229997Sken
1130229997Sken/* 92 LOCK UNLOCK CACHE(16) */
1131229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1132229997Sken
1133229997Sken/* 93 WRITE SAME(16) */
1134265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
1135265634Smav				   CTL_FLAG_DATA_OUT,
1136268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1137272632Smav 16, {0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1138268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1139229997Sken
1140229997Sken/* 94 */
1141229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1142229997Sken
1143229997Sken/* 95 */
1144229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1145229997Sken
1146229997Sken/* 96 */
1147229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1148229997Sken
1149229997Sken/* 97 */
1150229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1151229997Sken
1152229997Sken/* 98 */
1153229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1154229997Sken
1155229997Sken/* 99 */
1156229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1157229997Sken
1158229997Sken/* 9A */
1159229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1160229997Sken
1161229997Sken/* 9B */
1162229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1163229997Sken
1164273311Smav/* 9C WRITE ATOMIC (16) */
1165273311Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1166273311Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1167273311Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1168273311Smav      0xff, 0xff, 0, 0, 0xff, 0xff, 0, 0x07}},
1169229997Sken
1170229997Sken/* 9D */
1171229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1172229997Sken
1173229997Sken/* 9E SERVICE ACTION IN(16) */
1174268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1175268674Smav CTL_LUN_PAT_NONE},
1176229997Sken
1177229997Sken/* 9F SERVICE ACTION OUT(16) */
1178229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1179229997Sken
1180229997Sken/* A0 REPORT LUNS */
1181229997Sken{ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
1182229997Sken				  CTL_CMD_FLAG_ALLOW_ON_RESV |
1183229997Sken				  CTL_CMD_FLAG_NO_SENSE |
1184229997Sken				  CTL_CMD_FLAG_OK_ON_STOPPED |
1185229997Sken				  CTL_CMD_FLAG_OK_ON_INOPERABLE |
1186229997Sken				  CTL_CMD_FLAG_OK_ON_OFFLINE |
1187229997Sken				  CTL_CMD_FLAG_OK_ON_SECONDARY |
1188229997Sken				  CTL_FLAG_DATA_IN |
1189229997Sken				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1190268674Smav CTL_LUN_PAT_NONE,
1191268674Smav 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1192229997Sken
1193229997Sken/* A1 BLANK */
1194229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1195229997Sken
1196229997Sken/* A2 SEND EVENT */
1197229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1198229997Sken
1199268674Smav/* A3 MAINTENANCE IN */
1200268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1201229997Sken CTL_LUN_PAT_NONE},
1202229997Sken
1203268674Smav/* A4 MAINTENANCE OUT */
1204229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1205229997Sken
1206229997Sken/* A5 MOVE MEDIUM */
1207229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1208229997Sken
1209229997Sken/* A6 EXCHANGE MEDIUM */
1210229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1211229997Sken
1212229997Sken/* A7 MOVE MEDIUM ATTACHED */
1213229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1214229997Sken
1215229997Sken/* A8 READ(12) */
1216229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
1217274003Smav                                  CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
1218268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1219272638Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1220229997Sken
1221229997Sken/* A9 PLAY TRACK RELATIVE(12) */
1222229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1223229997Sken
1224229997Sken/* AA WRITE(12) */
1225229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1226268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1227272638Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1228229997Sken
1229229997Sken/* AB SERVICE ACTION IN(12) */
1230229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1231229997Sken
1232229997Sken/* AC ERASE(12) */
1233229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1234229997Sken
1235229997Sken/* AD READ DVD STRUCTURE */
1236229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1237229997Sken
1238229997Sken/* AE WRITE AND VERIFY(12) */
1239229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
1240268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
1241272642Smav 12, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1242229997Sken
1243229997Sken/* AF VERIFY(12) */
1244268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
1245268151Smav			      CTL_FLAG_DATA_OUT |
1246274003Smav			      CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
1247268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
1248268674Smav 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1249229997Sken
1250229997Sken/* B0 SEARCH DATA HIGH(12) */
1251229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1252229997Sken
1253229997Sken/* B1 SEARCH DATA EQUAL(12) */
1254229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1255229997Sken
1256229997Sken/* B2 SEARCH DATA LOW(12) */
1257229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1258229997Sken
1259229997Sken/* B3 SET LIMITS(12) */
1260229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1261229997Sken
1262229997Sken/* B4 READ ELEMENT STATUS ATTACHED */
1263229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1264229997Sken
1265229997Sken/* B5 REQUEST VOLUME ELEMENT ADDRESS */
1266229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1267229997Sken
1268229997Sken/* B6 SEND VOLUME TAG */
1269229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1270229997Sken
1271229997Sken/* B7 READ DEFECT DATA(12) */
1272273323Smav{ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_SLUN |
1273273323Smav				     CTL_FLAG_DATA_IN |
1274274003Smav				     CTL_CMD_FLAG_ALLOW_ON_PR_WRESV,
1275273323Smav CTL_LUN_PAT_NONE,
1276273323Smav 12, {0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1277229997Sken
1278229997Sken/* B8 READ ELEMENT STATUS */
1279229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1280229997Sken
1281229997Sken/* B9 READ CD MSF */
1282229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1283229997Sken
1284268674Smav/* BA REDUNDANCY GROUP IN */
1285229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1286229997Sken
1287268674Smav/* BB REDUNDANCY GROUP OUT */
1288229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1289229997Sken
1290268674Smav/* BC SPARE IN */
1291229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1292229997Sken
1293268674Smav/* BD SPARE OUT */
1294229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1295229997Sken
1296268674Smav/* BE VOLUME SET IN */
1297229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1298229997Sken
1299268674Smav/* BF VOLUME SET OUT */
1300229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1301229997Sken
1302229997Sken/* C0 - ISC_SEND_MSG_SHORT */
1303229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1304229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE,
1305268674Smav CTL_LUN_PAT_NONE,
1306268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1307268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1308229997Sken
1309229997Sken/* C1 - ISC_SEND_MSG */
1310229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1311229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
1312268674Smav CTL_LUN_PAT_NONE,
1313268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1314268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1315229997Sken
1316229997Sken/* C2 - ISC_WRITE */
1317229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1318229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
1319268674Smav CTL_LUN_PAT_NONE,
1320268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1321268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1322229997Sken
1323229997Sken/* C3 - ISC_READ */
1324229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1325229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN,
1326268674Smav CTL_LUN_PAT_NONE,
1327268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1328268674Smav      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1329229997Sken
1330229997Sken/* C4 */
1331229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1332229997Sken
1333229997Sken/* C5 */
1334229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1335229997Sken
1336229997Sken/* C6 */
1337229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1338229997Sken
1339229997Sken/* C7 */
1340229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1341229997Sken
1342229997Sken/* C8 */
1343229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1344229997Sken
1345229997Sken/* C9 */
1346229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1347229997Sken
1348229997Sken/* CA */
1349229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1350229997Sken
1351229997Sken/* CB */
1352229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1353229997Sken
1354229997Sken/* CC */
1355229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1356229997Sken
1357229997Sken/* CD */
1358229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1359229997Sken
1360229997Sken/* CE */
1361229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1362229997Sken
1363229997Sken/* CF */
1364229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1365229997Sken
1366229997Sken/* D0 */
1367229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1368229997Sken
1369229997Sken/* D1 */
1370229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1371229997Sken
1372229997Sken/* D2 */
1373229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1374229997Sken
1375229997Sken/* D3 */
1376229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1377229997Sken
1378229997Sken/* D4 */
1379229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1380229997Sken
1381229997Sken/* D5 */
1382229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1383229997Sken
1384229997Sken/* D6 */
1385229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1386229997Sken
1387229997Sken/* D7 */
1388229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1389229997Sken
1390229997Sken/* D8 */
1391229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1392229997Sken
1393229997Sken/* D9 */
1394229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1395229997Sken
1396229997Sken/* DA */
1397229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1398229997Sken
1399229997Sken/* DB */
1400229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1401229997Sken
1402229997Sken/* DC */
1403229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1404229997Sken
1405229997Sken/* DD */
1406229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1407229997Sken
1408229997Sken/* DE */
1409229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1410229997Sken
1411229997Sken/* DF */
1412229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1413229997Sken
1414229997Sken/* E0 */
1415229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1416229997Sken
1417229997Sken/* E1 */
1418229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1419229997Sken
1420229997Sken/* E2 */
1421229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1422229997Sken
1423229997Sken/* E3 */
1424229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1425229997Sken
1426229997Sken/* E4 */
1427229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1428229997Sken
1429229997Sken/* E5 */
1430229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1431229997Sken
1432229997Sken/* E6 */
1433229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1434229997Sken
1435229997Sken/* E7 */
1436229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1437229997Sken
1438229997Sken/* E8 */
1439229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1440229997Sken
1441229997Sken/* E9 */
1442229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1443229997Sken
1444229997Sken/* EA */
1445229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1446229997Sken
1447229997Sken/* EB */
1448229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1449229997Sken
1450229997Sken/* EC */
1451229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1452229997Sken
1453229997Sken/* ED */
1454229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1455229997Sken
1456229997Sken/* EE */
1457229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1458229997Sken
1459229997Sken/* EF */
1460229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1461229997Sken
1462229997Sken/* F0 */
1463229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1464229997Sken
1465229997Sken/* F1 */
1466229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1467229997Sken
1468229997Sken/* F2 */
1469229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1470229997Sken
1471229997Sken/* F3 */
1472229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1473229997Sken
1474229997Sken/* F4 */
1475229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1476229997Sken
1477229997Sken/* F5 */
1478229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1479229997Sken
1480229997Sken/* F6 */
1481229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1482229997Sken
1483229997Sken/* F7 */
1484229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1485229997Sken
1486229997Sken/* F8 */
1487229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1488229997Sken
1489229997Sken/* F9 */
1490229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1491229997Sken
1492229997Sken/* FA */
1493229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1494229997Sken
1495229997Sken/* FB */
1496229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1497229997Sken
1498229997Sken/* FC */
1499229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1500229997Sken
1501229997Sken/* FD */
1502229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1503229997Sken
1504229997Sken/* FE */
1505229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1506229997Sken
1507229997Sken/* FF */
1508229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}
1509229997Sken
1510229997Sken};
1511