xref: /freebsd/sys/cam/ctl/ctl_cmd_table.c (revision f82388fd84fc79bed41d551815dd2ed17f23b24f)
1130f4520SKenneth D. Merry /*-
2130f4520SKenneth D. Merry  * Copyright (c) 2003, 2004, 2005, 2009 Silicon Graphics International Corp.
3130f4520SKenneth D. Merry  * All rights reserved.
4130f4520SKenneth D. Merry  *
5130f4520SKenneth D. Merry  * Redistribution and use in source and binary forms, with or without
6130f4520SKenneth D. Merry  * modification, are permitted provided that the following conditions
7130f4520SKenneth D. Merry  * are met:
8130f4520SKenneth D. Merry  * 1. Redistributions of source code must retain the above copyright
9130f4520SKenneth D. Merry  *    notice, this list of conditions, and the following disclaimer,
10130f4520SKenneth D. Merry  *    without modification.
11130f4520SKenneth D. Merry  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
12130f4520SKenneth D. Merry  *    substantially similar to the "NO WARRANTY" disclaimer below
13130f4520SKenneth D. Merry  *    ("Disclaimer") and any redistribution must be conditioned upon
14130f4520SKenneth D. Merry  *    including a substantially similar Disclaimer requirement for further
15130f4520SKenneth D. Merry  *    binary redistribution.
16130f4520SKenneth D. Merry  *
17130f4520SKenneth D. Merry  * NO WARRANTY
18130f4520SKenneth D. Merry  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19130f4520SKenneth D. Merry  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20130f4520SKenneth D. Merry  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
21130f4520SKenneth D. Merry  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22130f4520SKenneth D. Merry  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23130f4520SKenneth D. Merry  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24130f4520SKenneth D. Merry  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25130f4520SKenneth D. Merry  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26130f4520SKenneth D. Merry  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
27130f4520SKenneth D. Merry  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28130f4520SKenneth D. Merry  * POSSIBILITY OF SUCH DAMAGES.
29130f4520SKenneth D. Merry  *
30130f4520SKenneth D. Merry  * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_cmd_table.c#4 $
31130f4520SKenneth D. Merry  * $FreeBSD$
32130f4520SKenneth D. Merry  */
33130f4520SKenneth D. Merry /*
34130f4520SKenneth D. Merry  * CAM Target Layer command table.
35130f4520SKenneth D. Merry  *
36130f4520SKenneth D. Merry  * Author: Ken Merry <ken@FreeBSD.org>, Kim Le
37130f4520SKenneth D. Merry  */
38130f4520SKenneth D. Merry 
39130f4520SKenneth D. Merry #include <sys/cdefs.h>
40130f4520SKenneth D. Merry #include <sys/param.h>
41130f4520SKenneth D. Merry #include <sys/systm.h>
42130f4520SKenneth D. Merry #include <sys/kernel.h>
43130f4520SKenneth D. Merry #include <sys/types.h>
44130f4520SKenneth D. Merry #include <sys/malloc.h>
45130f4520SKenneth D. Merry #include <sys/condvar.h>
46130f4520SKenneth D. Merry #include <sys/queue.h>
47bf8f8f34SKenneth D. Merry #include <sys/sysctl.h>
48130f4520SKenneth D. Merry 
49130f4520SKenneth D. Merry #include <cam/scsi/scsi_all.h>
50130f4520SKenneth D. Merry #include <cam/scsi/scsi_da.h>
51130f4520SKenneth D. Merry #include <cam/ctl/ctl_io.h>
52130f4520SKenneth D. Merry #include <cam/ctl/ctl.h>
53130f4520SKenneth D. Merry #include <cam/ctl/ctl_frontend.h>
54130f4520SKenneth D. Merry #include <cam/ctl/ctl_backend.h>
55130f4520SKenneth D. Merry #include <cam/ctl/ctl_frontend_internal.h>
56130f4520SKenneth D. Merry #include <cam/ctl/ctl_ioctl.h>
57130f4520SKenneth D. Merry #include <cam/ctl/ctl_ha.h>
58130f4520SKenneth D. Merry #include <cam/ctl/ctl_private.h>
59130f4520SKenneth D. Merry 
60130f4520SKenneth D. Merry /*
61130f4520SKenneth D. Merry  * Whenever support for a new command is added, it should be added to this
62130f4520SKenneth D. Merry  * table.
63130f4520SKenneth D. Merry  */
64130f4520SKenneth D. Merry struct ctl_cmd_entry ctl_cmd_table[] =
65130f4520SKenneth D. Merry {
66130f4520SKenneth D. Merry /* 00 TEST UNIT READY */
67130f4520SKenneth D. Merry {ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH |
68130f4520SKenneth D. Merry 			  CTL_FLAG_DATA_NONE |
69130f4520SKenneth D. Merry 			  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
70130f4520SKenneth D. Merry  CTL_LUN_PAT_TUR},
71130f4520SKenneth D. Merry 
72130f4520SKenneth D. Merry /* 01 REWIND */
73130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
74130f4520SKenneth D. Merry 
75130f4520SKenneth D. Merry /* 02 */
76130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
77130f4520SKenneth D. Merry 
78130f4520SKenneth D. Merry /* 03 REQUEST SENSE */
79130f4520SKenneth D. Merry {ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN |
80130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_ALL_LUNS |
81130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_RESV |
82130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_NO_SENSE |
83130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_STOPPED |
84130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
85130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_OFFLINE |
86130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_SECONDARY |
87130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
88130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
89130f4520SKenneth D. Merry 
90130f4520SKenneth D. Merry /* 04 FORMAT UNIT */
91130f4520SKenneth D. Merry {ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN |
92130f4520SKenneth D. Merry 				CTL_CMD_FLAG_OK_ON_INOPERABLE |
93130f4520SKenneth D. Merry 				CTL_FLAG_DATA_OUT,
94130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
95130f4520SKenneth D. Merry 
96130f4520SKenneth D. Merry /* 05 READ BLOCK LIMITS */
97130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
98130f4520SKenneth D. Merry 
99130f4520SKenneth D. Merry /* 06 */
100130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
101130f4520SKenneth D. Merry 
102130f4520SKenneth D. Merry /* 07 REASSIGN BLOCKS */
103130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
104130f4520SKenneth D. Merry 
105130f4520SKenneth D. Merry /* 08 READ(6) */
106130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
107130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
108130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
109130f4520SKenneth D. Merry  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE},
110130f4520SKenneth D. Merry 
111130f4520SKenneth D. Merry /* 09 */
112130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
113130f4520SKenneth D. Merry 
114130f4520SKenneth D. Merry /* 0A WRITE(6) */
115130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
116130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_OUT,
117130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
118130f4520SKenneth D. Merry 
119130f4520SKenneth D. Merry /* 0B SEEK(6) */
120130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
121130f4520SKenneth D. Merry 
122130f4520SKenneth D. Merry /* 0C */
123130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
124130f4520SKenneth D. Merry 
125130f4520SKenneth D. Merry /* 0D */
126130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
127130f4520SKenneth D. Merry 
128130f4520SKenneth D. Merry /* 0E */
129130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
130130f4520SKenneth D. Merry 
131130f4520SKenneth D. Merry /* 0F READ REVERSE(6) */
132130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
133130f4520SKenneth D. Merry 
134130f4520SKenneth D. Merry /* 10 WRITE FILEMARKS(6) */
135130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
136130f4520SKenneth D. Merry 
137130f4520SKenneth D. Merry /* 11 SPACE(6) */
138130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
139130f4520SKenneth D. Merry 
140130f4520SKenneth D. Merry /* 12 INQUIRY */
141130f4520SKenneth D. Merry {ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
142130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_ALLOW_ON_RESV |
143130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_NO_SENSE |
144130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_STOPPED |
145130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_INOPERABLE |
146130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_OFFLINE |
147130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_SECONDARY |
148130f4520SKenneth D. Merry 			      CTL_FLAG_DATA_IN |
149130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
150130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
151130f4520SKenneth D. Merry 
152130f4520SKenneth D. Merry /* 13 */
153130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
154130f4520SKenneth D. Merry 
155130f4520SKenneth D. Merry /* 14 RECOVER BUFFERED DATA */
156130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
157130f4520SKenneth D. Merry 
158130f4520SKenneth D. Merry /* 15 MODE SELECT(6) */
159130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
160130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_STOPPED |
161130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
162130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_SECONDARY |
163130f4520SKenneth D. Merry 				     CTL_FLAG_DATA_OUT,
164130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
165130f4520SKenneth D. Merry 
166130f4520SKenneth D. Merry /* 16 RESERVE(6) */
167130f4520SKenneth D. Merry {ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV |
168130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_BOTH |
169130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
170130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
171130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
172130f4520SKenneth D. Merry 				    CTL_FLAG_DATA_OUT,
173130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
174130f4520SKenneth D. Merry 
175130f4520SKenneth D. Merry /* 17 RELEASE(6) */
176130f4520SKenneth D. Merry {ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV |
177130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_BOTH |
178130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
179130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
180130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_SECONDARY |
181130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
182130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
183130f4520SKenneth D. Merry 
184130f4520SKenneth D. Merry /* 18 COPY */
185130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
186130f4520SKenneth D. Merry 
187130f4520SKenneth D. Merry /* 19 ERASE(6) */
188130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
189130f4520SKenneth D. Merry 
190130f4520SKenneth D. Merry /* 1A MODE SENSE(6) */
191130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
192130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
193130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
194130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
195*f82388fdSAlexander Motin 				    CTL_FLAG_DATA_IN |
196*f82388fdSAlexander Motin 				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
197130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
198130f4520SKenneth D. Merry 
199130f4520SKenneth D. Merry /* 1B START STOP UNIT */
200130f4520SKenneth D. Merry {ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
201130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
202130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
203130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_OFFLINE |
204130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE |
205130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
206130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
207130f4520SKenneth D. Merry 
208130f4520SKenneth D. Merry /* 1C RECEIVE DIAGNOSTIC RESULTS */
209130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
210130f4520SKenneth D. Merry 
211130f4520SKenneth D. Merry /* 1D SEND DIAGNOSTIC */
212130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
213130f4520SKenneth D. Merry 
214130f4520SKenneth D. Merry /* 1E PREVENT ALLOW MEDIUM REMOVAL */
215130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
216130f4520SKenneth D. Merry 
217130f4520SKenneth D. Merry /* 1F */
218130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
219130f4520SKenneth D. Merry 
220130f4520SKenneth D. Merry /* 20 */
221130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
222130f4520SKenneth D. Merry 
223130f4520SKenneth D. Merry /* 21 */
224130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
225130f4520SKenneth D. Merry 
226130f4520SKenneth D. Merry /* 22 */
227130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
228130f4520SKenneth D. Merry 
229130f4520SKenneth D. Merry /* 23 */
230130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
231130f4520SKenneth D. Merry 
232130f4520SKenneth D. Merry /* 24 SET WINDOW */
233130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
234130f4520SKenneth D. Merry 
235130f4520SKenneth D. Merry /* 25 READ CAPACITY(10) */
236130f4520SKenneth D. Merry {ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN|
237130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_STOPPED |
238130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
239130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_SECONDARY |
240130f4520SKenneth D. Merry 				       CTL_FLAG_DATA_IN |
241130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
242130f4520SKenneth D. Merry  CTL_LUN_PAT_READCAP},
243130f4520SKenneth D. Merry 
244130f4520SKenneth D. Merry /* 26 */
245130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
246130f4520SKenneth D. Merry 
247130f4520SKenneth D. Merry /* 27 */
248130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
249130f4520SKenneth D. Merry 
250130f4520SKenneth D. Merry /* 28 READ(10) */
251130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
252130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
253130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
254130f4520SKenneth D. Merry  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE},
255130f4520SKenneth D. Merry 
256130f4520SKenneth D. Merry /* 29 READ GENERATION */
257130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
258130f4520SKenneth D. Merry 
259130f4520SKenneth D. Merry /* 2A WRITE(10) */
260130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
261130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
262130f4520SKenneth D. Merry 
263130f4520SKenneth D. Merry /* 2B SEEK(10) */
264130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
265130f4520SKenneth D. Merry 
266130f4520SKenneth D. Merry /* 2C ERASE(10) */
267130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
268130f4520SKenneth D. Merry 
269130f4520SKenneth D. Merry /* 2D READ UPDATED BLOCK */
270130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
271130f4520SKenneth D. Merry 
272130f4520SKenneth D. Merry /* 2E WRITE AND VERIFY(10) */
273130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
274130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
275130f4520SKenneth D. Merry 
276130f4520SKenneth D. Merry /* 2F VERIFY(10) */
27711b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
27811b569f7SAlexander Motin 			      CTL_FLAG_DATA_OUT |
27911b569f7SAlexander Motin 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
28011b569f7SAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE},
281130f4520SKenneth D. Merry 
282130f4520SKenneth D. Merry /* 30 SEARCH DATA HIGH(10) */
283130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
284130f4520SKenneth D. Merry 
285130f4520SKenneth D. Merry /* 31 SEARCH DATA EQUAL(10) */
286130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
287130f4520SKenneth D. Merry 
288130f4520SKenneth D. Merry /* 32 SEARCH DATA LOW(10) */
289130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
290130f4520SKenneth D. Merry 
291130f4520SKenneth D. Merry /* 33 SET LIMITS(10) */
292130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
293130f4520SKenneth D. Merry 
294130f4520SKenneth D. Merry /* 34 PRE-FETCH(10) */
295130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
296130f4520SKenneth D. Merry 
297130f4520SKenneth D. Merry /* 35 SYNCHRONIZE CACHE(10) */
298130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
299130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
300130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
301130f4520SKenneth D. Merry 
302130f4520SKenneth D. Merry /* 36 LOCK UNLOCK CACHE(10) */
303130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
304130f4520SKenneth D. Merry 
305130f4520SKenneth D. Merry /* 37 READ DEFECT DATA(10) */
306130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
307130f4520SKenneth D. Merry 
308130f4520SKenneth D. Merry /* 38 MEDIUM SCAN */
309130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
310130f4520SKenneth D. Merry 
311130f4520SKenneth D. Merry /* 39 COMPARE */
312130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
313130f4520SKenneth D. Merry 
314130f4520SKenneth D. Merry /* 3A COPY AND VERIFY */
315130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
316130f4520SKenneth D. Merry 
317130f4520SKenneth D. Merry /* 3B WRITE BUFFER */
31885165a3fSAlexander Motin {ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
319130f4520SKenneth D. Merry 				      CTL_FLAG_DATA_OUT,
320130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
321130f4520SKenneth D. Merry 
322130f4520SKenneth D. Merry /* 3C READ BUFFER */
32385165a3fSAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
32485165a3fSAlexander Motin 				     CTL_FLAG_DATA_IN |
32585165a3fSAlexander Motin 				     CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
32685165a3fSAlexander Motin  CTL_LUN_PAT_NONE},
327130f4520SKenneth D. Merry 
328130f4520SKenneth D. Merry /* 3D UPDATE BLOCK */
329130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
330130f4520SKenneth D. Merry 
331130f4520SKenneth D. Merry /* 3E READ LONG */
332130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
333130f4520SKenneth D. Merry 
334130f4520SKenneth D. Merry /* 3F WRITE LONG */
335130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
336130f4520SKenneth D. Merry 
337130f4520SKenneth D. Merry /* 40 CHANGE DEFINITION */
338130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
339130f4520SKenneth D. Merry 
340130f4520SKenneth D. Merry /* 41 WRITE SAME(10) */
341ee7f31c0SAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
342ee7f31c0SAlexander Motin 				   CTL_FLAG_DATA_OUT,
343ee7f31c0SAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
344130f4520SKenneth D. Merry 
345ee7f31c0SAlexander Motin /* 42 READ SUB-CHANNEL / UNMAP */
346004008d6SAlexander Motin {ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT,
347ee7f31c0SAlexander Motin  CTL_LUN_PAT_WRITE},
348130f4520SKenneth D. Merry 
349130f4520SKenneth D. Merry /* 43 READ TOC/PMA/ATIP */
350130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
351130f4520SKenneth D. Merry 
352130f4520SKenneth D. Merry /* 44 REPORT DENSITY SUPPORT */
353130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
354130f4520SKenneth D. Merry 
355130f4520SKenneth D. Merry /* 45 PLAY AUDIO(10) */
356130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
357130f4520SKenneth D. Merry 
358130f4520SKenneth D. Merry /* 46 GET CONFIGURATION */
359130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
360130f4520SKenneth D. Merry 
361130f4520SKenneth D. Merry /* 47 PLAY AUDIO MSF */
362130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
363130f4520SKenneth D. Merry 
364130f4520SKenneth D. Merry /* 48 PLAY AUDIO TRACK INDEX */
365130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
366130f4520SKenneth D. Merry 
367130f4520SKenneth D. Merry /* 49 PLAY TRACK RELATIVE(10) */
368130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
369130f4520SKenneth D. Merry 
370130f4520SKenneth D. Merry /* 4A GET EVENT STATUS NOTIFICATION */
371130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
372130f4520SKenneth D. Merry 
373130f4520SKenneth D. Merry /* 4B PAUSE/RESUME */
374130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
375130f4520SKenneth D. Merry 
376130f4520SKenneth D. Merry /* 4C LOG SELECT */
377130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
378130f4520SKenneth D. Merry 
379130f4520SKenneth D. Merry /* 4D LOG SENSE */
380130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
381130f4520SKenneth D. Merry 
382130f4520SKenneth D. Merry /* 4E STOP PLAY/SCAN */
383130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
384130f4520SKenneth D. Merry 
385130f4520SKenneth D. Merry /* 4F */
386130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
387130f4520SKenneth D. Merry 
388130f4520SKenneth D. Merry /* 50 XDWRITE(10) */
389130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
390130f4520SKenneth D. Merry 
391130f4520SKenneth D. Merry /* 51 XPWRITE(10) */
392130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
393130f4520SKenneth D. Merry 
394130f4520SKenneth D. Merry /* 52 XDREAD(10) */
395130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
396130f4520SKenneth D. Merry 
397130f4520SKenneth D. Merry /* 53 RESERVE TRACK */
398130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
399130f4520SKenneth D. Merry 
400130f4520SKenneth D. Merry /* 54 SEND OPC INFORMATION */
401130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
402130f4520SKenneth D. Merry 
403130f4520SKenneth D. Merry /* 55 MODE SELECT(10) */
404130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
405130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_STOPPED |
406130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
407130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_SECONDARY |
408130f4520SKenneth D. Merry 				     CTL_FLAG_DATA_OUT,
409130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
410130f4520SKenneth D. Merry 
411130f4520SKenneth D. Merry /* 56 RESERVE(10) */
412130f4520SKenneth D. Merry {ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV |
413130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_BOTH |
414130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
415130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
416130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
417130f4520SKenneth D. Merry 				    CTL_FLAG_DATA_OUT,
418130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
419130f4520SKenneth D. Merry 
420130f4520SKenneth D. Merry /* 57 RELEASE(10) */
421130f4520SKenneth D. Merry {ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV |
422130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_BOTH |
423130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
424130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
425130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_SECONDARY |
426130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_OUT,
427130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
428130f4520SKenneth D. Merry 
429130f4520SKenneth D. Merry /* 58 REPAIR TRACK */
430130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
431130f4520SKenneth D. Merry 
432130f4520SKenneth D. Merry /* 59 READ MASTER CUE */
433130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
434130f4520SKenneth D. Merry 
435130f4520SKenneth D. Merry /* 5A MODE SENSE(10) */
436130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
437130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
438130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
439130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
440*f82388fdSAlexander Motin 				    CTL_FLAG_DATA_IN |
441*f82388fdSAlexander Motin 				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
442130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
443130f4520SKenneth D. Merry 
444130f4520SKenneth D. Merry /* 5B CLOSE TRACK/SESSION */
445130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
446130f4520SKenneth D. Merry 
447130f4520SKenneth D. Merry /* 5C READ BUFFER CAPACITY */
448130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
449130f4520SKenneth D. Merry 
450130f4520SKenneth D. Merry /* 5D SEND CUE SHEET */
451130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
452130f4520SKenneth D. Merry 
453130f4520SKenneth D. Merry /* 5E PERSISTENT RESERVE IN */
454130f4520SKenneth D. Merry {ctl_persistent_reserve_in, CTL_SERIDX_PRES_IN, CTL_CMD_FLAG_ALLOW_ON_RESV |
455130f4520SKenneth D. Merry 						CTL_CMD_FLAG_OK_ON_BOTH |
456130f4520SKenneth D. Merry 						CTL_CMD_FLAG_OK_ON_STOPPED |
457130f4520SKenneth D. Merry 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
458130f4520SKenneth D. Merry 						CTL_CMD_FLAG_OK_ON_SECONDARY |
459130f4520SKenneth D. Merry 						CTL_FLAG_DATA_IN |
460130f4520SKenneth D. Merry 						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
461130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
462130f4520SKenneth D. Merry 
463130f4520SKenneth D. Merry //{ctl_persistent_reserve_in, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
464130f4520SKenneth D. Merry 
465130f4520SKenneth D. Merry /* 5F PERSISTENT RESERVE OUT */
466130f4520SKenneth D. Merry {ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV |
467130f4520SKenneth D. Merry 						  CTL_CMD_FLAG_OK_ON_BOTH |
468130f4520SKenneth D. Merry 						  CTL_CMD_FLAG_OK_ON_STOPPED |
469130f4520SKenneth D. Merry 						  CTL_CMD_FLAG_OK_ON_INOPERABLE|
470130f4520SKenneth D. Merry 						  CTL_CMD_FLAG_OK_ON_SECONDARY |
471130f4520SKenneth D. Merry 						  CTL_FLAG_DATA_OUT |
472130f4520SKenneth D. Merry 						  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
473130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
474130f4520SKenneth D. Merry 
475130f4520SKenneth D. Merry //{ctl_persistent_reserve_out, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
476130f4520SKenneth D. Merry 
477130f4520SKenneth D. Merry /* 60 */
478130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
479130f4520SKenneth D. Merry 
480130f4520SKenneth D. Merry /* 61 */
481130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
482130f4520SKenneth D. Merry 
483130f4520SKenneth D. Merry /* 62 */
484130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
485130f4520SKenneth D. Merry 
486130f4520SKenneth D. Merry /* 63 */
487130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
488130f4520SKenneth D. Merry 
489130f4520SKenneth D. Merry /* 64 */
490130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
491130f4520SKenneth D. Merry 
492130f4520SKenneth D. Merry /* 65 */
493130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
494130f4520SKenneth D. Merry 
495130f4520SKenneth D. Merry /* 66 */
496130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
497130f4520SKenneth D. Merry 
498130f4520SKenneth D. Merry /* 67 */
499130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
500130f4520SKenneth D. Merry 
501130f4520SKenneth D. Merry /* 68 */
502130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
503130f4520SKenneth D. Merry 
504130f4520SKenneth D. Merry /* 69 */
505130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
506130f4520SKenneth D. Merry 
507130f4520SKenneth D. Merry /* 6A */
508130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
509130f4520SKenneth D. Merry 
510130f4520SKenneth D. Merry /* 6B */
511130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
512130f4520SKenneth D. Merry 
513130f4520SKenneth D. Merry /* 6C */
514130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
515130f4520SKenneth D. Merry 
516130f4520SKenneth D. Merry /* 6D */
517130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
518130f4520SKenneth D. Merry 
519130f4520SKenneth D. Merry /* 6E */
520130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
521130f4520SKenneth D. Merry 
522130f4520SKenneth D. Merry /* 6F */
523130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
524130f4520SKenneth D. Merry 
525130f4520SKenneth D. Merry /* 70 */
526130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
527130f4520SKenneth D. Merry 
528130f4520SKenneth D. Merry /* 71 */
529130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
530130f4520SKenneth D. Merry 
531130f4520SKenneth D. Merry /* 72 */
532130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
533130f4520SKenneth D. Merry 
534130f4520SKenneth D. Merry /* 73 */
535130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
536130f4520SKenneth D. Merry 
537130f4520SKenneth D. Merry /* 74 */
538130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
539130f4520SKenneth D. Merry 
540130f4520SKenneth D. Merry /* 75 */
541130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
542130f4520SKenneth D. Merry 
543130f4520SKenneth D. Merry /* 76 */
544130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
545130f4520SKenneth D. Merry 
546130f4520SKenneth D. Merry /* 77 */
547130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
548130f4520SKenneth D. Merry 
549130f4520SKenneth D. Merry /* 78 */
550130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
551130f4520SKenneth D. Merry 
552130f4520SKenneth D. Merry /* 79 */
553130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
554130f4520SKenneth D. Merry 
555130f4520SKenneth D. Merry /* 7A */
556130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
557130f4520SKenneth D. Merry 
558130f4520SKenneth D. Merry /* 7B */
559130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
560130f4520SKenneth D. Merry 
561130f4520SKenneth D. Merry /* 7C */
562130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
563130f4520SKenneth D. Merry 
564130f4520SKenneth D. Merry /* 7D */
565130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
566130f4520SKenneth D. Merry 
567130f4520SKenneth D. Merry /* 7E */
568130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
569130f4520SKenneth D. Merry 
570130f4520SKenneth D. Merry /* 7F */
571130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
572130f4520SKenneth D. Merry 
573130f4520SKenneth D. Merry /* 80 XDWRITE EXTENDED(16) */
574130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
575130f4520SKenneth D. Merry 
576130f4520SKenneth D. Merry /* 81 REBUILD(16) */
577130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
578130f4520SKenneth D. Merry 
579130f4520SKenneth D. Merry /* 82 REGENERATE(16) */
580130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
581130f4520SKenneth D. Merry 
582130f4520SKenneth D. Merry /* 83 EXTENDED COPY */
583130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
584130f4520SKenneth D. Merry 
585130f4520SKenneth D. Merry /* 84 RECEIVE COPY RESULTS */
586130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
587130f4520SKenneth D. Merry 
588130f4520SKenneth D. Merry /* 85 */
589130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
590130f4520SKenneth D. Merry 
591130f4520SKenneth D. Merry /* 86 ACCESS CONTROL IN */
592130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
593130f4520SKenneth D. Merry 
594130f4520SKenneth D. Merry /* 87 ACCESS CONTROL OUT */
595130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
596130f4520SKenneth D. Merry 
597130f4520SKenneth D. Merry /* 88 READ(16) */
598130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
599130f4520SKenneth D. Merry                                   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
600130f4520SKenneth D. Merry  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE},
601130f4520SKenneth D. Merry 
60211b569f7SAlexander Motin /* 89 COMPARE AND WRITE */
60311b569f7SAlexander Motin {ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
60411b569f7SAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
605130f4520SKenneth D. Merry 
606130f4520SKenneth D. Merry /* 8A WRITE(16) */
607130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
608130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
609130f4520SKenneth D. Merry 
610130f4520SKenneth D. Merry /* 8B */
611130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
612130f4520SKenneth D. Merry 
613130f4520SKenneth D. Merry /* 8C READ ATTRIBUTE */
614130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
615130f4520SKenneth D. Merry 
616130f4520SKenneth D. Merry /* 8D WRITE ATTRIBUTE */
617130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
618130f4520SKenneth D. Merry 
619130f4520SKenneth D. Merry /* 8E WRITE AND VERIFY(16) */
620130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
621130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
622130f4520SKenneth D. Merry 
623130f4520SKenneth D. Merry /* 8F VERIFY(16) */
62411b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
62511b569f7SAlexander Motin 			      CTL_FLAG_DATA_OUT |
62611b569f7SAlexander Motin 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
62711b569f7SAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE},
628130f4520SKenneth D. Merry 
629130f4520SKenneth D. Merry /* 90 PRE-FETCH(16) */
630130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
631130f4520SKenneth D. Merry 
632130f4520SKenneth D. Merry /* 91 SYNCHRONIZE CACHE(16) */
633130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
634130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
635130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
636130f4520SKenneth D. Merry 
637130f4520SKenneth D. Merry /* 92 LOCK UNLOCK CACHE(16) */
638130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
639130f4520SKenneth D. Merry 
640130f4520SKenneth D. Merry /* 93 WRITE SAME(16) */
641ee7f31c0SAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
642ee7f31c0SAlexander Motin 				   CTL_FLAG_DATA_OUT,
643ee7f31c0SAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
644130f4520SKenneth D. Merry 
645130f4520SKenneth D. Merry /* 94 */
646130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
647130f4520SKenneth D. Merry 
648130f4520SKenneth D. Merry /* 95 */
649130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
650130f4520SKenneth D. Merry 
651130f4520SKenneth D. Merry /* 96 */
652130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
653130f4520SKenneth D. Merry 
654130f4520SKenneth D. Merry /* 97 */
655130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
656130f4520SKenneth D. Merry 
657130f4520SKenneth D. Merry /* 98 */
658130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
659130f4520SKenneth D. Merry 
660130f4520SKenneth D. Merry /* 99 */
661130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
662130f4520SKenneth D. Merry 
663130f4520SKenneth D. Merry /* 9A */
664130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
665130f4520SKenneth D. Merry 
666130f4520SKenneth D. Merry /* 9B */
667130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
668130f4520SKenneth D. Merry 
669130f4520SKenneth D. Merry /* 9C */
670130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
671130f4520SKenneth D. Merry 
672130f4520SKenneth D. Merry /* 9D */
673130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
674130f4520SKenneth D. Merry 
675130f4520SKenneth D. Merry /* 9E SERVICE ACTION IN(16) */
676130f4520SKenneth D. Merry /* XXX KDM not all service actions will be read capacity!! */
677130f4520SKenneth D. Merry {ctl_service_action_in, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
678130f4520SKenneth D. Merry 					   CTL_CMD_FLAG_OK_ON_STOPPED |
679130f4520SKenneth D. Merry 					   CTL_CMD_FLAG_OK_ON_INOPERABLE |
680130f4520SKenneth D. Merry 					   CTL_CMD_FLAG_OK_ON_SECONDARY |
681130f4520SKenneth D. Merry 					   CTL_FLAG_DATA_IN |
682130f4520SKenneth D. Merry 					   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
683130f4520SKenneth D. Merry  CTL_LUN_PAT_READCAP},
684130f4520SKenneth D. Merry 
685130f4520SKenneth D. Merry /* 9F SERVICE ACTION OUT(16) */
686130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
687130f4520SKenneth D. Merry 
688130f4520SKenneth D. Merry /* A0 REPORT LUNS */
689130f4520SKenneth D. Merry {ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
690130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_RESV |
691130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_NO_SENSE |
692130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_STOPPED |
693130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_INOPERABLE |
694130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_OFFLINE |
695130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_SECONDARY |
696130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
697130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
698130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
699130f4520SKenneth D. Merry 
700130f4520SKenneth D. Merry /* A1 BLANK */
701130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
702130f4520SKenneth D. Merry 
703130f4520SKenneth D. Merry /* A2 SEND EVENT */
704130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
705130f4520SKenneth D. Merry 
706130f4520SKenneth D. Merry /* A3 MAINTENANCE (IN) Service Action - (0A) REPORT TARGET PORT GROUP */
707130f4520SKenneth D. Merry {ctl_maintenance_in, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH |
708130f4520SKenneth D. Merry 				         CTL_CMD_FLAG_OK_ON_STOPPED |
709130f4520SKenneth D. Merry 				         CTL_CMD_FLAG_OK_ON_INOPERABLE |
710130f4520SKenneth D. Merry 				         CTL_CMD_FLAG_OK_ON_SECONDARY |
711130f4520SKenneth D. Merry 				         CTL_FLAG_DATA_IN,
712130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
713130f4520SKenneth D. Merry 
714130f4520SKenneth D. Merry /* A4 MAINTENANCE (OUT) */
715130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
716130f4520SKenneth D. Merry 
717130f4520SKenneth D. Merry /* A5 MOVE MEDIUM */
718130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
719130f4520SKenneth D. Merry 
720130f4520SKenneth D. Merry /* A6 EXCHANGE MEDIUM */
721130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
722130f4520SKenneth D. Merry 
723130f4520SKenneth D. Merry /* A7 MOVE MEDIUM ATTACHED */
724130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
725130f4520SKenneth D. Merry 
726130f4520SKenneth D. Merry /* A8 READ(12) */
727130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
728130f4520SKenneth D. Merry                                   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
729130f4520SKenneth D. Merry  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE},
730130f4520SKenneth D. Merry 
731130f4520SKenneth D. Merry /* A9 PLAY TRACK RELATIVE(12) */
732130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
733130f4520SKenneth D. Merry 
734130f4520SKenneth D. Merry /* AA WRITE(12) */
735130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
736130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
737130f4520SKenneth D. Merry 
738130f4520SKenneth D. Merry /* AB SERVICE ACTION IN(12) */
739130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
740130f4520SKenneth D. Merry 
741130f4520SKenneth D. Merry /* AC ERASE(12) */
742130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
743130f4520SKenneth D. Merry 
744130f4520SKenneth D. Merry /* AD READ DVD STRUCTURE */
745130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
746130f4520SKenneth D. Merry 
747130f4520SKenneth D. Merry /* AE WRITE AND VERIFY(12) */
748130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
749130f4520SKenneth D. Merry  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE},
750130f4520SKenneth D. Merry 
751130f4520SKenneth D. Merry /* AF VERIFY(12) */
75211b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
75311b569f7SAlexander Motin 			      CTL_FLAG_DATA_OUT |
75411b569f7SAlexander Motin 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
75511b569f7SAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE},
756130f4520SKenneth D. Merry 
757130f4520SKenneth D. Merry /* B0 SEARCH DATA HIGH(12) */
758130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
759130f4520SKenneth D. Merry 
760130f4520SKenneth D. Merry /* B1 SEARCH DATA EQUAL(12) */
761130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
762130f4520SKenneth D. Merry 
763130f4520SKenneth D. Merry /* B2 SEARCH DATA LOW(12) */
764130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
765130f4520SKenneth D. Merry 
766130f4520SKenneth D. Merry /* B3 SET LIMITS(12) */
767130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
768130f4520SKenneth D. Merry 
769130f4520SKenneth D. Merry /* B4 READ ELEMENT STATUS ATTACHED */
770130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
771130f4520SKenneth D. Merry 
772130f4520SKenneth D. Merry /* B5 REQUEST VOLUME ELEMENT ADDRESS */
773130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
774130f4520SKenneth D. Merry 
775130f4520SKenneth D. Merry /* B6 SEND VOLUME TAG */
776130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
777130f4520SKenneth D. Merry 
778130f4520SKenneth D. Merry /* B7 READ DEFECT DATA(12) */
779130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
780130f4520SKenneth D. Merry 
781130f4520SKenneth D. Merry /* B8 READ ELEMENT STATUS */
782130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
783130f4520SKenneth D. Merry 
784130f4520SKenneth D. Merry /* B9 READ CD MSF */
785130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
786130f4520SKenneth D. Merry 
787130f4520SKenneth D. Merry /* BA REDUNDANCY GROUP (IN) */
788130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
789130f4520SKenneth D. Merry 
790130f4520SKenneth D. Merry /* BB REDUNDANCY GROUP (OUT) */
791130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
792130f4520SKenneth D. Merry 
793130f4520SKenneth D. Merry /* BC SPARE (IN) */
794130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
795130f4520SKenneth D. Merry 
796130f4520SKenneth D. Merry /* BD SPARE (OUT) */
797130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
798130f4520SKenneth D. Merry 
799130f4520SKenneth D. Merry /* BE VOLUME SET (IN) */
800130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
801130f4520SKenneth D. Merry 
802130f4520SKenneth D. Merry /* BF VOLUME SET (OUT) */
803130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
804130f4520SKenneth D. Merry 
805130f4520SKenneth D. Merry /* C0 - ISC_SEND_MSG_SHORT */
806130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
807130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE,
808130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
809130f4520SKenneth D. Merry 
810130f4520SKenneth D. Merry /* C1 - ISC_SEND_MSG */
811130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
812130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
813130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
814130f4520SKenneth D. Merry 
815130f4520SKenneth D. Merry /* C2 - ISC_WRITE */
816130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
817130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
818130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
819130f4520SKenneth D. Merry 
820130f4520SKenneth D. Merry /* C3 - ISC_READ */
821130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
822130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN,
823130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
824130f4520SKenneth D. Merry 
825130f4520SKenneth D. Merry /* C4 */
826130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
827130f4520SKenneth D. Merry 
828130f4520SKenneth D. Merry /* C5 */
829130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
830130f4520SKenneth D. Merry 
831130f4520SKenneth D. Merry /* C6 */
832130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
833130f4520SKenneth D. Merry 
834130f4520SKenneth D. Merry /* C7 */
835130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
836130f4520SKenneth D. Merry 
837130f4520SKenneth D. Merry /* C8 */
838130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
839130f4520SKenneth D. Merry 
840130f4520SKenneth D. Merry /* C9 */
841130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
842130f4520SKenneth D. Merry 
843130f4520SKenneth D. Merry /* CA */
844130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
845130f4520SKenneth D. Merry 
846130f4520SKenneth D. Merry /* CB */
847130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
848130f4520SKenneth D. Merry 
849130f4520SKenneth D. Merry /* CC */
850130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
851130f4520SKenneth D. Merry 
852130f4520SKenneth D. Merry /* CD */
853130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
854130f4520SKenneth D. Merry 
855130f4520SKenneth D. Merry /* CE */
856130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
857130f4520SKenneth D. Merry 
858130f4520SKenneth D. Merry /* CF */
859130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
860130f4520SKenneth D. Merry 
861130f4520SKenneth D. Merry /* D0 */
862130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
863130f4520SKenneth D. Merry 
864130f4520SKenneth D. Merry /* D1 */
865130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
866130f4520SKenneth D. Merry 
867130f4520SKenneth D. Merry /* D2 */
868130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
869130f4520SKenneth D. Merry 
870130f4520SKenneth D. Merry /* D3 */
871130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
872130f4520SKenneth D. Merry 
873130f4520SKenneth D. Merry /* D4 */
874130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
875130f4520SKenneth D. Merry 
876130f4520SKenneth D. Merry /* D5 */
877130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
878130f4520SKenneth D. Merry 
879130f4520SKenneth D. Merry /* D6 */
880130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
881130f4520SKenneth D. Merry 
882130f4520SKenneth D. Merry /* D7 */
883130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
884130f4520SKenneth D. Merry 
885130f4520SKenneth D. Merry /* D8 */
886130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
887130f4520SKenneth D. Merry 
888130f4520SKenneth D. Merry /* D9 */
889130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
890130f4520SKenneth D. Merry 
891130f4520SKenneth D. Merry /* DA */
892130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
893130f4520SKenneth D. Merry 
894130f4520SKenneth D. Merry /* DB */
895130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
896130f4520SKenneth D. Merry 
897130f4520SKenneth D. Merry /* DC */
898130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
899130f4520SKenneth D. Merry 
900130f4520SKenneth D. Merry /* DD */
901130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
902130f4520SKenneth D. Merry 
903130f4520SKenneth D. Merry /* DE */
904130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
905130f4520SKenneth D. Merry 
906130f4520SKenneth D. Merry /* DF */
907130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
908130f4520SKenneth D. Merry 
909130f4520SKenneth D. Merry /* E0 */
910130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
911130f4520SKenneth D. Merry 
912130f4520SKenneth D. Merry /* E1 */
913130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
914130f4520SKenneth D. Merry 
915130f4520SKenneth D. Merry /* E2 */
916130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
917130f4520SKenneth D. Merry 
918130f4520SKenneth D. Merry /* E3 */
919130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
920130f4520SKenneth D. Merry 
921130f4520SKenneth D. Merry /* E4 */
922130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
923130f4520SKenneth D. Merry 
924130f4520SKenneth D. Merry /* E5 */
925130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
926130f4520SKenneth D. Merry 
927130f4520SKenneth D. Merry /* E6 */
928130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
929130f4520SKenneth D. Merry 
930130f4520SKenneth D. Merry /* E7 */
931130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
932130f4520SKenneth D. Merry 
933130f4520SKenneth D. Merry /* E8 */
934130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
935130f4520SKenneth D. Merry 
936130f4520SKenneth D. Merry /* E9 */
937130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
938130f4520SKenneth D. Merry 
939130f4520SKenneth D. Merry /* EA */
940130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
941130f4520SKenneth D. Merry 
942130f4520SKenneth D. Merry /* EB */
943130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
944130f4520SKenneth D. Merry 
945130f4520SKenneth D. Merry /* EC */
946130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
947130f4520SKenneth D. Merry 
948130f4520SKenneth D. Merry /* ED */
949130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
950130f4520SKenneth D. Merry 
951130f4520SKenneth D. Merry /* EE */
952130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
953130f4520SKenneth D. Merry 
954130f4520SKenneth D. Merry /* EF */
955130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
956130f4520SKenneth D. Merry 
957130f4520SKenneth D. Merry /* F0 */
958130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
959130f4520SKenneth D. Merry 
960130f4520SKenneth D. Merry /* F1 */
961130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
962130f4520SKenneth D. Merry 
963130f4520SKenneth D. Merry /* F2 */
964130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
965130f4520SKenneth D. Merry 
966130f4520SKenneth D. Merry /* F3 */
967130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
968130f4520SKenneth D. Merry 
969130f4520SKenneth D. Merry /* F4 */
970130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
971130f4520SKenneth D. Merry 
972130f4520SKenneth D. Merry /* F5 */
973130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
974130f4520SKenneth D. Merry 
975130f4520SKenneth D. Merry /* F6 */
976130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
977130f4520SKenneth D. Merry 
978130f4520SKenneth D. Merry /* F7 */
979130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
980130f4520SKenneth D. Merry 
981130f4520SKenneth D. Merry /* F8 */
982130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
983130f4520SKenneth D. Merry 
984130f4520SKenneth D. Merry /* F9 */
985130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
986130f4520SKenneth D. Merry 
987130f4520SKenneth D. Merry /* FA */
988130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
989130f4520SKenneth D. Merry 
990130f4520SKenneth D. Merry /* FB */
991130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
992130f4520SKenneth D. Merry 
993130f4520SKenneth D. Merry /* FC */
994130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
995130f4520SKenneth D. Merry 
996130f4520SKenneth D. Merry /* FD */
997130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
998130f4520SKenneth D. Merry 
999130f4520SKenneth D. Merry /* FE */
1000130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1001130f4520SKenneth D. Merry 
1002130f4520SKenneth D. Merry /* FF */
1003130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}
1004130f4520SKenneth D. Merry 
1005130f4520SKenneth D. Merry };
1006