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