xref: /freebsd/sys/cam/ctl/ctl_cmd_table.c (revision fb767c2ba2e28af728722278028e6171664ceb2d)
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 /*
611b08cb4eSAlexander Motin  * Whenever support for a new command is added, it should be added to these
621b08cb4eSAlexander Motin  * tables.
63130f4520SKenneth D. Merry  */
641b08cb4eSAlexander Motin 
651b08cb4eSAlexander Motin /* 5E PERSISTENT RESERVE IN */
661b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_5e[32] =
671b08cb4eSAlexander Motin {
681b08cb4eSAlexander Motin /* 00 READ KEYS */
694d877c41SAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
701b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_BOTH |
711b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_STOPPED |
721b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
731b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_SECONDARY |
741b08cb4eSAlexander Motin 						CTL_FLAG_DATA_IN |
751b08cb4eSAlexander Motin 						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
761b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
771b08cb4eSAlexander Motin  10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
781b08cb4eSAlexander Motin 
791b08cb4eSAlexander Motin /* 01 READ RESERVATION */
804d877c41SAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
811b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_BOTH |
821b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_STOPPED |
831b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
841b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_SECONDARY |
851b08cb4eSAlexander Motin 						CTL_FLAG_DATA_IN |
861b08cb4eSAlexander Motin 						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
871b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
881b08cb4eSAlexander Motin  10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
891b08cb4eSAlexander Motin 
901b08cb4eSAlexander Motin /* 02 REPORT CAPABILITIES */
911b08cb4eSAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV |
921b08cb4eSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_BOTH |
931b08cb4eSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_STOPPED |
941b08cb4eSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_INOPERABLE |
951b08cb4eSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_SECONDARY |
961b08cb4eSAlexander Motin 					    CTL_FLAG_DATA_IN |
971b08cb4eSAlexander Motin 					    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
981b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
991b08cb4eSAlexander Motin  10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
1001b08cb4eSAlexander Motin 
1011b08cb4eSAlexander Motin /* 03 READ FULL STATUS */
1021e5a8b8fSAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV |
1031e5a8b8fSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_BOTH |
1041e5a8b8fSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_STOPPED |
1051e5a8b8fSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_INOPERABLE |
1061e5a8b8fSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_SECONDARY |
1071e5a8b8fSAlexander Motin 					    CTL_FLAG_DATA_IN |
1081e5a8b8fSAlexander Motin 					    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1091e5a8b8fSAlexander Motin  CTL_LUN_PAT_NONE,
1101e5a8b8fSAlexander Motin  10, { 0x03, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
1111b08cb4eSAlexander Motin 
1121b08cb4eSAlexander Motin /* 04-1f */
1131b08cb4eSAlexander Motin };
1141b08cb4eSAlexander Motin 
1151b08cb4eSAlexander Motin /* 5F PERSISTENT RESERVE OUT */
1161b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_5f[32] =
1171b08cb4eSAlexander Motin {
1181b08cb4eSAlexander Motin /* 00 REGISTER */
1194d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
1201b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_BOTH |
1211b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_STOPPED |
1221b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
1231b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_SECONDARY |
1241b08cb4eSAlexander Motin 						CTL_FLAG_DATA_OUT |
1251b08cb4eSAlexander Motin 						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1261b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
1271b08cb4eSAlexander Motin  10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
1281b08cb4eSAlexander Motin 
1291b08cb4eSAlexander Motin /* 01 RESERVE */
1304d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
1311b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_BOTH |
1321b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_STOPPED |
1331b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
1341b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_SECONDARY |
1351b08cb4eSAlexander Motin 						CTL_FLAG_DATA_OUT |
1361b08cb4eSAlexander Motin 						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1371b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
1380f8de8afSAlexander Motin  10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
1391b08cb4eSAlexander Motin 
1401b08cb4eSAlexander Motin /* 02 RELEASE */
1414d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
1421b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_BOTH |
1431b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_STOPPED |
1441b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
1451b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_SECONDARY |
1461b08cb4eSAlexander Motin 						CTL_FLAG_DATA_OUT |
1471b08cb4eSAlexander Motin 						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1481b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
1490f8de8afSAlexander Motin  10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
1501b08cb4eSAlexander Motin 
1511b08cb4eSAlexander Motin /* 03 CLEAR */
1524d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
1531b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_BOTH |
1541b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_STOPPED |
1551b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
1561b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_SECONDARY |
1571b08cb4eSAlexander Motin 						CTL_FLAG_DATA_OUT |
1581b08cb4eSAlexander Motin 						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1591b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
1600f8de8afSAlexander Motin  10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
1611b08cb4eSAlexander Motin 
1621b08cb4eSAlexander Motin /* 04 PREEMPT */
1634d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
1641b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_BOTH |
1651b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_STOPPED |
1661b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
1671b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_SECONDARY |
1681b08cb4eSAlexander Motin 						CTL_FLAG_DATA_OUT |
1691b08cb4eSAlexander Motin 						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1701b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
1710f8de8afSAlexander Motin  10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
1721b08cb4eSAlexander Motin 
1731b08cb4eSAlexander Motin /* 05 PREEMPT AND ABORT */
1741b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1751b08cb4eSAlexander Motin 
1761b08cb4eSAlexander Motin /* 06 REGISTER AND IGNORE EXISTING KEY */
1774d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
1781b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_BOTH |
1791b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_STOPPED |
1801b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
1811b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_SECONDARY |
1821b08cb4eSAlexander Motin 						CTL_FLAG_DATA_OUT |
1831b08cb4eSAlexander Motin 						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
1841b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
1850f8de8afSAlexander Motin  10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
1861b08cb4eSAlexander Motin 
1871b08cb4eSAlexander Motin /* 07 REGISTER AND MOVE */
1881b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1891b08cb4eSAlexander Motin 
1901b08cb4eSAlexander Motin /* 08-1f */
1911b08cb4eSAlexander Motin };
1921b08cb4eSAlexander Motin 
193984a2ea9SAlexander Motin /* 83 EXTENDED COPY */
194984a2ea9SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_83[32] =
195984a2ea9SAlexander Motin {
196984a2ea9SAlexander Motin /* 00 EXTENDED COPY (LID1) */
197984a2ea9SAlexander Motin {ctl_extended_copy_lid1, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
198984a2ea9SAlexander Motin 					    CTL_FLAG_DATA_OUT,
199984a2ea9SAlexander Motin  CTL_LUN_PAT_NONE,
200984a2ea9SAlexander Motin  16, { 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
201984a2ea9SAlexander Motin 
202984a2ea9SAlexander Motin /* 01 EXTENDED COPY (LID4) */
203984a2ea9SAlexander Motin {ctl_extended_copy_lid4, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
204984a2ea9SAlexander Motin 					    CTL_FLAG_DATA_OUT,
205984a2ea9SAlexander Motin  CTL_LUN_PAT_NONE,
206984a2ea9SAlexander Motin  16, { 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
207984a2ea9SAlexander Motin 
208984a2ea9SAlexander Motin /* 02 */
209984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
210984a2ea9SAlexander Motin 
211984a2ea9SAlexander Motin /* 03 */
212984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
213984a2ea9SAlexander Motin 
214984a2ea9SAlexander Motin /* 04 */
215984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
216984a2ea9SAlexander Motin 
217984a2ea9SAlexander Motin /* 05 */
218984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
219984a2ea9SAlexander Motin 
220984a2ea9SAlexander Motin /* 06 */
221984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
222984a2ea9SAlexander Motin 
223984a2ea9SAlexander Motin /* 07 */
224984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
225984a2ea9SAlexander Motin 
226984a2ea9SAlexander Motin /* 08 */
227984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
228984a2ea9SAlexander Motin 
229984a2ea9SAlexander Motin /* 09 */
230984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
231984a2ea9SAlexander Motin 
232984a2ea9SAlexander Motin /* 0A */
233984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
234984a2ea9SAlexander Motin 
235984a2ea9SAlexander Motin /* 0B */
236984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
237984a2ea9SAlexander Motin 
238984a2ea9SAlexander Motin /* 0C */
239984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
240984a2ea9SAlexander Motin 
241984a2ea9SAlexander Motin /* 0D */
242984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
243984a2ea9SAlexander Motin 
244984a2ea9SAlexander Motin /* 0E */
245984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
246984a2ea9SAlexander Motin 
247984a2ea9SAlexander Motin /* 0F */
248984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
249984a2ea9SAlexander Motin 
250984a2ea9SAlexander Motin /* 10 POPULATE TOKEN */
25125eee848SAlexander Motin {ctl_populate_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
25225eee848SAlexander Motin 					CTL_FLAG_DATA_OUT,
25325eee848SAlexander Motin  CTL_LUN_PAT_NONE,
25425eee848SAlexander Motin  16, { 0x10, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff,
25525eee848SAlexander Motin        0xff, 0xff, 0xff, 0xff, 0, 0x07}},
256984a2ea9SAlexander Motin 
257984a2ea9SAlexander Motin /* 11 WRITE USING TOKEN */
25825eee848SAlexander Motin {ctl_write_using_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
25925eee848SAlexander Motin 					CTL_FLAG_DATA_OUT,
26025eee848SAlexander Motin  CTL_LUN_PAT_NONE,
26125eee848SAlexander Motin  16, { 0x11, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff,
26225eee848SAlexander Motin        0xff, 0xff, 0xff, 0xff, 0, 0x07}},
263984a2ea9SAlexander Motin 
264984a2ea9SAlexander Motin /* 12 */
265984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
266984a2ea9SAlexander Motin 
267984a2ea9SAlexander Motin /* 13 */
268984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
269984a2ea9SAlexander Motin 
270984a2ea9SAlexander Motin /* 14 */
271984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
272984a2ea9SAlexander Motin 
273984a2ea9SAlexander Motin /* 15 */
274984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
275984a2ea9SAlexander Motin 
276984a2ea9SAlexander Motin /* 16 */
277984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
278984a2ea9SAlexander Motin 
279984a2ea9SAlexander Motin /* 17 */
280984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
281984a2ea9SAlexander Motin 
282984a2ea9SAlexander Motin /* 18 */
283984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
284984a2ea9SAlexander Motin 
285984a2ea9SAlexander Motin /* 19 */
286984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
287984a2ea9SAlexander Motin 
288984a2ea9SAlexander Motin /* 1A */
289984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
290984a2ea9SAlexander Motin 
291984a2ea9SAlexander Motin /* 1B */
292984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
293984a2ea9SAlexander Motin 
294984a2ea9SAlexander Motin /* 1C COPY OPERATION ABORT */
295984a2ea9SAlexander Motin {ctl_copy_operation_abort, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH |
296984a2ea9SAlexander Motin 					      CTL_FLAG_DATA_NONE,
297984a2ea9SAlexander Motin  CTL_LUN_PAT_NONE,
298984a2ea9SAlexander Motin  16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}},
299984a2ea9SAlexander Motin };
300984a2ea9SAlexander Motin 
301984a2ea9SAlexander Motin /* 84 RECEIVE COPY STATUS */
302984a2ea9SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_84[32] =
303984a2ea9SAlexander Motin {
304984a2ea9SAlexander Motin /* 00 RECEIVE COPY STATUS (LID1) */
305984a2ea9SAlexander Motin {ctl_receive_copy_status_lid1, CTL_SERIDX_RD_CAP,
306984a2ea9SAlexander Motin  CTL_CMD_FLAG_OK_ON_BOTH |
307*fb767c2bSAlexander Motin  CTL_FLAG_DATA_IN |
308*fb767c2bSAlexander Motin  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
309984a2ea9SAlexander Motin  CTL_LUN_PAT_NONE,
310984a2ea9SAlexander Motin  16, {0x00, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
311984a2ea9SAlexander Motin 
312984a2ea9SAlexander Motin /* 01 RECEIVE COPY DATA (LID1) */
313984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
314984a2ea9SAlexander Motin 
315984a2ea9SAlexander Motin /* 02 */
316984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
317984a2ea9SAlexander Motin 
318984a2ea9SAlexander Motin /* 03 RECEIVE COPY OPERATING PARAMETERS */
319984a2ea9SAlexander Motin {ctl_receive_copy_operating_parameters, CTL_SERIDX_RD_CAP,
320984a2ea9SAlexander Motin  CTL_CMD_FLAG_OK_ON_BOTH |
321984a2ea9SAlexander Motin  CTL_CMD_FLAG_OK_ON_STOPPED |
322984a2ea9SAlexander Motin  CTL_CMD_FLAG_OK_ON_INOPERABLE |
323984a2ea9SAlexander Motin  CTL_CMD_FLAG_OK_ON_SECONDARY |
324*fb767c2bSAlexander Motin  CTL_FLAG_DATA_IN |
325*fb767c2bSAlexander Motin  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
326984a2ea9SAlexander Motin  CTL_LUN_PAT_NONE,
327984a2ea9SAlexander Motin  16, {0x03, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
328984a2ea9SAlexander Motin 
329984a2ea9SAlexander Motin /* 04 RECEIVE COPY FAILURE DETAILS (LID1) */
330984a2ea9SAlexander Motin {ctl_receive_copy_failure_details, CTL_SERIDX_RD_CAP,
331984a2ea9SAlexander Motin  CTL_CMD_FLAG_OK_ON_BOTH |
332*fb767c2bSAlexander Motin  CTL_FLAG_DATA_IN |
333*fb767c2bSAlexander Motin  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
334984a2ea9SAlexander Motin  CTL_LUN_PAT_NONE,
335984a2ea9SAlexander Motin  16, {0x04, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
336984a2ea9SAlexander Motin 
337984a2ea9SAlexander Motin /* 05 RECEIVE COPY STATUS (LID4) */
338984a2ea9SAlexander Motin {ctl_receive_copy_status_lid4, CTL_SERIDX_RD_CAP,
339984a2ea9SAlexander Motin  CTL_CMD_FLAG_OK_ON_BOTH |
340984a2ea9SAlexander Motin  CTL_FLAG_DATA_IN,
341984a2ea9SAlexander Motin  CTL_LUN_PAT_NONE,
342984a2ea9SAlexander Motin  16, {0x05, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
343984a2ea9SAlexander Motin 
344984a2ea9SAlexander Motin /* 06 RECEIVE COPY DATA (LID4)*/
345984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
346984a2ea9SAlexander Motin 
347984a2ea9SAlexander Motin /* 07 RECEIVE ROD TOKEN INFORMATION */
34825eee848SAlexander Motin {ctl_receive_rod_token_information, CTL_SERIDX_RD_CAP,
34925eee848SAlexander Motin  CTL_CMD_FLAG_OK_ON_BOTH |
35025eee848SAlexander Motin  CTL_FLAG_DATA_IN,
35125eee848SAlexander Motin  CTL_LUN_PAT_NONE,
35225eee848SAlexander Motin  16, {0x07, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
353984a2ea9SAlexander Motin 
354984a2ea9SAlexander Motin /* 08 REPORT ALL ROD TOKENS */
35525eee848SAlexander Motin {ctl_report_all_rod_tokens, CTL_SERIDX_RD_CAP,
35625eee848SAlexander Motin  CTL_CMD_FLAG_OK_ON_BOTH |
35725eee848SAlexander Motin  CTL_FLAG_DATA_IN,
35825eee848SAlexander Motin  CTL_LUN_PAT_NONE,
35925eee848SAlexander Motin  16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
360984a2ea9SAlexander Motin };
361984a2ea9SAlexander Motin 
3621b08cb4eSAlexander Motin /* 9E SERVICE ACTION IN(16) */
3631b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_9e[32] =
3641b08cb4eSAlexander Motin {
3651b08cb4eSAlexander Motin /* 00 */
3661b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3671b08cb4eSAlexander Motin 
3681b08cb4eSAlexander Motin /* 01 */
3691b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3701b08cb4eSAlexander Motin 
3711b08cb4eSAlexander Motin /* 02 */
3721b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3731b08cb4eSAlexander Motin 
3741b08cb4eSAlexander Motin /* 03 */
3751b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3761b08cb4eSAlexander Motin 
3771b08cb4eSAlexander Motin /* 04 */
3781b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3791b08cb4eSAlexander Motin 
3801b08cb4eSAlexander Motin /* 05 */
3811b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3821b08cb4eSAlexander Motin 
3831b08cb4eSAlexander Motin /* 06 */
3841b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3851b08cb4eSAlexander Motin 
3861b08cb4eSAlexander Motin /* 07 */
3871b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3881b08cb4eSAlexander Motin 
3891b08cb4eSAlexander Motin /* 08 */
3901b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3911b08cb4eSAlexander Motin 
3921b08cb4eSAlexander Motin /* 09 */
3931b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3941b08cb4eSAlexander Motin 
3951b08cb4eSAlexander Motin /* 0A */
3961b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3971b08cb4eSAlexander Motin 
3981b08cb4eSAlexander Motin /* 0B */
3991b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4001b08cb4eSAlexander Motin 
4011b08cb4eSAlexander Motin /* 0C */
4021b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4031b08cb4eSAlexander Motin 
4041b08cb4eSAlexander Motin /* 0D */
4051b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4061b08cb4eSAlexander Motin 
4071b08cb4eSAlexander Motin /* 0E */
4081b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4091b08cb4eSAlexander Motin 
4101b08cb4eSAlexander Motin /* 0F */
4111b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4121b08cb4eSAlexander Motin 
4131b08cb4eSAlexander Motin /* 10 */
4141b08cb4eSAlexander Motin {ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
4151b08cb4eSAlexander Motin 					  CTL_CMD_FLAG_OK_ON_STOPPED |
4161b08cb4eSAlexander Motin 					  CTL_CMD_FLAG_OK_ON_INOPERABLE |
4171b08cb4eSAlexander Motin 					  CTL_CMD_FLAG_OK_ON_SECONDARY |
4181b08cb4eSAlexander Motin 					  CTL_FLAG_DATA_IN |
4191b08cb4eSAlexander Motin 					  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
4201b08cb4eSAlexander Motin  CTL_LUN_PAT_READCAP,
4211b08cb4eSAlexander Motin  16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
4221b08cb4eSAlexander Motin 
4231b08cb4eSAlexander Motin /* 11-1f */
4241b08cb4eSAlexander Motin };
4251b08cb4eSAlexander Motin 
4261b08cb4eSAlexander Motin /* A3 MAINTENANCE IN */
4271b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_a3[32] =
4281b08cb4eSAlexander Motin {
4291b08cb4eSAlexander Motin /* 00 */
4301b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4311b08cb4eSAlexander Motin 
4321b08cb4eSAlexander Motin /* 01 */
4331b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4341b08cb4eSAlexander Motin 
4351b08cb4eSAlexander Motin /* 02 */
4361b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4371b08cb4eSAlexander Motin 
4381b08cb4eSAlexander Motin /* 03 */
4391b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4401b08cb4eSAlexander Motin 
4411b08cb4eSAlexander Motin /* 04 */
4421b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4431b08cb4eSAlexander Motin 
4441b08cb4eSAlexander Motin /* 05 */
4451b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4461b08cb4eSAlexander Motin 
4471b08cb4eSAlexander Motin /* 06 */
4481b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4491b08cb4eSAlexander Motin 
4501b08cb4eSAlexander Motin /* 07 */
4511b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4521b08cb4eSAlexander Motin 
4531b08cb4eSAlexander Motin /* 08 */
4541b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4551b08cb4eSAlexander Motin 
4561b08cb4eSAlexander Motin /* 09 */
4571b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4581b08cb4eSAlexander Motin 
4591b08cb4eSAlexander Motin /* 0A REPORT TARGET PORT GROUPS */
4604d877c41SAlexander Motin {ctl_report_tagret_port_groups, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
4611b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_STOPPED |
4621b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
4631b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_SECONDARY |
4641b08cb4eSAlexander Motin 						CTL_FLAG_DATA_IN,
4651b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
4661b08cb4eSAlexander Motin  12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
4671b08cb4eSAlexander Motin 
4681b08cb4eSAlexander Motin /* 0B */
4691b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
4701b08cb4eSAlexander Motin 
4711b08cb4eSAlexander Motin /* 0C REPORT SUPPORTED_OPCODES */
4724d877c41SAlexander Motin {ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
4731b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_STOPPED |
4741b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_INOPERABLE |
4751b08cb4eSAlexander Motin 						CTL_CMD_FLAG_OK_ON_SECONDARY |
476*fb767c2bSAlexander Motin 						CTL_FLAG_DATA_IN |
477*fb767c2bSAlexander Motin 						CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
4781b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
4791b08cb4eSAlexander Motin  12, {0x0c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
4801b08cb4eSAlexander Motin 
4811b08cb4eSAlexander Motin /* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */
4824d877c41SAlexander Motin {ctl_report_supported_tmf, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
4831b08cb4eSAlexander Motin 					   CTL_CMD_FLAG_OK_ON_STOPPED |
4841b08cb4eSAlexander Motin 					   CTL_CMD_FLAG_OK_ON_INOPERABLE |
4851b08cb4eSAlexander Motin 					   CTL_CMD_FLAG_OK_ON_SECONDARY |
486*fb767c2bSAlexander Motin 					   CTL_FLAG_DATA_IN |
487*fb767c2bSAlexander Motin 					   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
4881b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
4891b08cb4eSAlexander Motin  12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
4901b08cb4eSAlexander Motin 
49125c9d5e5SAlexander Motin /* 0E */
49225c9d5e5SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
49325c9d5e5SAlexander Motin 
49425c9d5e5SAlexander Motin /* 0F REPORT TIMESTAMP */
4954d877c41SAlexander Motin {ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH |
49625c9d5e5SAlexander Motin 					CTL_CMD_FLAG_OK_ON_STOPPED |
49725c9d5e5SAlexander Motin 					CTL_CMD_FLAG_OK_ON_INOPERABLE |
49825c9d5e5SAlexander Motin 					CTL_CMD_FLAG_OK_ON_SECONDARY |
49925c9d5e5SAlexander Motin 					CTL_FLAG_DATA_IN,
50025c9d5e5SAlexander Motin  CTL_LUN_PAT_NONE,
50125c9d5e5SAlexander Motin  12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
50225c9d5e5SAlexander Motin 
50325c9d5e5SAlexander Motin /* 10-1f */
5041b08cb4eSAlexander Motin };
5051b08cb4eSAlexander Motin 
5061b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table[256] =
507130f4520SKenneth D. Merry {
508130f4520SKenneth D. Merry /* 00 TEST UNIT READY */
509130f4520SKenneth D. Merry {ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH |
510130f4520SKenneth D. Merry 			  CTL_FLAG_DATA_NONE |
511130f4520SKenneth D. Merry 			  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
5121b08cb4eSAlexander Motin  CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}},
513130f4520SKenneth D. Merry 
514130f4520SKenneth D. Merry /* 01 REWIND */
515130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
516130f4520SKenneth D. Merry 
517130f4520SKenneth D. Merry /* 02 */
518130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
519130f4520SKenneth D. Merry 
520130f4520SKenneth D. Merry /* 03 REQUEST SENSE */
521130f4520SKenneth D. Merry {ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN |
522130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_ALL_LUNS |
523130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_RESV |
524130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_NO_SENSE |
525130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_STOPPED |
526130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
527130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_OFFLINE |
528130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_SECONDARY |
529130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
5301b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}},
531130f4520SKenneth D. Merry 
532130f4520SKenneth D. Merry /* 04 FORMAT UNIT */
533130f4520SKenneth D. Merry {ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN |
534130f4520SKenneth D. Merry 				CTL_CMD_FLAG_OK_ON_INOPERABLE |
535130f4520SKenneth D. Merry 				CTL_FLAG_DATA_OUT,
5361b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}},
537130f4520SKenneth D. Merry 
538130f4520SKenneth D. Merry /* 05 READ BLOCK LIMITS */
539130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
540130f4520SKenneth D. Merry 
541130f4520SKenneth D. Merry /* 06 */
542130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
543130f4520SKenneth D. Merry 
544130f4520SKenneth D. Merry /* 07 REASSIGN BLOCKS */
545130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
546130f4520SKenneth D. Merry 
547130f4520SKenneth D. Merry /* 08 READ(6) */
548130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
549130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
550130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
5511b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
552130f4520SKenneth D. Merry 
553130f4520SKenneth D. Merry /* 09 */
554130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
555130f4520SKenneth D. Merry 
556130f4520SKenneth D. Merry /* 0A WRITE(6) */
557130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
558130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_OUT,
5591b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
560130f4520SKenneth D. Merry 
561130f4520SKenneth D. Merry /* 0B SEEK(6) */
562130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
563130f4520SKenneth D. Merry 
564130f4520SKenneth D. Merry /* 0C */
565130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
566130f4520SKenneth D. Merry 
567130f4520SKenneth D. Merry /* 0D */
568130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
569130f4520SKenneth D. Merry 
570130f4520SKenneth D. Merry /* 0E */
571130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
572130f4520SKenneth D. Merry 
573130f4520SKenneth D. Merry /* 0F READ REVERSE(6) */
574130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
575130f4520SKenneth D. Merry 
576130f4520SKenneth D. Merry /* 10 WRITE FILEMARKS(6) */
577130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
578130f4520SKenneth D. Merry 
579130f4520SKenneth D. Merry /* 11 SPACE(6) */
580130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
581130f4520SKenneth D. Merry 
582130f4520SKenneth D. Merry /* 12 INQUIRY */
583130f4520SKenneth D. Merry {ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
584130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_ALLOW_ON_RESV |
585130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_NO_SENSE |
586130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_STOPPED |
587130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_INOPERABLE |
588130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_OFFLINE |
589130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_SECONDARY |
590130f4520SKenneth D. Merry 			      CTL_FLAG_DATA_IN |
591130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
592561764b1SAlexander Motin  CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}},
593130f4520SKenneth D. Merry 
594130f4520SKenneth D. Merry /* 13 */
595130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
596130f4520SKenneth D. Merry 
597130f4520SKenneth D. Merry /* 14 RECOVER BUFFERED DATA */
598130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
599130f4520SKenneth D. Merry 
600130f4520SKenneth D. Merry /* 15 MODE SELECT(6) */
601130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
602130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_STOPPED |
603130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
604130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_SECONDARY |
605130f4520SKenneth D. Merry 				     CTL_FLAG_DATA_OUT,
6061b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}},
607130f4520SKenneth D. Merry 
608130f4520SKenneth D. Merry /* 16 RESERVE(6) */
6094d877c41SAlexander Motin {ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
610130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_BOTH |
611130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
612130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
613130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
614130f4520SKenneth D. Merry 				    CTL_FLAG_DATA_OUT,
6151b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
616130f4520SKenneth D. Merry 
617130f4520SKenneth D. Merry /* 17 RELEASE(6) */
6184d877c41SAlexander Motin {ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
619130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_BOTH |
620130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
621130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
622130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_SECONDARY |
623130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
6241b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
625130f4520SKenneth D. Merry 
626130f4520SKenneth D. Merry /* 18 COPY */
627130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
628130f4520SKenneth D. Merry 
629130f4520SKenneth D. Merry /* 19 ERASE(6) */
630130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
631130f4520SKenneth D. Merry 
632130f4520SKenneth D. Merry /* 1A MODE SENSE(6) */
633130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
634130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
635130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
636130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
637f82388fdSAlexander Motin 				    CTL_FLAG_DATA_IN |
638f82388fdSAlexander Motin 				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
6391b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0, 0xff, 0x07}},
640130f4520SKenneth D. Merry 
641130f4520SKenneth D. Merry /* 1B START STOP UNIT */
642130f4520SKenneth D. Merry {ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
643130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
644130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
645130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_OFFLINE |
646130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE |
647130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
6481b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}},
649130f4520SKenneth D. Merry 
650130f4520SKenneth D. Merry /* 1C RECEIVE DIAGNOSTIC RESULTS */
651130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
652130f4520SKenneth D. Merry 
653130f4520SKenneth D. Merry /* 1D SEND DIAGNOSTIC */
654130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
655130f4520SKenneth D. Merry 
656130f4520SKenneth D. Merry /* 1E PREVENT ALLOW MEDIUM REMOVAL */
657130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
658130f4520SKenneth D. Merry 
659130f4520SKenneth D. Merry /* 1F */
660130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
661130f4520SKenneth D. Merry 
662130f4520SKenneth D. Merry /* 20 */
663130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
664130f4520SKenneth D. Merry 
665130f4520SKenneth D. Merry /* 21 */
666130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
667130f4520SKenneth D. Merry 
668130f4520SKenneth D. Merry /* 22 */
669130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
670130f4520SKenneth D. Merry 
671130f4520SKenneth D. Merry /* 23 */
672130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
673130f4520SKenneth D. Merry 
674130f4520SKenneth D. Merry /* 24 SET WINDOW */
675130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
676130f4520SKenneth D. Merry 
677130f4520SKenneth D. Merry /* 25 READ CAPACITY(10) */
678130f4520SKenneth D. Merry {ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN|
679130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_STOPPED |
680130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
681130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_SECONDARY |
682130f4520SKenneth D. Merry 				       CTL_FLAG_DATA_IN |
683130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
6841b08cb4eSAlexander Motin  CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}},
685130f4520SKenneth D. Merry 
686130f4520SKenneth D. Merry /* 26 */
687130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
688130f4520SKenneth D. Merry 
689130f4520SKenneth D. Merry /* 27 */
690130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
691130f4520SKenneth D. Merry 
692130f4520SKenneth D. Merry /* 28 READ(10) */
693130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
694130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
695130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
6961b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
6971b08cb4eSAlexander Motin  10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
698130f4520SKenneth D. Merry 
699130f4520SKenneth D. Merry /* 29 READ GENERATION */
700130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
701130f4520SKenneth D. Merry 
702130f4520SKenneth D. Merry /* 2A WRITE(10) */
703130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
7041b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
7051b08cb4eSAlexander Motin  10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
706130f4520SKenneth D. Merry 
707130f4520SKenneth D. Merry /* 2B SEEK(10) */
708130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
709130f4520SKenneth D. Merry 
710130f4520SKenneth D. Merry /* 2C ERASE(10) */
711130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
712130f4520SKenneth D. Merry 
713130f4520SKenneth D. Merry /* 2D READ UPDATED BLOCK */
714130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
715130f4520SKenneth D. Merry 
716130f4520SKenneth D. Merry /* 2E WRITE AND VERIFY(10) */
717130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
7181b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
7191b08cb4eSAlexander Motin  10, {0x10, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
720130f4520SKenneth D. Merry 
721130f4520SKenneth D. Merry /* 2F VERIFY(10) */
72211b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
72311b569f7SAlexander Motin 			      CTL_FLAG_DATA_OUT |
72411b569f7SAlexander Motin 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
7251b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
7261b08cb4eSAlexander Motin  10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
727130f4520SKenneth D. Merry 
728130f4520SKenneth D. Merry /* 30 SEARCH DATA HIGH(10) */
729130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
730130f4520SKenneth D. Merry 
731130f4520SKenneth D. Merry /* 31 SEARCH DATA EQUAL(10) */
732130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
733130f4520SKenneth D. Merry 
734130f4520SKenneth D. Merry /* 32 SEARCH DATA LOW(10) */
735130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
736130f4520SKenneth D. Merry 
737130f4520SKenneth D. Merry /* 33 SET LIMITS(10) */
738130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
739130f4520SKenneth D. Merry 
740130f4520SKenneth D. Merry /* 34 PRE-FETCH(10) */
741130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
742130f4520SKenneth D. Merry 
743130f4520SKenneth D. Merry /* 35 SYNCHRONIZE CACHE(10) */
744130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
745130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
7461b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
7471b08cb4eSAlexander Motin  10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
748130f4520SKenneth D. Merry 
749130f4520SKenneth D. Merry /* 36 LOCK UNLOCK CACHE(10) */
750130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
751130f4520SKenneth D. Merry 
752130f4520SKenneth D. Merry /* 37 READ DEFECT DATA(10) */
753130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
754130f4520SKenneth D. Merry 
755130f4520SKenneth D. Merry /* 38 MEDIUM SCAN */
756130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
757130f4520SKenneth D. Merry 
758130f4520SKenneth D. Merry /* 39 COMPARE */
759130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
760130f4520SKenneth D. Merry 
761130f4520SKenneth D. Merry /* 3A COPY AND VERIFY */
762130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
763130f4520SKenneth D. Merry 
764130f4520SKenneth D. Merry /* 3B WRITE BUFFER */
76585165a3fSAlexander Motin {ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
766130f4520SKenneth D. Merry 				      CTL_FLAG_DATA_OUT,
7671b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
7681b08cb4eSAlexander Motin  10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
769130f4520SKenneth D. Merry 
770130f4520SKenneth D. Merry /* 3C READ BUFFER */
77185165a3fSAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
77285165a3fSAlexander Motin 				     CTL_FLAG_DATA_IN |
77385165a3fSAlexander Motin 				     CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
7741b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
7751b08cb4eSAlexander Motin  10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
776130f4520SKenneth D. Merry 
777130f4520SKenneth D. Merry /* 3D UPDATE BLOCK */
778130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
779130f4520SKenneth D. Merry 
780130f4520SKenneth D. Merry /* 3E READ LONG */
781130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
782130f4520SKenneth D. Merry 
783130f4520SKenneth D. Merry /* 3F WRITE LONG */
784130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
785130f4520SKenneth D. Merry 
786130f4520SKenneth D. Merry /* 40 CHANGE DEFINITION */
787130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
788130f4520SKenneth D. Merry 
789130f4520SKenneth D. Merry /* 41 WRITE SAME(10) */
790ee7f31c0SAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
791ee7f31c0SAlexander Motin 				   CTL_FLAG_DATA_OUT,
7921b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
7933406a2a0SAlexander Motin  10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
794130f4520SKenneth D. Merry 
795ee7f31c0SAlexander Motin /* 42 READ SUB-CHANNEL / UNMAP */
796004008d6SAlexander Motin {ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT,
7971b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE,
7983406a2a0SAlexander Motin  10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
799130f4520SKenneth D. Merry 
800130f4520SKenneth D. Merry /* 43 READ TOC/PMA/ATIP */
801130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
802130f4520SKenneth D. Merry 
803130f4520SKenneth D. Merry /* 44 REPORT DENSITY SUPPORT */
804130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
805130f4520SKenneth D. Merry 
806130f4520SKenneth D. Merry /* 45 PLAY AUDIO(10) */
807130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
808130f4520SKenneth D. Merry 
809130f4520SKenneth D. Merry /* 46 GET CONFIGURATION */
810130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
811130f4520SKenneth D. Merry 
812130f4520SKenneth D. Merry /* 47 PLAY AUDIO MSF */
813130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
814130f4520SKenneth D. Merry 
815130f4520SKenneth D. Merry /* 48 PLAY AUDIO TRACK INDEX */
816130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
817130f4520SKenneth D. Merry 
818130f4520SKenneth D. Merry /* 49 PLAY TRACK RELATIVE(10) */
819130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
820130f4520SKenneth D. Merry 
821130f4520SKenneth D. Merry /* 4A GET EVENT STATUS NOTIFICATION */
822130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
823130f4520SKenneth D. Merry 
824130f4520SKenneth D. Merry /* 4B PAUSE/RESUME */
825130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
826130f4520SKenneth D. Merry 
827130f4520SKenneth D. Merry /* 4C LOG SELECT */
828130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
829130f4520SKenneth D. Merry 
830130f4520SKenneth D. Merry /* 4D LOG SENSE */
831130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
832130f4520SKenneth D. Merry 
833130f4520SKenneth D. Merry /* 4E STOP PLAY/SCAN */
834130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
835130f4520SKenneth D. Merry 
836130f4520SKenneth D. Merry /* 4F */
837130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
838130f4520SKenneth D. Merry 
839130f4520SKenneth D. Merry /* 50 XDWRITE(10) */
840130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
841130f4520SKenneth D. Merry 
842130f4520SKenneth D. Merry /* 51 XPWRITE(10) */
843130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
844130f4520SKenneth D. Merry 
845130f4520SKenneth D. Merry /* 52 XDREAD(10) */
846130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
847130f4520SKenneth D. Merry 
848130f4520SKenneth D. Merry /* 53 RESERVE TRACK */
849130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
850130f4520SKenneth D. Merry 
851130f4520SKenneth D. Merry /* 54 SEND OPC INFORMATION */
852130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
853130f4520SKenneth D. Merry 
854130f4520SKenneth D. Merry /* 55 MODE SELECT(10) */
855130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
856130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_STOPPED |
857130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
858130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_SECONDARY |
859130f4520SKenneth D. Merry 				     CTL_FLAG_DATA_OUT,
8601b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} },
861130f4520SKenneth D. Merry 
862130f4520SKenneth D. Merry /* 56 RESERVE(10) */
8634d877c41SAlexander Motin {ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
864130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_BOTH |
865130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
866130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
867130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
868130f4520SKenneth D. Merry 				    CTL_FLAG_DATA_OUT,
8691b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
870130f4520SKenneth D. Merry 
871130f4520SKenneth D. Merry /* 57 RELEASE(10) */
8724d877c41SAlexander Motin {ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
873130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_BOTH |
874130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
875130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
876130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_SECONDARY |
877130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_OUT,
8781b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
879130f4520SKenneth D. Merry 
880130f4520SKenneth D. Merry /* 58 REPAIR TRACK */
881130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
882130f4520SKenneth D. Merry 
883130f4520SKenneth D. Merry /* 59 READ MASTER CUE */
884130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
885130f4520SKenneth D. Merry 
886130f4520SKenneth D. Merry /* 5A MODE SENSE(10) */
887130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
888130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
889130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
890130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
891f82388fdSAlexander Motin 				    CTL_FLAG_DATA_IN |
892f82388fdSAlexander Motin 				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
8931b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0x07} },
894130f4520SKenneth D. Merry 
895130f4520SKenneth D. Merry /* 5B CLOSE TRACK/SESSION */
896130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
897130f4520SKenneth D. Merry 
898130f4520SKenneth D. Merry /* 5C READ BUFFER CAPACITY */
899130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
900130f4520SKenneth D. Merry 
901130f4520SKenneth D. Merry /* 5D SEND CUE SHEET */
902130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
903130f4520SKenneth D. Merry 
904130f4520SKenneth D. Merry /* 5E PERSISTENT RESERVE IN */
9051b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
906130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
907130f4520SKenneth D. Merry 
908130f4520SKenneth D. Merry /* 5F PERSISTENT RESERVE OUT */
9091b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
910130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
911130f4520SKenneth D. Merry 
912130f4520SKenneth D. Merry /* 60 */
913130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
914130f4520SKenneth D. Merry 
915130f4520SKenneth D. Merry /* 61 */
916130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
917130f4520SKenneth D. Merry 
918130f4520SKenneth D. Merry /* 62 */
919130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
920130f4520SKenneth D. Merry 
921130f4520SKenneth D. Merry /* 63 */
922130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
923130f4520SKenneth D. Merry 
924130f4520SKenneth D. Merry /* 64 */
925130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
926130f4520SKenneth D. Merry 
927130f4520SKenneth D. Merry /* 65 */
928130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
929130f4520SKenneth D. Merry 
930130f4520SKenneth D. Merry /* 66 */
931130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
932130f4520SKenneth D. Merry 
933130f4520SKenneth D. Merry /* 67 */
934130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
935130f4520SKenneth D. Merry 
936130f4520SKenneth D. Merry /* 68 */
937130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
938130f4520SKenneth D. Merry 
939130f4520SKenneth D. Merry /* 69 */
940130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
941130f4520SKenneth D. Merry 
942130f4520SKenneth D. Merry /* 6A */
943130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
944130f4520SKenneth D. Merry 
945130f4520SKenneth D. Merry /* 6B */
946130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
947130f4520SKenneth D. Merry 
948130f4520SKenneth D. Merry /* 6C */
949130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
950130f4520SKenneth D. Merry 
951130f4520SKenneth D. Merry /* 6D */
952130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
953130f4520SKenneth D. Merry 
954130f4520SKenneth D. Merry /* 6E */
955130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
956130f4520SKenneth D. Merry 
957130f4520SKenneth D. Merry /* 6F */
958130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
959130f4520SKenneth D. Merry 
960130f4520SKenneth D. Merry /* 70 */
961130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
962130f4520SKenneth D. Merry 
963130f4520SKenneth D. Merry /* 71 */
964130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
965130f4520SKenneth D. Merry 
966130f4520SKenneth D. Merry /* 72 */
967130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
968130f4520SKenneth D. Merry 
969130f4520SKenneth D. Merry /* 73 */
970130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
971130f4520SKenneth D. Merry 
972130f4520SKenneth D. Merry /* 74 */
973130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
974130f4520SKenneth D. Merry 
975130f4520SKenneth D. Merry /* 75 */
976130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
977130f4520SKenneth D. Merry 
978130f4520SKenneth D. Merry /* 76 */
979130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
980130f4520SKenneth D. Merry 
981130f4520SKenneth D. Merry /* 77 */
982130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
983130f4520SKenneth D. Merry 
984130f4520SKenneth D. Merry /* 78 */
985130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
986130f4520SKenneth D. Merry 
987130f4520SKenneth D. Merry /* 79 */
988130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
989130f4520SKenneth D. Merry 
990130f4520SKenneth D. Merry /* 7A */
991130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
992130f4520SKenneth D. Merry 
993130f4520SKenneth D. Merry /* 7B */
994130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
995130f4520SKenneth D. Merry 
996130f4520SKenneth D. Merry /* 7C */
997130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
998130f4520SKenneth D. Merry 
999130f4520SKenneth D. Merry /* 7D */
1000130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1001130f4520SKenneth D. Merry 
1002130f4520SKenneth D. Merry /* 7E */
1003130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1004130f4520SKenneth D. Merry 
1005130f4520SKenneth D. Merry /* 7F */
1006130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1007130f4520SKenneth D. Merry 
1008130f4520SKenneth D. Merry /* 80 XDWRITE EXTENDED(16) */
1009130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1010130f4520SKenneth D. Merry 
1011130f4520SKenneth D. Merry /* 81 REBUILD(16) */
1012130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1013130f4520SKenneth D. Merry 
1014130f4520SKenneth D. Merry /* 82 REGENERATE(16) */
1015130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1016130f4520SKenneth D. Merry 
1017130f4520SKenneth D. Merry /* 83 EXTENDED COPY */
1018984a2ea9SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1019984a2ea9SAlexander Motin  CTL_LUN_PAT_NONE},
1020130f4520SKenneth D. Merry 
1021130f4520SKenneth D. Merry /* 84 RECEIVE COPY RESULTS */
1022984a2ea9SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1023984a2ea9SAlexander Motin  CTL_LUN_PAT_NONE},
1024130f4520SKenneth D. Merry 
1025130f4520SKenneth D. Merry /* 85 */
1026130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1027130f4520SKenneth D. Merry 
1028130f4520SKenneth D. Merry /* 86 ACCESS CONTROL IN */
1029130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1030130f4520SKenneth D. Merry 
1031130f4520SKenneth D. Merry /* 87 ACCESS CONTROL OUT */
1032130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1033130f4520SKenneth D. Merry 
1034130f4520SKenneth D. Merry /* 88 READ(16) */
1035130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
1036130f4520SKenneth D. Merry                                   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
10371b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
10381b08cb4eSAlexander Motin  16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10391b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1040130f4520SKenneth D. Merry 
104111b569f7SAlexander Motin /* 89 COMPARE AND WRITE */
104211b569f7SAlexander Motin {ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
10431b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
10441b08cb4eSAlexander Motin  16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10451b08cb4eSAlexander Motin       0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}},
1046130f4520SKenneth D. Merry 
1047130f4520SKenneth D. Merry /* 8A WRITE(16) */
1048130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
10491b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
10501b08cb4eSAlexander Motin  16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10511b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1052130f4520SKenneth D. Merry 
1053130f4520SKenneth D. Merry /* 8B */
1054130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1055130f4520SKenneth D. Merry 
1056130f4520SKenneth D. Merry /* 8C READ ATTRIBUTE */
1057130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1058130f4520SKenneth D. Merry 
1059130f4520SKenneth D. Merry /* 8D WRITE ATTRIBUTE */
1060130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1061130f4520SKenneth D. Merry 
1062130f4520SKenneth D. Merry /* 8E WRITE AND VERIFY(16) */
1063130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
10641b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
10651b08cb4eSAlexander Motin  16, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10661b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1067130f4520SKenneth D. Merry 
1068130f4520SKenneth D. Merry /* 8F VERIFY(16) */
106911b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
107011b569f7SAlexander Motin 			      CTL_FLAG_DATA_OUT |
107111b569f7SAlexander Motin 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
10721b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
10731b08cb4eSAlexander Motin  16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10741b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1075130f4520SKenneth D. Merry 
1076130f4520SKenneth D. Merry /* 90 PRE-FETCH(16) */
1077130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1078130f4520SKenneth D. Merry 
1079130f4520SKenneth D. Merry /* 91 SYNCHRONIZE CACHE(16) */
1080130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
1081130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
10821b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
10831b08cb4eSAlexander Motin  16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10841b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1085130f4520SKenneth D. Merry 
1086130f4520SKenneth D. Merry /* 92 LOCK UNLOCK CACHE(16) */
1087130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1088130f4520SKenneth D. Merry 
1089130f4520SKenneth D. Merry /* 93 WRITE SAME(16) */
1090ee7f31c0SAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
1091ee7f31c0SAlexander Motin 				   CTL_FLAG_DATA_OUT,
10921b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
109364c5167cSAlexander Motin  16, {0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10941b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1095130f4520SKenneth D. Merry 
1096130f4520SKenneth D. Merry /* 94 */
1097130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1098130f4520SKenneth D. Merry 
1099130f4520SKenneth D. Merry /* 95 */
1100130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1101130f4520SKenneth D. Merry 
1102130f4520SKenneth D. Merry /* 96 */
1103130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1104130f4520SKenneth D. Merry 
1105130f4520SKenneth D. Merry /* 97 */
1106130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1107130f4520SKenneth D. Merry 
1108130f4520SKenneth D. Merry /* 98 */
1109130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1110130f4520SKenneth D. Merry 
1111130f4520SKenneth D. Merry /* 99 */
1112130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1113130f4520SKenneth D. Merry 
1114130f4520SKenneth D. Merry /* 9A */
1115130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1116130f4520SKenneth D. Merry 
1117130f4520SKenneth D. Merry /* 9B */
1118130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1119130f4520SKenneth D. Merry 
1120130f4520SKenneth D. Merry /* 9C */
1121130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1122130f4520SKenneth D. Merry 
1123130f4520SKenneth D. Merry /* 9D */
1124130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1125130f4520SKenneth D. Merry 
1126130f4520SKenneth D. Merry /* 9E SERVICE ACTION IN(16) */
11271b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
11281b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE},
1129130f4520SKenneth D. Merry 
1130130f4520SKenneth D. Merry /* 9F SERVICE ACTION OUT(16) */
1131130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1132130f4520SKenneth D. Merry 
1133130f4520SKenneth D. Merry /* A0 REPORT LUNS */
1134130f4520SKenneth D. Merry {ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
1135130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_RESV |
1136130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_NO_SENSE |
1137130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_STOPPED |
1138130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_INOPERABLE |
1139130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_OFFLINE |
1140130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_SECONDARY |
1141130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
1142130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
11431b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
11441b08cb4eSAlexander Motin  12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1145130f4520SKenneth D. Merry 
1146130f4520SKenneth D. Merry /* A1 BLANK */
1147130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1148130f4520SKenneth D. Merry 
1149130f4520SKenneth D. Merry /* A2 SEND EVENT */
1150130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1151130f4520SKenneth D. Merry 
11521b08cb4eSAlexander Motin /* A3 MAINTENANCE IN */
11531b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
1154130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
1155130f4520SKenneth D. Merry 
11561b08cb4eSAlexander Motin /* A4 MAINTENANCE OUT */
1157130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1158130f4520SKenneth D. Merry 
1159130f4520SKenneth D. Merry /* A5 MOVE MEDIUM */
1160130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1161130f4520SKenneth D. Merry 
1162130f4520SKenneth D. Merry /* A6 EXCHANGE MEDIUM */
1163130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1164130f4520SKenneth D. Merry 
1165130f4520SKenneth D. Merry /* A7 MOVE MEDIUM ATTACHED */
1166130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1167130f4520SKenneth D. Merry 
1168130f4520SKenneth D. Merry /* A8 READ(12) */
1169130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
1170130f4520SKenneth D. Merry                                   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
11711b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
11721b08cb4eSAlexander Motin  12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1173130f4520SKenneth D. Merry 
1174130f4520SKenneth D. Merry /* A9 PLAY TRACK RELATIVE(12) */
1175130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1176130f4520SKenneth D. Merry 
1177130f4520SKenneth D. Merry /* AA WRITE(12) */
1178130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
11791b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
11801b08cb4eSAlexander Motin  12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1181130f4520SKenneth D. Merry 
1182130f4520SKenneth D. Merry /* AB SERVICE ACTION IN(12) */
1183130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1184130f4520SKenneth D. Merry 
1185130f4520SKenneth D. Merry /* AC ERASE(12) */
1186130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1187130f4520SKenneth D. Merry 
1188130f4520SKenneth D. Merry /* AD READ DVD STRUCTURE */
1189130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1190130f4520SKenneth D. Merry 
1191130f4520SKenneth D. Merry /* AE WRITE AND VERIFY(12) */
1192130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
11931b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
11941b08cb4eSAlexander Motin  12, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1195130f4520SKenneth D. Merry 
1196130f4520SKenneth D. Merry /* AF VERIFY(12) */
119711b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
119811b569f7SAlexander Motin 			      CTL_FLAG_DATA_OUT |
119911b569f7SAlexander Motin 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
12001b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
12011b08cb4eSAlexander Motin  12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1202130f4520SKenneth D. Merry 
1203130f4520SKenneth D. Merry /* B0 SEARCH DATA HIGH(12) */
1204130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1205130f4520SKenneth D. Merry 
1206130f4520SKenneth D. Merry /* B1 SEARCH DATA EQUAL(12) */
1207130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1208130f4520SKenneth D. Merry 
1209130f4520SKenneth D. Merry /* B2 SEARCH DATA LOW(12) */
1210130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1211130f4520SKenneth D. Merry 
1212130f4520SKenneth D. Merry /* B3 SET LIMITS(12) */
1213130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1214130f4520SKenneth D. Merry 
1215130f4520SKenneth D. Merry /* B4 READ ELEMENT STATUS ATTACHED */
1216130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1217130f4520SKenneth D. Merry 
1218130f4520SKenneth D. Merry /* B5 REQUEST VOLUME ELEMENT ADDRESS */
1219130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1220130f4520SKenneth D. Merry 
1221130f4520SKenneth D. Merry /* B6 SEND VOLUME TAG */
1222130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1223130f4520SKenneth D. Merry 
1224130f4520SKenneth D. Merry /* B7 READ DEFECT DATA(12) */
1225130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1226130f4520SKenneth D. Merry 
1227130f4520SKenneth D. Merry /* B8 READ ELEMENT STATUS */
1228130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1229130f4520SKenneth D. Merry 
1230130f4520SKenneth D. Merry /* B9 READ CD MSF */
1231130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1232130f4520SKenneth D. Merry 
12331b08cb4eSAlexander Motin /* BA REDUNDANCY GROUP IN */
1234130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1235130f4520SKenneth D. Merry 
12361b08cb4eSAlexander Motin /* BB REDUNDANCY GROUP OUT */
1237130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1238130f4520SKenneth D. Merry 
12391b08cb4eSAlexander Motin /* BC SPARE IN */
1240130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1241130f4520SKenneth D. Merry 
12421b08cb4eSAlexander Motin /* BD SPARE OUT */
1243130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1244130f4520SKenneth D. Merry 
12451b08cb4eSAlexander Motin /* BE VOLUME SET IN */
1246130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1247130f4520SKenneth D. Merry 
12481b08cb4eSAlexander Motin /* BF VOLUME SET OUT */
1249130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1250130f4520SKenneth D. Merry 
1251130f4520SKenneth D. Merry /* C0 - ISC_SEND_MSG_SHORT */
1252130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1253130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE,
12541b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
12551b08cb4eSAlexander Motin  16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
12561b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1257130f4520SKenneth D. Merry 
1258130f4520SKenneth D. Merry /* C1 - ISC_SEND_MSG */
1259130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1260130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
12611b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
12621b08cb4eSAlexander Motin  16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
12631b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1264130f4520SKenneth D. Merry 
1265130f4520SKenneth D. Merry /* C2 - ISC_WRITE */
1266130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1267130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
12681b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
12691b08cb4eSAlexander Motin  16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
12701b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1271130f4520SKenneth D. Merry 
1272130f4520SKenneth D. Merry /* C3 - ISC_READ */
1273130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1274130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN,
12751b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
12761b08cb4eSAlexander Motin  16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
12771b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1278130f4520SKenneth D. Merry 
1279130f4520SKenneth D. Merry /* C4 */
1280130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1281130f4520SKenneth D. Merry 
1282130f4520SKenneth D. Merry /* C5 */
1283130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1284130f4520SKenneth D. Merry 
1285130f4520SKenneth D. Merry /* C6 */
1286130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1287130f4520SKenneth D. Merry 
1288130f4520SKenneth D. Merry /* C7 */
1289130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1290130f4520SKenneth D. Merry 
1291130f4520SKenneth D. Merry /* C8 */
1292130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1293130f4520SKenneth D. Merry 
1294130f4520SKenneth D. Merry /* C9 */
1295130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1296130f4520SKenneth D. Merry 
1297130f4520SKenneth D. Merry /* CA */
1298130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1299130f4520SKenneth D. Merry 
1300130f4520SKenneth D. Merry /* CB */
1301130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1302130f4520SKenneth D. Merry 
1303130f4520SKenneth D. Merry /* CC */
1304130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1305130f4520SKenneth D. Merry 
1306130f4520SKenneth D. Merry /* CD */
1307130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1308130f4520SKenneth D. Merry 
1309130f4520SKenneth D. Merry /* CE */
1310130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1311130f4520SKenneth D. Merry 
1312130f4520SKenneth D. Merry /* CF */
1313130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1314130f4520SKenneth D. Merry 
1315130f4520SKenneth D. Merry /* D0 */
1316130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1317130f4520SKenneth D. Merry 
1318130f4520SKenneth D. Merry /* D1 */
1319130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1320130f4520SKenneth D. Merry 
1321130f4520SKenneth D. Merry /* D2 */
1322130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1323130f4520SKenneth D. Merry 
1324130f4520SKenneth D. Merry /* D3 */
1325130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1326130f4520SKenneth D. Merry 
1327130f4520SKenneth D. Merry /* D4 */
1328130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1329130f4520SKenneth D. Merry 
1330130f4520SKenneth D. Merry /* D5 */
1331130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1332130f4520SKenneth D. Merry 
1333130f4520SKenneth D. Merry /* D6 */
1334130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1335130f4520SKenneth D. Merry 
1336130f4520SKenneth D. Merry /* D7 */
1337130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1338130f4520SKenneth D. Merry 
1339130f4520SKenneth D. Merry /* D8 */
1340130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1341130f4520SKenneth D. Merry 
1342130f4520SKenneth D. Merry /* D9 */
1343130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1344130f4520SKenneth D. Merry 
1345130f4520SKenneth D. Merry /* DA */
1346130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1347130f4520SKenneth D. Merry 
1348130f4520SKenneth D. Merry /* DB */
1349130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1350130f4520SKenneth D. Merry 
1351130f4520SKenneth D. Merry /* DC */
1352130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1353130f4520SKenneth D. Merry 
1354130f4520SKenneth D. Merry /* DD */
1355130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1356130f4520SKenneth D. Merry 
1357130f4520SKenneth D. Merry /* DE */
1358130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1359130f4520SKenneth D. Merry 
1360130f4520SKenneth D. Merry /* DF */
1361130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1362130f4520SKenneth D. Merry 
1363130f4520SKenneth D. Merry /* E0 */
1364130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1365130f4520SKenneth D. Merry 
1366130f4520SKenneth D. Merry /* E1 */
1367130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1368130f4520SKenneth D. Merry 
1369130f4520SKenneth D. Merry /* E2 */
1370130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1371130f4520SKenneth D. Merry 
1372130f4520SKenneth D. Merry /* E3 */
1373130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1374130f4520SKenneth D. Merry 
1375130f4520SKenneth D. Merry /* E4 */
1376130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1377130f4520SKenneth D. Merry 
1378130f4520SKenneth D. Merry /* E5 */
1379130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1380130f4520SKenneth D. Merry 
1381130f4520SKenneth D. Merry /* E6 */
1382130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1383130f4520SKenneth D. Merry 
1384130f4520SKenneth D. Merry /* E7 */
1385130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1386130f4520SKenneth D. Merry 
1387130f4520SKenneth D. Merry /* E8 */
1388130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1389130f4520SKenneth D. Merry 
1390130f4520SKenneth D. Merry /* E9 */
1391130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1392130f4520SKenneth D. Merry 
1393130f4520SKenneth D. Merry /* EA */
1394130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1395130f4520SKenneth D. Merry 
1396130f4520SKenneth D. Merry /* EB */
1397130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1398130f4520SKenneth D. Merry 
1399130f4520SKenneth D. Merry /* EC */
1400130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1401130f4520SKenneth D. Merry 
1402130f4520SKenneth D. Merry /* ED */
1403130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1404130f4520SKenneth D. Merry 
1405130f4520SKenneth D. Merry /* EE */
1406130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1407130f4520SKenneth D. Merry 
1408130f4520SKenneth D. Merry /* EF */
1409130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1410130f4520SKenneth D. Merry 
1411130f4520SKenneth D. Merry /* F0 */
1412130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1413130f4520SKenneth D. Merry 
1414130f4520SKenneth D. Merry /* F1 */
1415130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1416130f4520SKenneth D. Merry 
1417130f4520SKenneth D. Merry /* F2 */
1418130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1419130f4520SKenneth D. Merry 
1420130f4520SKenneth D. Merry /* F3 */
1421130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1422130f4520SKenneth D. Merry 
1423130f4520SKenneth D. Merry /* F4 */
1424130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1425130f4520SKenneth D. Merry 
1426130f4520SKenneth D. Merry /* F5 */
1427130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1428130f4520SKenneth D. Merry 
1429130f4520SKenneth D. Merry /* F6 */
1430130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1431130f4520SKenneth D. Merry 
1432130f4520SKenneth D. Merry /* F7 */
1433130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1434130f4520SKenneth D. Merry 
1435130f4520SKenneth D. Merry /* F8 */
1436130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1437130f4520SKenneth D. Merry 
1438130f4520SKenneth D. Merry /* F9 */
1439130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1440130f4520SKenneth D. Merry 
1441130f4520SKenneth D. Merry /* FA */
1442130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1443130f4520SKenneth D. Merry 
1444130f4520SKenneth D. Merry /* FB */
1445130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1446130f4520SKenneth D. Merry 
1447130f4520SKenneth D. Merry /* FC */
1448130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1449130f4520SKenneth D. Merry 
1450130f4520SKenneth D. Merry /* FD */
1451130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1452130f4520SKenneth D. Merry 
1453130f4520SKenneth D. Merry /* FE */
1454130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1455130f4520SKenneth D. Merry 
1456130f4520SKenneth D. Merry /* FF */
1457130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}
1458130f4520SKenneth D. Merry 
1459130f4520SKenneth D. Merry };
1460