xref: /freebsd/sys/cam/ctl/ctl_cmd_table.c (revision 130f4520cba830cc6da47c9f871fed78710a4709)
1*130f4520SKenneth D. Merry /*-
2*130f4520SKenneth D. Merry  * Copyright (c) 2003, 2004, 2005, 2009 Silicon Graphics International Corp.
3*130f4520SKenneth D. Merry  * All rights reserved.
4*130f4520SKenneth D. Merry  *
5*130f4520SKenneth D. Merry  * Redistribution and use in source and binary forms, with or without
6*130f4520SKenneth D. Merry  * modification, are permitted provided that the following conditions
7*130f4520SKenneth D. Merry  * are met:
8*130f4520SKenneth D. Merry  * 1. Redistributions of source code must retain the above copyright
9*130f4520SKenneth D. Merry  *    notice, this list of conditions, and the following disclaimer,
10*130f4520SKenneth D. Merry  *    without modification.
11*130f4520SKenneth D. Merry  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
12*130f4520SKenneth D. Merry  *    substantially similar to the "NO WARRANTY" disclaimer below
13*130f4520SKenneth D. Merry  *    ("Disclaimer") and any redistribution must be conditioned upon
14*130f4520SKenneth D. Merry  *    including a substantially similar Disclaimer requirement for further
15*130f4520SKenneth D. Merry  *    binary redistribution.
16*130f4520SKenneth D. Merry  *
17*130f4520SKenneth D. Merry  * NO WARRANTY
18*130f4520SKenneth D. Merry  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19*130f4520SKenneth D. Merry  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20*130f4520SKenneth D. Merry  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
21*130f4520SKenneth D. Merry  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22*130f4520SKenneth D. Merry  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23*130f4520SKenneth D. Merry  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24*130f4520SKenneth D. Merry  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25*130f4520SKenneth D. Merry  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26*130f4520SKenneth D. Merry  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27*130f4520SKenneth D. Merry  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28*130f4520SKenneth D. Merry  * POSSIBILITY OF SUCH DAMAGES.
29*130f4520SKenneth D. Merry  *
30*130f4520SKenneth D. Merry  * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_cmd_table.c#4 $
31*130f4520SKenneth D. Merry  * $FreeBSD$
32*130f4520SKenneth D. Merry  */
33*130f4520SKenneth D. Merry /*
34*130f4520SKenneth D. Merry  * CAM Target Layer command table.
35*130f4520SKenneth D. Merry  *
36*130f4520SKenneth D. Merry  * Author: Ken Merry <ken@FreeBSD.org>, Kim Le
37*130f4520SKenneth D. Merry  */
38*130f4520SKenneth D. Merry 
39*130f4520SKenneth D. Merry #include <sys/cdefs.h>
40*130f4520SKenneth D. Merry #include <sys/param.h>
41*130f4520SKenneth D. Merry #include <sys/systm.h>
42*130f4520SKenneth D. Merry #include <sys/kernel.h>
43*130f4520SKenneth D. Merry #include <sys/types.h>
44*130f4520SKenneth D. Merry #include <sys/malloc.h>
45*130f4520SKenneth D. Merry #include <sys/condvar.h>
46*130f4520SKenneth D. Merry #include <sys/queue.h>
47*130f4520SKenneth D. Merry 
48*130f4520SKenneth D. Merry #include <cam/scsi/scsi_all.h>
49*130f4520SKenneth D. Merry #include <cam/scsi/scsi_da.h>
50*130f4520SKenneth D. Merry #include <cam/ctl/ctl_io.h>
51*130f4520SKenneth D. Merry #include <cam/ctl/ctl.h>
52*130f4520SKenneth D. Merry #include <cam/ctl/ctl_frontend.h>
53*130f4520SKenneth D. Merry #include <cam/ctl/ctl_backend.h>
54*130f4520SKenneth D. Merry #include <cam/ctl/ctl_frontend_internal.h>
55*130f4520SKenneth D. Merry #include <cam/ctl/ctl_ioctl.h>
56*130f4520SKenneth D. Merry #include <cam/ctl/ctl_ha.h>
57*130f4520SKenneth D. Merry #include <cam/ctl/ctl_private.h>
58*130f4520SKenneth D. Merry 
59*130f4520SKenneth D. Merry /*
60*130f4520SKenneth D. Merry  * Whenever support for a new command is added, it should be added to this
61*130f4520SKenneth D. Merry  * table.
62*130f4520SKenneth D. Merry  */
63*130f4520SKenneth D. Merry struct ctl_cmd_entry ctl_cmd_table[] =
64*130f4520SKenneth D. Merry {
65*130f4520SKenneth D. Merry /* 00 TEST UNIT READY */
66*130f4520SKenneth D. Merry {ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH |
67*130f4520SKenneth D. Merry 			  CTL_FLAG_DATA_NONE |
68*130f4520SKenneth D. Merry 			  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
69*130f4520SKenneth D. Merry  CTL_LUN_PAT_TUR},
70*130f4520SKenneth D. Merry 
71*130f4520SKenneth D. Merry /* 01 REWIND */
72*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
73*130f4520SKenneth D. Merry 
74*130f4520SKenneth D. Merry /* 02 */
75*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
76*130f4520SKenneth D. Merry 
77*130f4520SKenneth D. Merry /* 03 REQUEST SENSE */
78*130f4520SKenneth D. Merry {ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN |
79*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_ALL_LUNS |
80*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_RESV |
81*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_NO_SENSE |
82*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_STOPPED |
83*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
84*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_OFFLINE |
85*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_SECONDARY |
86*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
87*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
88*130f4520SKenneth D. Merry 
89*130f4520SKenneth D. Merry /* 04 FORMAT UNIT */
90*130f4520SKenneth D. Merry {ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN |
91*130f4520SKenneth D. Merry 				CTL_CMD_FLAG_OK_ON_INOPERABLE |
92*130f4520SKenneth D. Merry 				CTL_FLAG_DATA_OUT,
93*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
94*130f4520SKenneth D. Merry 
95*130f4520SKenneth D. Merry /* 05 READ BLOCK LIMITS */
96*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
97*130f4520SKenneth D. Merry 
98*130f4520SKenneth D. Merry /* 06 */
99*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
100*130f4520SKenneth D. Merry 
101*130f4520SKenneth D. Merry /* 07 REASSIGN BLOCKS */
102*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
103*130f4520SKenneth D. Merry 
104*130f4520SKenneth D. Merry /* 08 READ(6) */
105*130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
106*130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
107*130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
108*130f4520SKenneth D. Merry  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE},
109*130f4520SKenneth D. Merry 
110*130f4520SKenneth D. Merry /* 09 */
111*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
112*130f4520SKenneth D. Merry 
113*130f4520SKenneth D. Merry /* 0A WRITE(6) */
114*130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
115*130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_OUT,
116*130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
117*130f4520SKenneth D. Merry 
118*130f4520SKenneth D. Merry /* 0B SEEK(6) */
119*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
120*130f4520SKenneth D. Merry 
121*130f4520SKenneth D. Merry /* 0C */
122*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
123*130f4520SKenneth D. Merry 
124*130f4520SKenneth D. Merry /* 0D */
125*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
126*130f4520SKenneth D. Merry 
127*130f4520SKenneth D. Merry /* 0E */
128*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
129*130f4520SKenneth D. Merry 
130*130f4520SKenneth D. Merry /* 0F READ REVERSE(6) */
131*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
132*130f4520SKenneth D. Merry 
133*130f4520SKenneth D. Merry /* 10 WRITE FILEMARKS(6) */
134*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
135*130f4520SKenneth D. Merry 
136*130f4520SKenneth D. Merry /* 11 SPACE(6) */
137*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
138*130f4520SKenneth D. Merry 
139*130f4520SKenneth D. Merry /* 12 INQUIRY */
140*130f4520SKenneth D. Merry {ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
141*130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_ALLOW_ON_RESV |
142*130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_NO_SENSE |
143*130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_STOPPED |
144*130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_INOPERABLE |
145*130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_OFFLINE |
146*130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_SECONDARY |
147*130f4520SKenneth D. Merry 			      CTL_FLAG_DATA_IN |
148*130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
149*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
150*130f4520SKenneth D. Merry 
151*130f4520SKenneth D. Merry /* 13 */
152*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
153*130f4520SKenneth D. Merry 
154*130f4520SKenneth D. Merry /* 14 RECOVER BUFFERED DATA */
155*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
156*130f4520SKenneth D. Merry 
157*130f4520SKenneth D. Merry /* 15 MODE SELECT(6) */
158*130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
159*130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_STOPPED |
160*130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
161*130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_SECONDARY |
162*130f4520SKenneth D. Merry 				     CTL_FLAG_DATA_OUT,
163*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
164*130f4520SKenneth D. Merry 
165*130f4520SKenneth D. Merry /* 16 RESERVE(6) */
166*130f4520SKenneth D. Merry {ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV |
167*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_BOTH |
168*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
169*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
170*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
171*130f4520SKenneth D. Merry 				    CTL_FLAG_DATA_OUT,
172*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
173*130f4520SKenneth D. Merry 
174*130f4520SKenneth D. Merry /* 17 RELEASE(6) */
175*130f4520SKenneth D. Merry {ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV |
176*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_BOTH |
177*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
178*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
179*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_SECONDARY |
180*130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
181*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
182*130f4520SKenneth D. Merry 
183*130f4520SKenneth D. Merry /* 18 COPY */
184*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
185*130f4520SKenneth D. Merry 
186*130f4520SKenneth D. Merry /* 19 ERASE(6) */
187*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
188*130f4520SKenneth D. Merry 
189*130f4520SKenneth D. Merry /* 1A MODE SENSE(6) */
190*130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
191*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
192*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
193*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
194*130f4520SKenneth D. Merry 				    CTL_FLAG_DATA_IN,
195*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
196*130f4520SKenneth D. Merry 
197*130f4520SKenneth D. Merry /* 1B START STOP UNIT */
198*130f4520SKenneth D. Merry {ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
199*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
200*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
201*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_OFFLINE |
202*130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE |
203*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
204*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
205*130f4520SKenneth D. Merry 
206*130f4520SKenneth D. Merry /* 1C RECEIVE DIAGNOSTIC RESULTS */
207*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
208*130f4520SKenneth D. Merry 
209*130f4520SKenneth D. Merry /* 1D SEND DIAGNOSTIC */
210*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
211*130f4520SKenneth D. Merry 
212*130f4520SKenneth D. Merry /* 1E PREVENT ALLOW MEDIUM REMOVAL */
213*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
214*130f4520SKenneth D. Merry 
215*130f4520SKenneth D. Merry /* 1F */
216*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
217*130f4520SKenneth D. Merry 
218*130f4520SKenneth D. Merry /* 20 */
219*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
220*130f4520SKenneth D. Merry 
221*130f4520SKenneth D. Merry /* 21 */
222*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
223*130f4520SKenneth D. Merry 
224*130f4520SKenneth D. Merry /* 22 */
225*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
226*130f4520SKenneth D. Merry 
227*130f4520SKenneth D. Merry /* 23 */
228*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
229*130f4520SKenneth D. Merry 
230*130f4520SKenneth D. Merry /* 24 SET WINDOW */
231*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
232*130f4520SKenneth D. Merry 
233*130f4520SKenneth D. Merry /* 25 READ CAPACITY(10) */
234*130f4520SKenneth D. Merry {ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN|
235*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_STOPPED |
236*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
237*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_SECONDARY |
238*130f4520SKenneth D. Merry 				       CTL_FLAG_DATA_IN |
239*130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
240*130f4520SKenneth D. Merry  CTL_LUN_PAT_READCAP},
241*130f4520SKenneth D. Merry 
242*130f4520SKenneth D. Merry /* 26 */
243*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
244*130f4520SKenneth D. Merry 
245*130f4520SKenneth D. Merry /* 27 */
246*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
247*130f4520SKenneth D. Merry 
248*130f4520SKenneth D. Merry /* 28 READ(10) */
249*130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
250*130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
251*130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
252*130f4520SKenneth D. Merry  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE},
253*130f4520SKenneth D. Merry 
254*130f4520SKenneth D. Merry /* 29 READ GENERATION */
255*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
256*130f4520SKenneth D. Merry 
257*130f4520SKenneth D. Merry /* 2A WRITE(10) */
258*130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
259*130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
260*130f4520SKenneth D. Merry 
261*130f4520SKenneth D. Merry /* 2B SEEK(10) */
262*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
263*130f4520SKenneth D. Merry 
264*130f4520SKenneth D. Merry /* 2C ERASE(10) */
265*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
266*130f4520SKenneth D. Merry 
267*130f4520SKenneth D. Merry /* 2D READ UPDATED BLOCK */
268*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
269*130f4520SKenneth D. Merry 
270*130f4520SKenneth D. Merry /* 2E WRITE AND VERIFY(10) */
271*130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
272*130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
273*130f4520SKenneth D. Merry 
274*130f4520SKenneth D. Merry /* 2F VERIFY(10) */
275*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
276*130f4520SKenneth D. Merry 
277*130f4520SKenneth D. Merry /* 30 SEARCH DATA HIGH(10) */
278*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
279*130f4520SKenneth D. Merry 
280*130f4520SKenneth D. Merry /* 31 SEARCH DATA EQUAL(10) */
281*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
282*130f4520SKenneth D. Merry 
283*130f4520SKenneth D. Merry /* 32 SEARCH DATA LOW(10) */
284*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
285*130f4520SKenneth D. Merry 
286*130f4520SKenneth D. Merry /* 33 SET LIMITS(10) */
287*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
288*130f4520SKenneth D. Merry 
289*130f4520SKenneth D. Merry /* 34 PRE-FETCH(10) */
290*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
291*130f4520SKenneth D. Merry 
292*130f4520SKenneth D. Merry /* 35 SYNCHRONIZE CACHE(10) */
293*130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
294*130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
295*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
296*130f4520SKenneth D. Merry 
297*130f4520SKenneth D. Merry /* 36 LOCK UNLOCK CACHE(10) */
298*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
299*130f4520SKenneth D. Merry 
300*130f4520SKenneth D. Merry /* 37 READ DEFECT DATA(10) */
301*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
302*130f4520SKenneth D. Merry 
303*130f4520SKenneth D. Merry /* 38 MEDIUM SCAN */
304*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
305*130f4520SKenneth D. Merry 
306*130f4520SKenneth D. Merry /* 39 COMPARE */
307*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
308*130f4520SKenneth D. Merry 
309*130f4520SKenneth D. Merry /* 3A COPY AND VERIFY */
310*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
311*130f4520SKenneth D. Merry 
312*130f4520SKenneth D. Merry /* 3B WRITE BUFFER */
313*130f4520SKenneth D. Merry {ctl_write_buffer, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_PROC |
314*130f4520SKenneth D. Merry 				     CTL_FLAG_DATA_OUT,
315*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
316*130f4520SKenneth D. Merry 
317*130f4520SKenneth D. Merry /* 3C READ BUFFER */
318*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
319*130f4520SKenneth D. Merry 
320*130f4520SKenneth D. Merry /* 3D UPDATE BLOCK */
321*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
322*130f4520SKenneth D. Merry 
323*130f4520SKenneth D. Merry /* 3E READ LONG */
324*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
325*130f4520SKenneth D. Merry 
326*130f4520SKenneth D. Merry /* 3F WRITE LONG */
327*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
328*130f4520SKenneth D. Merry 
329*130f4520SKenneth D. Merry /* 40 CHANGE DEFINITION */
330*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
331*130f4520SKenneth D. Merry 
332*130f4520SKenneth D. Merry /* 41 WRITE SAME(10) */
333*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
334*130f4520SKenneth D. Merry 
335*130f4520SKenneth D. Merry /* 42 READ SUB-CHANNEL */
336*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
337*130f4520SKenneth D. Merry 
338*130f4520SKenneth D. Merry /* 43 READ TOC/PMA/ATIP */
339*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
340*130f4520SKenneth D. Merry 
341*130f4520SKenneth D. Merry /* 44 REPORT DENSITY SUPPORT */
342*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
343*130f4520SKenneth D. Merry 
344*130f4520SKenneth D. Merry /* 45 PLAY AUDIO(10) */
345*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
346*130f4520SKenneth D. Merry 
347*130f4520SKenneth D. Merry /* 46 GET CONFIGURATION */
348*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
349*130f4520SKenneth D. Merry 
350*130f4520SKenneth D. Merry /* 47 PLAY AUDIO MSF */
351*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
352*130f4520SKenneth D. Merry 
353*130f4520SKenneth D. Merry /* 48 PLAY AUDIO TRACK INDEX */
354*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
355*130f4520SKenneth D. Merry 
356*130f4520SKenneth D. Merry /* 49 PLAY TRACK RELATIVE(10) */
357*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
358*130f4520SKenneth D. Merry 
359*130f4520SKenneth D. Merry /* 4A GET EVENT STATUS NOTIFICATION */
360*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
361*130f4520SKenneth D. Merry 
362*130f4520SKenneth D. Merry /* 4B PAUSE/RESUME */
363*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
364*130f4520SKenneth D. Merry 
365*130f4520SKenneth D. Merry /* 4C LOG SELECT */
366*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
367*130f4520SKenneth D. Merry 
368*130f4520SKenneth D. Merry /* 4D LOG SENSE */
369*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
370*130f4520SKenneth D. Merry 
371*130f4520SKenneth D. Merry /* 4E STOP PLAY/SCAN */
372*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
373*130f4520SKenneth D. Merry 
374*130f4520SKenneth D. Merry /* 4F */
375*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
376*130f4520SKenneth D. Merry 
377*130f4520SKenneth D. Merry /* 50 XDWRITE(10) */
378*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
379*130f4520SKenneth D. Merry 
380*130f4520SKenneth D. Merry /* 51 XPWRITE(10) */
381*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
382*130f4520SKenneth D. Merry 
383*130f4520SKenneth D. Merry /* 52 XDREAD(10) */
384*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
385*130f4520SKenneth D. Merry 
386*130f4520SKenneth D. Merry /* 53 RESERVE TRACK */
387*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
388*130f4520SKenneth D. Merry 
389*130f4520SKenneth D. Merry /* 54 SEND OPC INFORMATION */
390*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
391*130f4520SKenneth D. Merry 
392*130f4520SKenneth D. Merry /* 55 MODE SELECT(10) */
393*130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
394*130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_STOPPED |
395*130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
396*130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_SECONDARY |
397*130f4520SKenneth D. Merry 				     CTL_FLAG_DATA_OUT,
398*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
399*130f4520SKenneth D. Merry 
400*130f4520SKenneth D. Merry /* 56 RESERVE(10) */
401*130f4520SKenneth D. Merry {ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV |
402*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_BOTH |
403*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
404*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
405*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
406*130f4520SKenneth D. Merry 				    CTL_FLAG_DATA_OUT,
407*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
408*130f4520SKenneth D. Merry 
409*130f4520SKenneth D. Merry /* 57 RELEASE(10) */
410*130f4520SKenneth D. Merry {ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV |
411*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_BOTH |
412*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
413*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
414*130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_SECONDARY |
415*130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_OUT,
416*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
417*130f4520SKenneth D. Merry 
418*130f4520SKenneth D. Merry /* 58 REPAIR TRACK */
419*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
420*130f4520SKenneth D. Merry 
421*130f4520SKenneth D. Merry /* 59 READ MASTER CUE */
422*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
423*130f4520SKenneth D. Merry 
424*130f4520SKenneth D. Merry /* 5A MODE SENSE(10) */
425*130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
426*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
427*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
428*130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
429*130f4520SKenneth D. Merry 				    CTL_FLAG_DATA_IN,
430*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
431*130f4520SKenneth D. Merry 
432*130f4520SKenneth D. Merry /* 5B CLOSE TRACK/SESSION */
433*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
434*130f4520SKenneth D. Merry 
435*130f4520SKenneth D. Merry /* 5C READ BUFFER CAPACITY */
436*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
437*130f4520SKenneth D. Merry 
438*130f4520SKenneth D. Merry /* 5D SEND CUE SHEET */
439*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
440*130f4520SKenneth D. Merry 
441*130f4520SKenneth D. Merry /* 5E PERSISTENT RESERVE IN */
442*130f4520SKenneth D. Merry {ctl_persistent_reserve_in, CTL_SERIDX_PRES_IN, CTL_CMD_FLAG_ALLOW_ON_RESV |
443*130f4520SKenneth D. Merry 						CTL_CMD_FLAG_OK_ON_BOTH |
444*130f4520SKenneth D. Merry 						CTL_CMD_FLAG_OK_ON_STOPPED |
445*130f4520SKenneth D. Merry 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
446*130f4520SKenneth D. Merry 						CTL_CMD_FLAG_OK_ON_SECONDARY |
447*130f4520SKenneth D. Merry 						CTL_FLAG_DATA_IN |
448*130f4520SKenneth D. Merry 						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
449*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
450*130f4520SKenneth D. Merry 
451*130f4520SKenneth D. Merry //{ctl_persistent_reserve_in, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
452*130f4520SKenneth D. Merry 
453*130f4520SKenneth D. Merry /* 5F PERSISTENT RESERVE OUT */
454*130f4520SKenneth D. Merry {ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV |
455*130f4520SKenneth D. Merry 						  CTL_CMD_FLAG_OK_ON_BOTH |
456*130f4520SKenneth D. Merry 						  CTL_CMD_FLAG_OK_ON_STOPPED |
457*130f4520SKenneth D. Merry 						  CTL_CMD_FLAG_OK_ON_INOPERABLE|
458*130f4520SKenneth D. Merry 						  CTL_CMD_FLAG_OK_ON_SECONDARY |
459*130f4520SKenneth D. Merry 						  CTL_FLAG_DATA_OUT |
460*130f4520SKenneth D. Merry 						  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
461*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
462*130f4520SKenneth D. Merry 
463*130f4520SKenneth D. Merry //{ctl_persistent_reserve_out, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
464*130f4520SKenneth D. Merry 
465*130f4520SKenneth D. Merry /* 60 */
466*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
467*130f4520SKenneth D. Merry 
468*130f4520SKenneth D. Merry /* 61 */
469*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
470*130f4520SKenneth D. Merry 
471*130f4520SKenneth D. Merry /* 62 */
472*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
473*130f4520SKenneth D. Merry 
474*130f4520SKenneth D. Merry /* 63 */
475*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
476*130f4520SKenneth D. Merry 
477*130f4520SKenneth D. Merry /* 64 */
478*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
479*130f4520SKenneth D. Merry 
480*130f4520SKenneth D. Merry /* 65 */
481*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
482*130f4520SKenneth D. Merry 
483*130f4520SKenneth D. Merry /* 66 */
484*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
485*130f4520SKenneth D. Merry 
486*130f4520SKenneth D. Merry /* 67 */
487*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
488*130f4520SKenneth D. Merry 
489*130f4520SKenneth D. Merry /* 68 */
490*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
491*130f4520SKenneth D. Merry 
492*130f4520SKenneth D. Merry /* 69 */
493*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
494*130f4520SKenneth D. Merry 
495*130f4520SKenneth D. Merry /* 6A */
496*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
497*130f4520SKenneth D. Merry 
498*130f4520SKenneth D. Merry /* 6B */
499*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
500*130f4520SKenneth D. Merry 
501*130f4520SKenneth D. Merry /* 6C */
502*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
503*130f4520SKenneth D. Merry 
504*130f4520SKenneth D. Merry /* 6D */
505*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
506*130f4520SKenneth D. Merry 
507*130f4520SKenneth D. Merry /* 6E */
508*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
509*130f4520SKenneth D. Merry 
510*130f4520SKenneth D. Merry /* 6F */
511*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
512*130f4520SKenneth D. Merry 
513*130f4520SKenneth D. Merry /* 70 */
514*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
515*130f4520SKenneth D. Merry 
516*130f4520SKenneth D. Merry /* 71 */
517*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
518*130f4520SKenneth D. Merry 
519*130f4520SKenneth D. Merry /* 72 */
520*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
521*130f4520SKenneth D. Merry 
522*130f4520SKenneth D. Merry /* 73 */
523*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
524*130f4520SKenneth D. Merry 
525*130f4520SKenneth D. Merry /* 74 */
526*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
527*130f4520SKenneth D. Merry 
528*130f4520SKenneth D. Merry /* 75 */
529*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
530*130f4520SKenneth D. Merry 
531*130f4520SKenneth D. Merry /* 76 */
532*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
533*130f4520SKenneth D. Merry 
534*130f4520SKenneth D. Merry /* 77 */
535*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
536*130f4520SKenneth D. Merry 
537*130f4520SKenneth D. Merry /* 78 */
538*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
539*130f4520SKenneth D. Merry 
540*130f4520SKenneth D. Merry /* 79 */
541*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
542*130f4520SKenneth D. Merry 
543*130f4520SKenneth D. Merry /* 7A */
544*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
545*130f4520SKenneth D. Merry 
546*130f4520SKenneth D. Merry /* 7B */
547*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
548*130f4520SKenneth D. Merry 
549*130f4520SKenneth D. Merry /* 7C */
550*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
551*130f4520SKenneth D. Merry 
552*130f4520SKenneth D. Merry /* 7D */
553*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
554*130f4520SKenneth D. Merry 
555*130f4520SKenneth D. Merry /* 7E */
556*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
557*130f4520SKenneth D. Merry 
558*130f4520SKenneth D. Merry /* 7F */
559*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
560*130f4520SKenneth D. Merry 
561*130f4520SKenneth D. Merry /* 80 XDWRITE EXTENDED(16) */
562*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
563*130f4520SKenneth D. Merry 
564*130f4520SKenneth D. Merry /* 81 REBUILD(16) */
565*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
566*130f4520SKenneth D. Merry 
567*130f4520SKenneth D. Merry /* 82 REGENERATE(16) */
568*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
569*130f4520SKenneth D. Merry 
570*130f4520SKenneth D. Merry /* 83 EXTENDED COPY */
571*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
572*130f4520SKenneth D. Merry 
573*130f4520SKenneth D. Merry /* 84 RECEIVE COPY RESULTS */
574*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
575*130f4520SKenneth D. Merry 
576*130f4520SKenneth D. Merry /* 85 */
577*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
578*130f4520SKenneth D. Merry 
579*130f4520SKenneth D. Merry /* 86 ACCESS CONTROL IN */
580*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
581*130f4520SKenneth D. Merry 
582*130f4520SKenneth D. Merry /* 87 ACCESS CONTROL OUT */
583*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
584*130f4520SKenneth D. Merry 
585*130f4520SKenneth D. Merry /* 88 READ(16) */
586*130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
587*130f4520SKenneth D. Merry                                   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
588*130f4520SKenneth D. Merry  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE},
589*130f4520SKenneth D. Merry 
590*130f4520SKenneth D. Merry /* 89 */
591*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
592*130f4520SKenneth D. Merry 
593*130f4520SKenneth D. Merry /* 8A WRITE(16) */
594*130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
595*130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
596*130f4520SKenneth D. Merry 
597*130f4520SKenneth D. Merry /* 8B */
598*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
599*130f4520SKenneth D. Merry 
600*130f4520SKenneth D. Merry /* 8C READ ATTRIBUTE */
601*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
602*130f4520SKenneth D. Merry 
603*130f4520SKenneth D. Merry /* 8D WRITE ATTRIBUTE */
604*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
605*130f4520SKenneth D. Merry 
606*130f4520SKenneth D. Merry /* 8E WRITE AND VERIFY(16) */
607*130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
608*130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
609*130f4520SKenneth D. Merry 
610*130f4520SKenneth D. Merry /* 8F VERIFY(16) */
611*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
612*130f4520SKenneth D. Merry 
613*130f4520SKenneth D. Merry /* 90 PRE-FETCH(16) */
614*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
615*130f4520SKenneth D. Merry 
616*130f4520SKenneth D. Merry /* 91 SYNCHRONIZE CACHE(16) */
617*130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
618*130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
619*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
620*130f4520SKenneth D. Merry 
621*130f4520SKenneth D. Merry /* 92 LOCK UNLOCK CACHE(16) */
622*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
623*130f4520SKenneth D. Merry 
624*130f4520SKenneth D. Merry /* 93 WRITE SAME(16) */
625*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
626*130f4520SKenneth D. Merry 
627*130f4520SKenneth D. Merry /* 94 */
628*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
629*130f4520SKenneth D. Merry 
630*130f4520SKenneth D. Merry /* 95 */
631*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
632*130f4520SKenneth D. Merry 
633*130f4520SKenneth D. Merry /* 96 */
634*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
635*130f4520SKenneth D. Merry 
636*130f4520SKenneth D. Merry /* 97 */
637*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
638*130f4520SKenneth D. Merry 
639*130f4520SKenneth D. Merry /* 98 */
640*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
641*130f4520SKenneth D. Merry 
642*130f4520SKenneth D. Merry /* 99 */
643*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
644*130f4520SKenneth D. Merry 
645*130f4520SKenneth D. Merry /* 9A */
646*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
647*130f4520SKenneth D. Merry 
648*130f4520SKenneth D. Merry /* 9B */
649*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
650*130f4520SKenneth D. Merry 
651*130f4520SKenneth D. Merry /* 9C */
652*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
653*130f4520SKenneth D. Merry 
654*130f4520SKenneth D. Merry /* 9D */
655*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
656*130f4520SKenneth D. Merry 
657*130f4520SKenneth D. Merry /* 9E SERVICE ACTION IN(16) */
658*130f4520SKenneth D. Merry /* XXX KDM not all service actions will be read capacity!! */
659*130f4520SKenneth D. Merry {ctl_service_action_in, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
660*130f4520SKenneth D. Merry 					   CTL_CMD_FLAG_OK_ON_STOPPED |
661*130f4520SKenneth D. Merry 					   CTL_CMD_FLAG_OK_ON_INOPERABLE |
662*130f4520SKenneth D. Merry 					   CTL_CMD_FLAG_OK_ON_SECONDARY |
663*130f4520SKenneth D. Merry 					   CTL_FLAG_DATA_IN |
664*130f4520SKenneth D. Merry 					   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
665*130f4520SKenneth D. Merry  CTL_LUN_PAT_READCAP},
666*130f4520SKenneth D. Merry 
667*130f4520SKenneth D. Merry /* 9F SERVICE ACTION OUT(16) */
668*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
669*130f4520SKenneth D. Merry 
670*130f4520SKenneth D. Merry /* A0 REPORT LUNS */
671*130f4520SKenneth D. Merry {ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
672*130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_RESV |
673*130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_NO_SENSE |
674*130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_STOPPED |
675*130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_INOPERABLE |
676*130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_OFFLINE |
677*130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_SECONDARY |
678*130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
679*130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
680*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
681*130f4520SKenneth D. Merry 
682*130f4520SKenneth D. Merry /* A1 BLANK */
683*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
684*130f4520SKenneth D. Merry 
685*130f4520SKenneth D. Merry /* A2 SEND EVENT */
686*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
687*130f4520SKenneth D. Merry 
688*130f4520SKenneth D. Merry /* A3 MAINTENANCE (IN) Service Action - (0A) REPORT TARGET PORT GROUP */
689*130f4520SKenneth D. Merry {ctl_maintenance_in, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH |
690*130f4520SKenneth D. Merry 				         CTL_CMD_FLAG_OK_ON_STOPPED |
691*130f4520SKenneth D. Merry 				         CTL_CMD_FLAG_OK_ON_INOPERABLE |
692*130f4520SKenneth D. Merry 				         CTL_CMD_FLAG_OK_ON_SECONDARY |
693*130f4520SKenneth D. Merry 				         CTL_FLAG_DATA_IN,
694*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
695*130f4520SKenneth D. Merry 
696*130f4520SKenneth D. Merry /* A4 MAINTENANCE (OUT) */
697*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
698*130f4520SKenneth D. Merry 
699*130f4520SKenneth D. Merry /* A5 MOVE MEDIUM */
700*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
701*130f4520SKenneth D. Merry 
702*130f4520SKenneth D. Merry /* A6 EXCHANGE MEDIUM */
703*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
704*130f4520SKenneth D. Merry 
705*130f4520SKenneth D. Merry /* A7 MOVE MEDIUM ATTACHED */
706*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
707*130f4520SKenneth D. Merry 
708*130f4520SKenneth D. Merry /* A8 READ(12) */
709*130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
710*130f4520SKenneth D. Merry                                   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
711*130f4520SKenneth D. Merry  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE},
712*130f4520SKenneth D. Merry 
713*130f4520SKenneth D. Merry /* A9 PLAY TRACK RELATIVE(12) */
714*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
715*130f4520SKenneth D. Merry 
716*130f4520SKenneth D. Merry /* AA WRITE(12) */
717*130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
718*130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
719*130f4520SKenneth D. Merry 
720*130f4520SKenneth D. Merry /* AB SERVICE ACTION IN(12) */
721*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
722*130f4520SKenneth D. Merry 
723*130f4520SKenneth D. Merry /* AC ERASE(12) */
724*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
725*130f4520SKenneth D. Merry 
726*130f4520SKenneth D. Merry /* AD READ DVD STRUCTURE */
727*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
728*130f4520SKenneth D. Merry 
729*130f4520SKenneth D. Merry /* AE WRITE AND VERIFY(12) */
730*130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
731*130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
732*130f4520SKenneth D. Merry 
733*130f4520SKenneth D. Merry /* AF VERIFY(12) */
734*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
735*130f4520SKenneth D. Merry 
736*130f4520SKenneth D. Merry /* B0 SEARCH DATA HIGH(12) */
737*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
738*130f4520SKenneth D. Merry 
739*130f4520SKenneth D. Merry /* B1 SEARCH DATA EQUAL(12) */
740*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
741*130f4520SKenneth D. Merry 
742*130f4520SKenneth D. Merry /* B2 SEARCH DATA LOW(12) */
743*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
744*130f4520SKenneth D. Merry 
745*130f4520SKenneth D. Merry /* B3 SET LIMITS(12) */
746*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
747*130f4520SKenneth D. Merry 
748*130f4520SKenneth D. Merry /* B4 READ ELEMENT STATUS ATTACHED */
749*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
750*130f4520SKenneth D. Merry 
751*130f4520SKenneth D. Merry /* B5 REQUEST VOLUME ELEMENT ADDRESS */
752*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
753*130f4520SKenneth D. Merry 
754*130f4520SKenneth D. Merry /* B6 SEND VOLUME TAG */
755*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
756*130f4520SKenneth D. Merry 
757*130f4520SKenneth D. Merry /* B7 READ DEFECT DATA(12) */
758*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
759*130f4520SKenneth D. Merry 
760*130f4520SKenneth D. Merry /* B8 READ ELEMENT STATUS */
761*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
762*130f4520SKenneth D. Merry 
763*130f4520SKenneth D. Merry /* B9 READ CD MSF */
764*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
765*130f4520SKenneth D. Merry 
766*130f4520SKenneth D. Merry /* BA REDUNDANCY GROUP (IN) */
767*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
768*130f4520SKenneth D. Merry 
769*130f4520SKenneth D. Merry /* BB REDUNDANCY GROUP (OUT) */
770*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
771*130f4520SKenneth D. Merry 
772*130f4520SKenneth D. Merry /* BC SPARE (IN) */
773*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
774*130f4520SKenneth D. Merry 
775*130f4520SKenneth D. Merry /* BD SPARE (OUT) */
776*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
777*130f4520SKenneth D. Merry 
778*130f4520SKenneth D. Merry /* BE VOLUME SET (IN) */
779*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
780*130f4520SKenneth D. Merry 
781*130f4520SKenneth D. Merry /* BF VOLUME SET (OUT) */
782*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
783*130f4520SKenneth D. Merry 
784*130f4520SKenneth D. Merry /* C0 - ISC_SEND_MSG_SHORT */
785*130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
786*130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE,
787*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
788*130f4520SKenneth D. Merry 
789*130f4520SKenneth D. Merry /* C1 - ISC_SEND_MSG */
790*130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
791*130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
792*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
793*130f4520SKenneth D. Merry 
794*130f4520SKenneth D. Merry /* C2 - ISC_WRITE */
795*130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
796*130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
797*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
798*130f4520SKenneth D. Merry 
799*130f4520SKenneth D. Merry /* C3 - ISC_READ */
800*130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
801*130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN,
802*130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
803*130f4520SKenneth D. Merry 
804*130f4520SKenneth D. Merry /* C4 */
805*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
806*130f4520SKenneth D. Merry 
807*130f4520SKenneth D. Merry /* C5 */
808*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
809*130f4520SKenneth D. Merry 
810*130f4520SKenneth D. Merry /* C6 */
811*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
812*130f4520SKenneth D. Merry 
813*130f4520SKenneth D. Merry /* C7 */
814*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
815*130f4520SKenneth D. Merry 
816*130f4520SKenneth D. Merry /* C8 */
817*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
818*130f4520SKenneth D. Merry 
819*130f4520SKenneth D. Merry /* C9 */
820*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
821*130f4520SKenneth D. Merry 
822*130f4520SKenneth D. Merry /* CA */
823*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
824*130f4520SKenneth D. Merry 
825*130f4520SKenneth D. Merry /* CB */
826*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
827*130f4520SKenneth D. Merry 
828*130f4520SKenneth D. Merry /* CC */
829*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
830*130f4520SKenneth D. Merry 
831*130f4520SKenneth D. Merry /* CD */
832*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
833*130f4520SKenneth D. Merry 
834*130f4520SKenneth D. Merry /* CE */
835*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
836*130f4520SKenneth D. Merry 
837*130f4520SKenneth D. Merry /* CF */
838*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
839*130f4520SKenneth D. Merry 
840*130f4520SKenneth D. Merry /* D0 */
841*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
842*130f4520SKenneth D. Merry 
843*130f4520SKenneth D. Merry /* D1 */
844*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
845*130f4520SKenneth D. Merry 
846*130f4520SKenneth D. Merry /* D2 */
847*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
848*130f4520SKenneth D. Merry 
849*130f4520SKenneth D. Merry /* D3 */
850*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
851*130f4520SKenneth D. Merry 
852*130f4520SKenneth D. Merry /* D4 */
853*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
854*130f4520SKenneth D. Merry 
855*130f4520SKenneth D. Merry /* D5 */
856*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
857*130f4520SKenneth D. Merry 
858*130f4520SKenneth D. Merry /* D6 */
859*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
860*130f4520SKenneth D. Merry 
861*130f4520SKenneth D. Merry /* D7 */
862*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
863*130f4520SKenneth D. Merry 
864*130f4520SKenneth D. Merry /* D8 */
865*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
866*130f4520SKenneth D. Merry 
867*130f4520SKenneth D. Merry /* D9 */
868*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
869*130f4520SKenneth D. Merry 
870*130f4520SKenneth D. Merry /* DA */
871*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
872*130f4520SKenneth D. Merry 
873*130f4520SKenneth D. Merry /* DB */
874*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
875*130f4520SKenneth D. Merry 
876*130f4520SKenneth D. Merry /* DC */
877*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
878*130f4520SKenneth D. Merry 
879*130f4520SKenneth D. Merry /* DD */
880*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
881*130f4520SKenneth D. Merry 
882*130f4520SKenneth D. Merry /* DE */
883*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
884*130f4520SKenneth D. Merry 
885*130f4520SKenneth D. Merry /* DF */
886*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
887*130f4520SKenneth D. Merry 
888*130f4520SKenneth D. Merry /* E0 */
889*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
890*130f4520SKenneth D. Merry 
891*130f4520SKenneth D. Merry /* E1 */
892*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
893*130f4520SKenneth D. Merry 
894*130f4520SKenneth D. Merry /* E2 */
895*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
896*130f4520SKenneth D. Merry 
897*130f4520SKenneth D. Merry /* E3 */
898*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
899*130f4520SKenneth D. Merry 
900*130f4520SKenneth D. Merry /* E4 */
901*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
902*130f4520SKenneth D. Merry 
903*130f4520SKenneth D. Merry /* E5 */
904*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
905*130f4520SKenneth D. Merry 
906*130f4520SKenneth D. Merry /* E6 */
907*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
908*130f4520SKenneth D. Merry 
909*130f4520SKenneth D. Merry /* E7 */
910*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
911*130f4520SKenneth D. Merry 
912*130f4520SKenneth D. Merry /* E8 */
913*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
914*130f4520SKenneth D. Merry 
915*130f4520SKenneth D. Merry /* E9 */
916*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
917*130f4520SKenneth D. Merry 
918*130f4520SKenneth D. Merry /* EA */
919*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
920*130f4520SKenneth D. Merry 
921*130f4520SKenneth D. Merry /* EB */
922*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
923*130f4520SKenneth D. Merry 
924*130f4520SKenneth D. Merry /* EC */
925*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
926*130f4520SKenneth D. Merry 
927*130f4520SKenneth D. Merry /* ED */
928*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
929*130f4520SKenneth D. Merry 
930*130f4520SKenneth D. Merry /* EE */
931*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
932*130f4520SKenneth D. Merry 
933*130f4520SKenneth D. Merry /* EF */
934*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
935*130f4520SKenneth D. Merry 
936*130f4520SKenneth D. Merry /* F0 */
937*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
938*130f4520SKenneth D. Merry 
939*130f4520SKenneth D. Merry /* F1 */
940*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
941*130f4520SKenneth D. Merry 
942*130f4520SKenneth D. Merry /* F2 */
943*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
944*130f4520SKenneth D. Merry 
945*130f4520SKenneth D. Merry /* F3 */
946*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
947*130f4520SKenneth D. Merry 
948*130f4520SKenneth D. Merry /* F4 */
949*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
950*130f4520SKenneth D. Merry 
951*130f4520SKenneth D. Merry /* F5 */
952*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
953*130f4520SKenneth D. Merry 
954*130f4520SKenneth D. Merry /* F6 */
955*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
956*130f4520SKenneth D. Merry 
957*130f4520SKenneth D. Merry /* F7 */
958*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
959*130f4520SKenneth D. Merry 
960*130f4520SKenneth D. Merry /* F8 */
961*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
962*130f4520SKenneth D. Merry 
963*130f4520SKenneth D. Merry /* F9 */
964*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
965*130f4520SKenneth D. Merry 
966*130f4520SKenneth D. Merry /* FA */
967*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
968*130f4520SKenneth D. Merry 
969*130f4520SKenneth D. Merry /* FB */
970*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
971*130f4520SKenneth D. Merry 
972*130f4520SKenneth D. Merry /* FC */
973*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
974*130f4520SKenneth D. Merry 
975*130f4520SKenneth D. Merry /* FD */
976*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
977*130f4520SKenneth D. Merry 
978*130f4520SKenneth D. Merry /* FE */
979*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
980*130f4520SKenneth D. Merry 
981*130f4520SKenneth D. Merry /* FF */
982*130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}
983*130f4520SKenneth D. Merry 
984*130f4520SKenneth D. Merry };
985