xref: /freebsd/sys/cam/ctl/ctl_cmd_table.c (revision 1e5a8b8f4bfbd7737aa13fbcbd972c6989c1025d)
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 */
691b08cb4eSAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_PRES_IN, 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 */
801b08cb4eSAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_PRES_IN, 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 */
102*1e5a8b8fSAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV |
103*1e5a8b8fSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_BOTH |
104*1e5a8b8fSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_STOPPED |
105*1e5a8b8fSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_INOPERABLE |
106*1e5a8b8fSAlexander Motin 					    CTL_CMD_FLAG_OK_ON_SECONDARY |
107*1e5a8b8fSAlexander Motin 					    CTL_FLAG_DATA_IN |
108*1e5a8b8fSAlexander Motin 					    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
109*1e5a8b8fSAlexander Motin  CTL_LUN_PAT_NONE,
110*1e5a8b8fSAlexander 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 */
1191b08cb4eSAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, 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 */
1301b08cb4eSAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, 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 */
1411b08cb4eSAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, 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 */
1521b08cb4eSAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, 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 */
1631b08cb4eSAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, 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 */
1771b08cb4eSAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, 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 
1931b08cb4eSAlexander Motin /* 9E SERVICE ACTION IN(16) */
1941b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_9e[32] =
1951b08cb4eSAlexander Motin {
1961b08cb4eSAlexander Motin /* 00 */
1971b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1981b08cb4eSAlexander Motin 
1991b08cb4eSAlexander Motin /* 01 */
2001b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2011b08cb4eSAlexander Motin 
2021b08cb4eSAlexander Motin /* 02 */
2031b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2041b08cb4eSAlexander Motin 
2051b08cb4eSAlexander Motin /* 03 */
2061b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2071b08cb4eSAlexander Motin 
2081b08cb4eSAlexander Motin /* 04 */
2091b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2101b08cb4eSAlexander Motin 
2111b08cb4eSAlexander Motin /* 05 */
2121b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2131b08cb4eSAlexander Motin 
2141b08cb4eSAlexander Motin /* 06 */
2151b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2161b08cb4eSAlexander Motin 
2171b08cb4eSAlexander Motin /* 07 */
2181b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2191b08cb4eSAlexander Motin 
2201b08cb4eSAlexander Motin /* 08 */
2211b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2221b08cb4eSAlexander Motin 
2231b08cb4eSAlexander Motin /* 09 */
2241b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2251b08cb4eSAlexander Motin 
2261b08cb4eSAlexander Motin /* 0A */
2271b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2281b08cb4eSAlexander Motin 
2291b08cb4eSAlexander Motin /* 0B */
2301b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2311b08cb4eSAlexander Motin 
2321b08cb4eSAlexander Motin /* 0C */
2331b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2341b08cb4eSAlexander Motin 
2351b08cb4eSAlexander Motin /* 0D */
2361b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2371b08cb4eSAlexander Motin 
2381b08cb4eSAlexander Motin /* 0E */
2391b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2401b08cb4eSAlexander Motin 
2411b08cb4eSAlexander Motin /* 0F */
2421b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2431b08cb4eSAlexander Motin 
2441b08cb4eSAlexander Motin /* 10 */
2451b08cb4eSAlexander Motin {ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN |
2461b08cb4eSAlexander Motin 					  CTL_CMD_FLAG_OK_ON_STOPPED |
2471b08cb4eSAlexander Motin 					  CTL_CMD_FLAG_OK_ON_INOPERABLE |
2481b08cb4eSAlexander Motin 					  CTL_CMD_FLAG_OK_ON_SECONDARY |
2491b08cb4eSAlexander Motin 					  CTL_FLAG_DATA_IN |
2501b08cb4eSAlexander Motin 					  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
2511b08cb4eSAlexander Motin  CTL_LUN_PAT_READCAP,
2521b08cb4eSAlexander Motin  16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
2531b08cb4eSAlexander Motin 
2541b08cb4eSAlexander Motin /* 11-1f */
2551b08cb4eSAlexander Motin };
2561b08cb4eSAlexander Motin 
2571b08cb4eSAlexander Motin /* A3 MAINTENANCE IN */
2581b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_a3[32] =
2591b08cb4eSAlexander Motin {
2601b08cb4eSAlexander Motin /* 00 */
2611b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2621b08cb4eSAlexander Motin 
2631b08cb4eSAlexander Motin /* 01 */
2641b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2651b08cb4eSAlexander Motin 
2661b08cb4eSAlexander Motin /* 02 */
2671b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2681b08cb4eSAlexander Motin 
2691b08cb4eSAlexander Motin /* 03 */
2701b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2711b08cb4eSAlexander Motin 
2721b08cb4eSAlexander Motin /* 04 */
2731b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2741b08cb4eSAlexander Motin 
2751b08cb4eSAlexander Motin /* 05 */
2761b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2771b08cb4eSAlexander Motin 
2781b08cb4eSAlexander Motin /* 06 */
2791b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2801b08cb4eSAlexander Motin 
2811b08cb4eSAlexander Motin /* 07 */
2821b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2831b08cb4eSAlexander Motin 
2841b08cb4eSAlexander Motin /* 08 */
2851b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2861b08cb4eSAlexander Motin 
2871b08cb4eSAlexander Motin /* 09 */
2881b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
2891b08cb4eSAlexander Motin 
2901b08cb4eSAlexander Motin /* 0A REPORT TARGET PORT GROUPS */
2911b08cb4eSAlexander Motin {ctl_report_tagret_port_groups, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH |
2921b08cb4eSAlexander Motin 						    CTL_CMD_FLAG_OK_ON_STOPPED |
2931b08cb4eSAlexander Motin 						    CTL_CMD_FLAG_OK_ON_INOPERABLE |
2941b08cb4eSAlexander Motin 						    CTL_CMD_FLAG_OK_ON_SECONDARY |
2951b08cb4eSAlexander Motin 						    CTL_FLAG_DATA_IN,
2961b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
2971b08cb4eSAlexander Motin  12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
2981b08cb4eSAlexander Motin 
2991b08cb4eSAlexander Motin /* 0B */
3001b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
3011b08cb4eSAlexander Motin 
3021b08cb4eSAlexander Motin /* 0C REPORT SUPPORTED_OPCODES */
3031b08cb4eSAlexander Motin {ctl_report_supported_opcodes, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH |
3041b08cb4eSAlexander Motin 						   CTL_CMD_FLAG_OK_ON_STOPPED |
3051b08cb4eSAlexander Motin 						   CTL_CMD_FLAG_OK_ON_INOPERABLE |
3061b08cb4eSAlexander Motin 						   CTL_CMD_FLAG_OK_ON_SECONDARY |
3071b08cb4eSAlexander Motin 						   CTL_FLAG_DATA_IN,
3081b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
3091b08cb4eSAlexander Motin  12, {0x0c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
3101b08cb4eSAlexander Motin 
3111b08cb4eSAlexander Motin /* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */
3121b08cb4eSAlexander Motin {ctl_report_supported_tmf, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH |
3131b08cb4eSAlexander Motin 					       CTL_CMD_FLAG_OK_ON_STOPPED |
3141b08cb4eSAlexander Motin 					       CTL_CMD_FLAG_OK_ON_INOPERABLE |
3151b08cb4eSAlexander Motin 					       CTL_CMD_FLAG_OK_ON_SECONDARY |
3161b08cb4eSAlexander Motin 					       CTL_FLAG_DATA_IN,
3171b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
3181b08cb4eSAlexander Motin  12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
3191b08cb4eSAlexander Motin 
32025c9d5e5SAlexander Motin /* 0E */
32125c9d5e5SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
32225c9d5e5SAlexander Motin 
32325c9d5e5SAlexander Motin /* 0F REPORT TIMESTAMP */
32425c9d5e5SAlexander Motin {ctl_report_timestamp, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH |
32525c9d5e5SAlexander Motin 					   CTL_CMD_FLAG_OK_ON_STOPPED |
32625c9d5e5SAlexander Motin 					   CTL_CMD_FLAG_OK_ON_INOPERABLE |
32725c9d5e5SAlexander Motin 					   CTL_CMD_FLAG_OK_ON_SECONDARY |
32825c9d5e5SAlexander Motin 					   CTL_FLAG_DATA_IN,
32925c9d5e5SAlexander Motin  CTL_LUN_PAT_NONE,
33025c9d5e5SAlexander Motin  12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
33125c9d5e5SAlexander Motin 
33225c9d5e5SAlexander Motin /* 10-1f */
3331b08cb4eSAlexander Motin };
3341b08cb4eSAlexander Motin 
3351b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table[256] =
336130f4520SKenneth D. Merry {
337130f4520SKenneth D. Merry /* 00 TEST UNIT READY */
338130f4520SKenneth D. Merry {ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH |
339130f4520SKenneth D. Merry 			  CTL_FLAG_DATA_NONE |
340130f4520SKenneth D. Merry 			  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
3411b08cb4eSAlexander Motin  CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}},
342130f4520SKenneth D. Merry 
343130f4520SKenneth D. Merry /* 01 REWIND */
344130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
345130f4520SKenneth D. Merry 
346130f4520SKenneth D. Merry /* 02 */
347130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
348130f4520SKenneth D. Merry 
349130f4520SKenneth D. Merry /* 03 REQUEST SENSE */
350130f4520SKenneth D. Merry {ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN |
351130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_ALL_LUNS |
352130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_RESV |
353130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_NO_SENSE |
354130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_STOPPED |
355130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
356130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_OFFLINE |
357130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_SECONDARY |
358130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
3591b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}},
360130f4520SKenneth D. Merry 
361130f4520SKenneth D. Merry /* 04 FORMAT UNIT */
362130f4520SKenneth D. Merry {ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN |
363130f4520SKenneth D. Merry 				CTL_CMD_FLAG_OK_ON_INOPERABLE |
364130f4520SKenneth D. Merry 				CTL_FLAG_DATA_OUT,
3651b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}},
366130f4520SKenneth D. Merry 
367130f4520SKenneth D. Merry /* 05 READ BLOCK LIMITS */
368130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
369130f4520SKenneth D. Merry 
370130f4520SKenneth D. Merry /* 06 */
371130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
372130f4520SKenneth D. Merry 
373130f4520SKenneth D. Merry /* 07 REASSIGN BLOCKS */
374130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
375130f4520SKenneth D. Merry 
376130f4520SKenneth D. Merry /* 08 READ(6) */
377130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
378130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
379130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
3801b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
381130f4520SKenneth D. Merry 
382130f4520SKenneth D. Merry /* 09 */
383130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
384130f4520SKenneth D. Merry 
385130f4520SKenneth D. Merry /* 0A WRITE(6) */
386130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
387130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_OUT,
3881b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}},
389130f4520SKenneth D. Merry 
390130f4520SKenneth D. Merry /* 0B SEEK(6) */
391130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
392130f4520SKenneth D. Merry 
393130f4520SKenneth D. Merry /* 0C */
394130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
395130f4520SKenneth D. Merry 
396130f4520SKenneth D. Merry /* 0D */
397130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
398130f4520SKenneth D. Merry 
399130f4520SKenneth D. Merry /* 0E */
400130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
401130f4520SKenneth D. Merry 
402130f4520SKenneth D. Merry /* 0F READ REVERSE(6) */
403130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
404130f4520SKenneth D. Merry 
405130f4520SKenneth D. Merry /* 10 WRITE FILEMARKS(6) */
406130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
407130f4520SKenneth D. Merry 
408130f4520SKenneth D. Merry /* 11 SPACE(6) */
409130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
410130f4520SKenneth D. Merry 
411130f4520SKenneth D. Merry /* 12 INQUIRY */
412130f4520SKenneth D. Merry {ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
413130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_ALLOW_ON_RESV |
414130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_NO_SENSE |
415130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_STOPPED |
416130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_INOPERABLE |
417130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_OFFLINE |
418130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_OK_ON_SECONDARY |
419130f4520SKenneth D. Merry 			      CTL_FLAG_DATA_IN |
420130f4520SKenneth D. Merry 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
421561764b1SAlexander Motin  CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}},
422130f4520SKenneth D. Merry 
423130f4520SKenneth D. Merry /* 13 */
424130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
425130f4520SKenneth D. Merry 
426130f4520SKenneth D. Merry /* 14 RECOVER BUFFERED DATA */
427130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
428130f4520SKenneth D. Merry 
429130f4520SKenneth D. Merry /* 15 MODE SELECT(6) */
430130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
431130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_STOPPED |
432130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
433130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_SECONDARY |
434130f4520SKenneth D. Merry 				     CTL_FLAG_DATA_OUT,
4351b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}},
436130f4520SKenneth D. Merry 
437130f4520SKenneth D. Merry /* 16 RESERVE(6) */
438130f4520SKenneth D. Merry {ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV |
439130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_BOTH |
440130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
441130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
442130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
443130f4520SKenneth D. Merry 				    CTL_FLAG_DATA_OUT,
4441b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
445130f4520SKenneth D. Merry 
446130f4520SKenneth D. Merry /* 17 RELEASE(6) */
447130f4520SKenneth D. Merry {ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV |
448130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_BOTH |
449130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
450130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
451130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_SECONDARY |
452130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
4531b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}},
454130f4520SKenneth D. Merry 
455130f4520SKenneth D. Merry /* 18 COPY */
456130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
457130f4520SKenneth D. Merry 
458130f4520SKenneth D. Merry /* 19 ERASE(6) */
459130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
460130f4520SKenneth D. Merry 
461130f4520SKenneth D. Merry /* 1A MODE SENSE(6) */
462130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
463130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
464130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
465130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
466f82388fdSAlexander Motin 				    CTL_FLAG_DATA_IN |
467f82388fdSAlexander Motin 				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
4681b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0, 0xff, 0x07}},
469130f4520SKenneth D. Merry 
470130f4520SKenneth D. Merry /* 1B START STOP UNIT */
471130f4520SKenneth D. Merry {ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
472130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
473130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
474130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_OFFLINE |
475130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE |
476130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
4771b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}},
478130f4520SKenneth D. Merry 
479130f4520SKenneth D. Merry /* 1C RECEIVE DIAGNOSTIC RESULTS */
480130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
481130f4520SKenneth D. Merry 
482130f4520SKenneth D. Merry /* 1D SEND DIAGNOSTIC */
483130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
484130f4520SKenneth D. Merry 
485130f4520SKenneth D. Merry /* 1E PREVENT ALLOW MEDIUM REMOVAL */
486130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
487130f4520SKenneth D. Merry 
488130f4520SKenneth D. Merry /* 1F */
489130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
490130f4520SKenneth D. Merry 
491130f4520SKenneth D. Merry /* 20 */
492130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
493130f4520SKenneth D. Merry 
494130f4520SKenneth D. Merry /* 21 */
495130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
496130f4520SKenneth D. Merry 
497130f4520SKenneth D. Merry /* 22 */
498130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
499130f4520SKenneth D. Merry 
500130f4520SKenneth D. Merry /* 23 */
501130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
502130f4520SKenneth D. Merry 
503130f4520SKenneth D. Merry /* 24 SET WINDOW */
504130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
505130f4520SKenneth D. Merry 
506130f4520SKenneth D. Merry /* 25 READ CAPACITY(10) */
507130f4520SKenneth D. Merry {ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN|
508130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_STOPPED |
509130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_INOPERABLE |
510130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_OK_ON_SECONDARY |
511130f4520SKenneth D. Merry 				       CTL_FLAG_DATA_IN |
512130f4520SKenneth D. Merry 				       CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
5131b08cb4eSAlexander Motin  CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}},
514130f4520SKenneth D. Merry 
515130f4520SKenneth D. Merry /* 26 */
516130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
517130f4520SKenneth D. Merry 
518130f4520SKenneth D. Merry /* 27 */
519130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
520130f4520SKenneth D. Merry 
521130f4520SKenneth D. Merry /* 28 READ(10) */
522130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
523130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
524130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
5251b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
5261b08cb4eSAlexander Motin  10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
527130f4520SKenneth D. Merry 
528130f4520SKenneth D. Merry /* 29 READ GENERATION */
529130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
530130f4520SKenneth D. Merry 
531130f4520SKenneth D. Merry /* 2A WRITE(10) */
532130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
5331b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
5341b08cb4eSAlexander Motin  10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
535130f4520SKenneth D. Merry 
536130f4520SKenneth D. Merry /* 2B SEEK(10) */
537130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
538130f4520SKenneth D. Merry 
539130f4520SKenneth D. Merry /* 2C ERASE(10) */
540130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
541130f4520SKenneth D. Merry 
542130f4520SKenneth D. Merry /* 2D READ UPDATED BLOCK */
543130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
544130f4520SKenneth D. Merry 
545130f4520SKenneth D. Merry /* 2E WRITE AND VERIFY(10) */
546130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
5471b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
5481b08cb4eSAlexander Motin  10, {0x10, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
549130f4520SKenneth D. Merry 
550130f4520SKenneth D. Merry /* 2F VERIFY(10) */
55111b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
55211b569f7SAlexander Motin 			      CTL_FLAG_DATA_OUT |
55311b569f7SAlexander Motin 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
5541b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
5551b08cb4eSAlexander Motin  10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
556130f4520SKenneth D. Merry 
557130f4520SKenneth D. Merry /* 30 SEARCH DATA HIGH(10) */
558130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
559130f4520SKenneth D. Merry 
560130f4520SKenneth D. Merry /* 31 SEARCH DATA EQUAL(10) */
561130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
562130f4520SKenneth D. Merry 
563130f4520SKenneth D. Merry /* 32 SEARCH DATA LOW(10) */
564130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
565130f4520SKenneth D. Merry 
566130f4520SKenneth D. Merry /* 33 SET LIMITS(10) */
567130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
568130f4520SKenneth D. Merry 
569130f4520SKenneth D. Merry /* 34 PRE-FETCH(10) */
570130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
571130f4520SKenneth D. Merry 
572130f4520SKenneth D. Merry /* 35 SYNCHRONIZE CACHE(10) */
573130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
574130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
5751b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
5761b08cb4eSAlexander Motin  10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
577130f4520SKenneth D. Merry 
578130f4520SKenneth D. Merry /* 36 LOCK UNLOCK CACHE(10) */
579130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
580130f4520SKenneth D. Merry 
581130f4520SKenneth D. Merry /* 37 READ DEFECT DATA(10) */
582130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
583130f4520SKenneth D. Merry 
584130f4520SKenneth D. Merry /* 38 MEDIUM SCAN */
585130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
586130f4520SKenneth D. Merry 
587130f4520SKenneth D. Merry /* 39 COMPARE */
588130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
589130f4520SKenneth D. Merry 
590130f4520SKenneth D. Merry /* 3A COPY AND VERIFY */
591130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
592130f4520SKenneth D. Merry 
593130f4520SKenneth D. Merry /* 3B WRITE BUFFER */
59485165a3fSAlexander Motin {ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
595130f4520SKenneth D. Merry 				      CTL_FLAG_DATA_OUT,
5961b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
5971b08cb4eSAlexander Motin  10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
598130f4520SKenneth D. Merry 
599130f4520SKenneth D. Merry /* 3C READ BUFFER */
60085165a3fSAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
60185165a3fSAlexander Motin 				     CTL_FLAG_DATA_IN |
60285165a3fSAlexander Motin 				     CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
6031b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
6041b08cb4eSAlexander Motin  10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}},
605130f4520SKenneth D. Merry 
606130f4520SKenneth D. Merry /* 3D UPDATE BLOCK */
607130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
608130f4520SKenneth D. Merry 
609130f4520SKenneth D. Merry /* 3E READ LONG */
610130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
611130f4520SKenneth D. Merry 
612130f4520SKenneth D. Merry /* 3F WRITE LONG */
613130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
614130f4520SKenneth D. Merry 
615130f4520SKenneth D. Merry /* 40 CHANGE DEFINITION */
616130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
617130f4520SKenneth D. Merry 
618130f4520SKenneth D. Merry /* 41 WRITE SAME(10) */
619ee7f31c0SAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
620ee7f31c0SAlexander Motin 				   CTL_FLAG_DATA_OUT,
6211b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
6221b08cb4eSAlexander Motin  10, {0x0a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}},
623130f4520SKenneth D. Merry 
624ee7f31c0SAlexander Motin /* 42 READ SUB-CHANNEL / UNMAP */
625004008d6SAlexander Motin {ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT,
6261b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE,
6271b08cb4eSAlexander Motin  10, {0, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}},
628130f4520SKenneth D. Merry 
629130f4520SKenneth D. Merry /* 43 READ TOC/PMA/ATIP */
630130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
631130f4520SKenneth D. Merry 
632130f4520SKenneth D. Merry /* 44 REPORT DENSITY SUPPORT */
633130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
634130f4520SKenneth D. Merry 
635130f4520SKenneth D. Merry /* 45 PLAY AUDIO(10) */
636130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
637130f4520SKenneth D. Merry 
638130f4520SKenneth D. Merry /* 46 GET CONFIGURATION */
639130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
640130f4520SKenneth D. Merry 
641130f4520SKenneth D. Merry /* 47 PLAY AUDIO MSF */
642130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
643130f4520SKenneth D. Merry 
644130f4520SKenneth D. Merry /* 48 PLAY AUDIO TRACK INDEX */
645130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
646130f4520SKenneth D. Merry 
647130f4520SKenneth D. Merry /* 49 PLAY TRACK RELATIVE(10) */
648130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
649130f4520SKenneth D. Merry 
650130f4520SKenneth D. Merry /* 4A GET EVENT STATUS NOTIFICATION */
651130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
652130f4520SKenneth D. Merry 
653130f4520SKenneth D. Merry /* 4B PAUSE/RESUME */
654130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
655130f4520SKenneth D. Merry 
656130f4520SKenneth D. Merry /* 4C LOG SELECT */
657130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
658130f4520SKenneth D. Merry 
659130f4520SKenneth D. Merry /* 4D LOG SENSE */
660130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
661130f4520SKenneth D. Merry 
662130f4520SKenneth D. Merry /* 4E STOP PLAY/SCAN */
663130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
664130f4520SKenneth D. Merry 
665130f4520SKenneth D. Merry /* 4F */
666130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
667130f4520SKenneth D. Merry 
668130f4520SKenneth D. Merry /* 50 XDWRITE(10) */
669130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
670130f4520SKenneth D. Merry 
671130f4520SKenneth D. Merry /* 51 XPWRITE(10) */
672130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
673130f4520SKenneth D. Merry 
674130f4520SKenneth D. Merry /* 52 XDREAD(10) */
675130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
676130f4520SKenneth D. Merry 
677130f4520SKenneth D. Merry /* 53 RESERVE TRACK */
678130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
679130f4520SKenneth D. Merry 
680130f4520SKenneth D. Merry /* 54 SEND OPC INFORMATION */
681130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
682130f4520SKenneth D. Merry 
683130f4520SKenneth D. Merry /* 55 MODE SELECT(10) */
684130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH |
685130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_STOPPED |
686130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_INOPERABLE |
687130f4520SKenneth D. Merry 				     CTL_CMD_FLAG_OK_ON_SECONDARY |
688130f4520SKenneth D. Merry 				     CTL_FLAG_DATA_OUT,
6891b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} },
690130f4520SKenneth D. Merry 
691130f4520SKenneth D. Merry /* 56 RESERVE(10) */
692130f4520SKenneth D. Merry {ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV |
693130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_BOTH |
694130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
695130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
696130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
697130f4520SKenneth D. Merry 				    CTL_FLAG_DATA_OUT,
6981b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
699130f4520SKenneth D. Merry 
700130f4520SKenneth D. Merry /* 57 RELEASE(10) */
701130f4520SKenneth D. Merry {ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV |
702130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_BOTH |
703130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_STOPPED |
704130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_INOPERABLE |
705130f4520SKenneth D. Merry 				   CTL_CMD_FLAG_OK_ON_SECONDARY |
706130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_OUT,
7071b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} },
708130f4520SKenneth D. Merry 
709130f4520SKenneth D. Merry /* 58 REPAIR TRACK */
710130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
711130f4520SKenneth D. Merry 
712130f4520SKenneth D. Merry /* 59 READ MASTER CUE */
713130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
714130f4520SKenneth D. Merry 
715130f4520SKenneth D. Merry /* 5A MODE SENSE(10) */
716130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH |
717130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_STOPPED |
718130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_INOPERABLE |
719130f4520SKenneth D. Merry 				    CTL_CMD_FLAG_OK_ON_SECONDARY |
720f82388fdSAlexander Motin 				    CTL_FLAG_DATA_IN |
721f82388fdSAlexander Motin 				    CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
7221b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0x07} },
723130f4520SKenneth D. Merry 
724130f4520SKenneth D. Merry /* 5B CLOSE TRACK/SESSION */
725130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
726130f4520SKenneth D. Merry 
727130f4520SKenneth D. Merry /* 5C READ BUFFER CAPACITY */
728130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
729130f4520SKenneth D. Merry 
730130f4520SKenneth D. Merry /* 5D SEND CUE SHEET */
731130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
732130f4520SKenneth D. Merry 
733130f4520SKenneth D. Merry /* 5E PERSISTENT RESERVE IN */
7341b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
735130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
736130f4520SKenneth D. Merry 
737130f4520SKenneth D. Merry /* 5F PERSISTENT RESERVE OUT */
7381b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
739130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
740130f4520SKenneth D. Merry 
741130f4520SKenneth D. Merry /* 60 */
742130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
743130f4520SKenneth D. Merry 
744130f4520SKenneth D. Merry /* 61 */
745130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
746130f4520SKenneth D. Merry 
747130f4520SKenneth D. Merry /* 62 */
748130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
749130f4520SKenneth D. Merry 
750130f4520SKenneth D. Merry /* 63 */
751130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
752130f4520SKenneth D. Merry 
753130f4520SKenneth D. Merry /* 64 */
754130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
755130f4520SKenneth D. Merry 
756130f4520SKenneth D. Merry /* 65 */
757130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
758130f4520SKenneth D. Merry 
759130f4520SKenneth D. Merry /* 66 */
760130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
761130f4520SKenneth D. Merry 
762130f4520SKenneth D. Merry /* 67 */
763130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
764130f4520SKenneth D. Merry 
765130f4520SKenneth D. Merry /* 68 */
766130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
767130f4520SKenneth D. Merry 
768130f4520SKenneth D. Merry /* 69 */
769130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
770130f4520SKenneth D. Merry 
771130f4520SKenneth D. Merry /* 6A */
772130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
773130f4520SKenneth D. Merry 
774130f4520SKenneth D. Merry /* 6B */
775130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
776130f4520SKenneth D. Merry 
777130f4520SKenneth D. Merry /* 6C */
778130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
779130f4520SKenneth D. Merry 
780130f4520SKenneth D. Merry /* 6D */
781130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
782130f4520SKenneth D. Merry 
783130f4520SKenneth D. Merry /* 6E */
784130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
785130f4520SKenneth D. Merry 
786130f4520SKenneth D. Merry /* 6F */
787130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
788130f4520SKenneth D. Merry 
789130f4520SKenneth D. Merry /* 70 */
790130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
791130f4520SKenneth D. Merry 
792130f4520SKenneth D. Merry /* 71 */
793130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
794130f4520SKenneth D. Merry 
795130f4520SKenneth D. Merry /* 72 */
796130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
797130f4520SKenneth D. Merry 
798130f4520SKenneth D. Merry /* 73 */
799130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
800130f4520SKenneth D. Merry 
801130f4520SKenneth D. Merry /* 74 */
802130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
803130f4520SKenneth D. Merry 
804130f4520SKenneth D. Merry /* 75 */
805130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
806130f4520SKenneth D. Merry 
807130f4520SKenneth D. Merry /* 76 */
808130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
809130f4520SKenneth D. Merry 
810130f4520SKenneth D. Merry /* 77 */
811130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
812130f4520SKenneth D. Merry 
813130f4520SKenneth D. Merry /* 78 */
814130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
815130f4520SKenneth D. Merry 
816130f4520SKenneth D. Merry /* 79 */
817130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
818130f4520SKenneth D. Merry 
819130f4520SKenneth D. Merry /* 7A */
820130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
821130f4520SKenneth D. Merry 
822130f4520SKenneth D. Merry /* 7B */
823130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
824130f4520SKenneth D. Merry 
825130f4520SKenneth D. Merry /* 7C */
826130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
827130f4520SKenneth D. Merry 
828130f4520SKenneth D. Merry /* 7D */
829130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
830130f4520SKenneth D. Merry 
831130f4520SKenneth D. Merry /* 7E */
832130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
833130f4520SKenneth D. Merry 
834130f4520SKenneth D. Merry /* 7F */
835130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
836130f4520SKenneth D. Merry 
837130f4520SKenneth D. Merry /* 80 XDWRITE EXTENDED(16) */
838130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
839130f4520SKenneth D. Merry 
840130f4520SKenneth D. Merry /* 81 REBUILD(16) */
841130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
842130f4520SKenneth D. Merry 
843130f4520SKenneth D. Merry /* 82 REGENERATE(16) */
844130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
845130f4520SKenneth D. Merry 
846130f4520SKenneth D. Merry /* 83 EXTENDED COPY */
847130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
848130f4520SKenneth D. Merry 
849130f4520SKenneth D. Merry /* 84 RECEIVE COPY RESULTS */
850130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
851130f4520SKenneth D. Merry 
852130f4520SKenneth D. Merry /* 85 */
853130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
854130f4520SKenneth D. Merry 
855130f4520SKenneth D. Merry /* 86 ACCESS CONTROL IN */
856130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
857130f4520SKenneth D. Merry 
858130f4520SKenneth D. Merry /* 87 ACCESS CONTROL OUT */
859130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
860130f4520SKenneth D. Merry 
861130f4520SKenneth D. Merry /* 88 READ(16) */
862130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
863130f4520SKenneth D. Merry                                   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
8641b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
8651b08cb4eSAlexander Motin  16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
8661b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
867130f4520SKenneth D. Merry 
86811b569f7SAlexander Motin /* 89 COMPARE AND WRITE */
86911b569f7SAlexander Motin {ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
8701b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
8711b08cb4eSAlexander Motin  16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
8721b08cb4eSAlexander Motin       0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}},
873130f4520SKenneth D. Merry 
874130f4520SKenneth D. Merry /* 8A WRITE(16) */
875130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
8761b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
8771b08cb4eSAlexander Motin  16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
8781b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
879130f4520SKenneth D. Merry 
880130f4520SKenneth D. Merry /* 8B */
881130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
882130f4520SKenneth D. Merry 
883130f4520SKenneth D. Merry /* 8C READ ATTRIBUTE */
884130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
885130f4520SKenneth D. Merry 
886130f4520SKenneth D. Merry /* 8D WRITE ATTRIBUTE */
887130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
888130f4520SKenneth D. Merry 
889130f4520SKenneth D. Merry /* 8E WRITE AND VERIFY(16) */
890130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
8911b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
8921b08cb4eSAlexander Motin  16, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
8931b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
894130f4520SKenneth D. Merry 
895130f4520SKenneth D. Merry /* 8F VERIFY(16) */
89611b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
89711b569f7SAlexander Motin 			      CTL_FLAG_DATA_OUT |
89811b569f7SAlexander Motin 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
8991b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
9001b08cb4eSAlexander Motin  16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
9011b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
902130f4520SKenneth D. Merry 
903130f4520SKenneth D. Merry /* 90 PRE-FETCH(16) */
904130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
905130f4520SKenneth D. Merry 
906130f4520SKenneth D. Merry /* 91 SYNCHRONIZE CACHE(16) */
907130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN |
908130f4520SKenneth D. Merry 				   CTL_FLAG_DATA_NONE,
9091b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
9101b08cb4eSAlexander Motin  16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
9111b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
912130f4520SKenneth D. Merry 
913130f4520SKenneth D. Merry /* 92 LOCK UNLOCK CACHE(16) */
914130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
915130f4520SKenneth D. Merry 
916130f4520SKenneth D. Merry /* 93 WRITE SAME(16) */
917ee7f31c0SAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN |
918ee7f31c0SAlexander Motin 				   CTL_FLAG_DATA_OUT,
9191b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
9201b08cb4eSAlexander Motin  16, {0x0a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
9211b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
922130f4520SKenneth D. Merry 
923130f4520SKenneth D. Merry /* 94 */
924130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
925130f4520SKenneth D. Merry 
926130f4520SKenneth D. Merry /* 95 */
927130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
928130f4520SKenneth D. Merry 
929130f4520SKenneth D. Merry /* 96 */
930130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
931130f4520SKenneth D. Merry 
932130f4520SKenneth D. Merry /* 97 */
933130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
934130f4520SKenneth D. Merry 
935130f4520SKenneth D. Merry /* 98 */
936130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
937130f4520SKenneth D. Merry 
938130f4520SKenneth D. Merry /* 99 */
939130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
940130f4520SKenneth D. Merry 
941130f4520SKenneth D. Merry /* 9A */
942130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
943130f4520SKenneth D. Merry 
944130f4520SKenneth D. Merry /* 9B */
945130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
946130f4520SKenneth D. Merry 
947130f4520SKenneth D. Merry /* 9C */
948130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
949130f4520SKenneth D. Merry 
950130f4520SKenneth D. Merry /* 9D */
951130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
952130f4520SKenneth D. Merry 
953130f4520SKenneth D. Merry /* 9E SERVICE ACTION IN(16) */
9541b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
9551b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE},
956130f4520SKenneth D. Merry 
957130f4520SKenneth D. Merry /* 9F SERVICE ACTION OUT(16) */
958130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
959130f4520SKenneth D. Merry 
960130f4520SKenneth D. Merry /* A0 REPORT LUNS */
961130f4520SKenneth D. Merry {ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS |
962130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_RESV |
963130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_NO_SENSE |
964130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_STOPPED |
965130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_INOPERABLE |
966130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_OFFLINE |
967130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_OK_ON_SECONDARY |
968130f4520SKenneth D. Merry 				  CTL_FLAG_DATA_IN |
969130f4520SKenneth D. Merry 				  CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
9701b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
9711b08cb4eSAlexander Motin  12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
972130f4520SKenneth D. Merry 
973130f4520SKenneth D. Merry /* A1 BLANK */
974130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
975130f4520SKenneth D. Merry 
976130f4520SKenneth D. Merry /* A2 SEND EVENT */
977130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
978130f4520SKenneth D. Merry 
9791b08cb4eSAlexander Motin /* A3 MAINTENANCE IN */
9801b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5,
981130f4520SKenneth D. Merry  CTL_LUN_PAT_NONE},
982130f4520SKenneth D. Merry 
9831b08cb4eSAlexander Motin /* A4 MAINTENANCE OUT */
984130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
985130f4520SKenneth D. Merry 
986130f4520SKenneth D. Merry /* A5 MOVE MEDIUM */
987130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
988130f4520SKenneth D. Merry 
989130f4520SKenneth D. Merry /* A6 EXCHANGE MEDIUM */
990130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
991130f4520SKenneth D. Merry 
992130f4520SKenneth D. Merry /* A7 MOVE MEDIUM ATTACHED */
993130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
994130f4520SKenneth D. Merry 
995130f4520SKenneth D. Merry /* A8 READ(12) */
996130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN |
997130f4520SKenneth D. Merry                                   CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
9981b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
9991b08cb4eSAlexander Motin  12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1000130f4520SKenneth D. Merry 
1001130f4520SKenneth D. Merry /* A9 PLAY TRACK RELATIVE(12) */
1002130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1003130f4520SKenneth D. Merry 
1004130f4520SKenneth D. Merry /* AA WRITE(12) */
1005130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
10061b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
10071b08cb4eSAlexander Motin  12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1008130f4520SKenneth D. Merry 
1009130f4520SKenneth D. Merry /* AB SERVICE ACTION IN(12) */
1010130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1011130f4520SKenneth D. Merry 
1012130f4520SKenneth D. Merry /* AC ERASE(12) */
1013130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1014130f4520SKenneth D. Merry 
1015130f4520SKenneth D. Merry /* AD READ DVD STRUCTURE */
1016130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1017130f4520SKenneth D. Merry 
1018130f4520SKenneth D. Merry /* AE WRITE AND VERIFY(12) */
1019130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT,
10201b08cb4eSAlexander Motin  CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE,
10211b08cb4eSAlexander Motin  12, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1022130f4520SKenneth D. Merry 
1023130f4520SKenneth D. Merry /* AF VERIFY(12) */
102411b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN |
102511b569f7SAlexander Motin 			      CTL_FLAG_DATA_OUT |
102611b569f7SAlexander Motin 			      CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
10271b08cb4eSAlexander Motin  CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE,
10281b08cb4eSAlexander Motin  12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}},
1029130f4520SKenneth D. Merry 
1030130f4520SKenneth D. Merry /* B0 SEARCH DATA HIGH(12) */
1031130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1032130f4520SKenneth D. Merry 
1033130f4520SKenneth D. Merry /* B1 SEARCH DATA EQUAL(12) */
1034130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1035130f4520SKenneth D. Merry 
1036130f4520SKenneth D. Merry /* B2 SEARCH DATA LOW(12) */
1037130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1038130f4520SKenneth D. Merry 
1039130f4520SKenneth D. Merry /* B3 SET LIMITS(12) */
1040130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1041130f4520SKenneth D. Merry 
1042130f4520SKenneth D. Merry /* B4 READ ELEMENT STATUS ATTACHED */
1043130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1044130f4520SKenneth D. Merry 
1045130f4520SKenneth D. Merry /* B5 REQUEST VOLUME ELEMENT ADDRESS */
1046130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1047130f4520SKenneth D. Merry 
1048130f4520SKenneth D. Merry /* B6 SEND VOLUME TAG */
1049130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1050130f4520SKenneth D. Merry 
1051130f4520SKenneth D. Merry /* B7 READ DEFECT DATA(12) */
1052130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1053130f4520SKenneth D. Merry 
1054130f4520SKenneth D. Merry /* B8 READ ELEMENT STATUS */
1055130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1056130f4520SKenneth D. Merry 
1057130f4520SKenneth D. Merry /* B9 READ CD MSF */
1058130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1059130f4520SKenneth D. Merry 
10601b08cb4eSAlexander Motin /* BA REDUNDANCY GROUP IN */
1061130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1062130f4520SKenneth D. Merry 
10631b08cb4eSAlexander Motin /* BB REDUNDANCY GROUP OUT */
1064130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1065130f4520SKenneth D. Merry 
10661b08cb4eSAlexander Motin /* BC SPARE IN */
1067130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1068130f4520SKenneth D. Merry 
10691b08cb4eSAlexander Motin /* BD SPARE OUT */
1070130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1071130f4520SKenneth D. Merry 
10721b08cb4eSAlexander Motin /* BE VOLUME SET IN */
1073130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1074130f4520SKenneth D. Merry 
10751b08cb4eSAlexander Motin /* BF VOLUME SET OUT */
1076130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1077130f4520SKenneth D. Merry 
1078130f4520SKenneth D. Merry /* C0 - ISC_SEND_MSG_SHORT */
1079130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1080130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE,
10811b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
10821b08cb4eSAlexander Motin  16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10831b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1084130f4520SKenneth D. Merry 
1085130f4520SKenneth D. Merry /* C1 - ISC_SEND_MSG */
1086130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1087130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
10881b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
10891b08cb4eSAlexander Motin  16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10901b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1091130f4520SKenneth D. Merry 
1092130f4520SKenneth D. Merry /* C2 - ISC_WRITE */
1093130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1094130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT,
10951b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
10961b08cb4eSAlexander Motin  16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10971b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1098130f4520SKenneth D. Merry 
1099130f4520SKenneth D. Merry /* C3 - ISC_READ */
1100130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE},
1101130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN,
11021b08cb4eSAlexander Motin  CTL_LUN_PAT_NONE,
11031b08cb4eSAlexander Motin  16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
11041b08cb4eSAlexander Motin       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
1105130f4520SKenneth D. Merry 
1106130f4520SKenneth D. Merry /* C4 */
1107130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1108130f4520SKenneth D. Merry 
1109130f4520SKenneth D. Merry /* C5 */
1110130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1111130f4520SKenneth D. Merry 
1112130f4520SKenneth D. Merry /* C6 */
1113130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1114130f4520SKenneth D. Merry 
1115130f4520SKenneth D. Merry /* C7 */
1116130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1117130f4520SKenneth D. Merry 
1118130f4520SKenneth D. Merry /* C8 */
1119130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1120130f4520SKenneth D. Merry 
1121130f4520SKenneth D. Merry /* C9 */
1122130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1123130f4520SKenneth D. Merry 
1124130f4520SKenneth D. Merry /* CA */
1125130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1126130f4520SKenneth D. Merry 
1127130f4520SKenneth D. Merry /* CB */
1128130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1129130f4520SKenneth D. Merry 
1130130f4520SKenneth D. Merry /* CC */
1131130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1132130f4520SKenneth D. Merry 
1133130f4520SKenneth D. Merry /* CD */
1134130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1135130f4520SKenneth D. Merry 
1136130f4520SKenneth D. Merry /* CE */
1137130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1138130f4520SKenneth D. Merry 
1139130f4520SKenneth D. Merry /* CF */
1140130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1141130f4520SKenneth D. Merry 
1142130f4520SKenneth D. Merry /* D0 */
1143130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1144130f4520SKenneth D. Merry 
1145130f4520SKenneth D. Merry /* D1 */
1146130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1147130f4520SKenneth D. Merry 
1148130f4520SKenneth D. Merry /* D2 */
1149130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1150130f4520SKenneth D. Merry 
1151130f4520SKenneth D. Merry /* D3 */
1152130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1153130f4520SKenneth D. Merry 
1154130f4520SKenneth D. Merry /* D4 */
1155130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1156130f4520SKenneth D. Merry 
1157130f4520SKenneth D. Merry /* D5 */
1158130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1159130f4520SKenneth D. Merry 
1160130f4520SKenneth D. Merry /* D6 */
1161130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1162130f4520SKenneth D. Merry 
1163130f4520SKenneth D. Merry /* D7 */
1164130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1165130f4520SKenneth D. Merry 
1166130f4520SKenneth D. Merry /* D8 */
1167130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1168130f4520SKenneth D. Merry 
1169130f4520SKenneth D. Merry /* D9 */
1170130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1171130f4520SKenneth D. Merry 
1172130f4520SKenneth D. Merry /* DA */
1173130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1174130f4520SKenneth D. Merry 
1175130f4520SKenneth D. Merry /* DB */
1176130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1177130f4520SKenneth D. Merry 
1178130f4520SKenneth D. Merry /* DC */
1179130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1180130f4520SKenneth D. Merry 
1181130f4520SKenneth D. Merry /* DD */
1182130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1183130f4520SKenneth D. Merry 
1184130f4520SKenneth D. Merry /* DE */
1185130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1186130f4520SKenneth D. Merry 
1187130f4520SKenneth D. Merry /* DF */
1188130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1189130f4520SKenneth D. Merry 
1190130f4520SKenneth D. Merry /* E0 */
1191130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1192130f4520SKenneth D. Merry 
1193130f4520SKenneth D. Merry /* E1 */
1194130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1195130f4520SKenneth D. Merry 
1196130f4520SKenneth D. Merry /* E2 */
1197130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1198130f4520SKenneth D. Merry 
1199130f4520SKenneth D. Merry /* E3 */
1200130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1201130f4520SKenneth D. Merry 
1202130f4520SKenneth D. Merry /* E4 */
1203130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1204130f4520SKenneth D. Merry 
1205130f4520SKenneth D. Merry /* E5 */
1206130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1207130f4520SKenneth D. Merry 
1208130f4520SKenneth D. Merry /* E6 */
1209130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1210130f4520SKenneth D. Merry 
1211130f4520SKenneth D. Merry /* E7 */
1212130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1213130f4520SKenneth D. Merry 
1214130f4520SKenneth D. Merry /* E8 */
1215130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1216130f4520SKenneth D. Merry 
1217130f4520SKenneth D. Merry /* E9 */
1218130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1219130f4520SKenneth D. Merry 
1220130f4520SKenneth D. Merry /* EA */
1221130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1222130f4520SKenneth D. Merry 
1223130f4520SKenneth D. Merry /* EB */
1224130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1225130f4520SKenneth D. Merry 
1226130f4520SKenneth D. Merry /* EC */
1227130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1228130f4520SKenneth D. Merry 
1229130f4520SKenneth D. Merry /* ED */
1230130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1231130f4520SKenneth D. Merry 
1232130f4520SKenneth D. Merry /* EE */
1233130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1234130f4520SKenneth D. Merry 
1235130f4520SKenneth D. Merry /* EF */
1236130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1237130f4520SKenneth D. Merry 
1238130f4520SKenneth D. Merry /* F0 */
1239130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1240130f4520SKenneth D. Merry 
1241130f4520SKenneth D. Merry /* F1 */
1242130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1243130f4520SKenneth D. Merry 
1244130f4520SKenneth D. Merry /* F2 */
1245130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1246130f4520SKenneth D. Merry 
1247130f4520SKenneth D. Merry /* F3 */
1248130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1249130f4520SKenneth D. Merry 
1250130f4520SKenneth D. Merry /* F4 */
1251130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1252130f4520SKenneth D. Merry 
1253130f4520SKenneth D. Merry /* F5 */
1254130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1255130f4520SKenneth D. Merry 
1256130f4520SKenneth D. Merry /* F6 */
1257130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1258130f4520SKenneth D. Merry 
1259130f4520SKenneth D. Merry /* F7 */
1260130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1261130f4520SKenneth D. Merry 
1262130f4520SKenneth D. Merry /* F8 */
1263130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1264130f4520SKenneth D. Merry 
1265130f4520SKenneth D. Merry /* F9 */
1266130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1267130f4520SKenneth D. Merry 
1268130f4520SKenneth D. Merry /* FA */
1269130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1270130f4520SKenneth D. Merry 
1271130f4520SKenneth D. Merry /* FB */
1272130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1273130f4520SKenneth D. Merry 
1274130f4520SKenneth D. Merry /* FC */
1275130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1276130f4520SKenneth D. Merry 
1277130f4520SKenneth D. Merry /* FD */
1278130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1279130f4520SKenneth D. Merry 
1280130f4520SKenneth D. Merry /* FE */
1281130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
1282130f4520SKenneth D. Merry 
1283130f4520SKenneth D. Merry /* FF */
1284130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}
1285130f4520SKenneth D. Merry 
1286130f4520SKenneth D. Merry };
1287