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_ioctl.h> 56130f4520SKenneth D. Merry #include <cam/ctl/ctl_ha.h> 57130f4520SKenneth D. Merry #include <cam/ctl/ctl_private.h> 58130f4520SKenneth D. Merry 59130f4520SKenneth D. Merry /* 601b08cb4eSAlexander Motin * Whenever support for a new command is added, it should be added to these 611b08cb4eSAlexander Motin * tables. 62130f4520SKenneth D. Merry */ 631b08cb4eSAlexander Motin 641b08cb4eSAlexander Motin /* 5E PERSISTENT RESERVE IN */ 651b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_5e[32] = 661b08cb4eSAlexander Motin { 671b08cb4eSAlexander Motin /* 00 READ KEYS */ 684d877c41SAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 691b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 701b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 711b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 727ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 731b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 741b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 751b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 761b08cb4eSAlexander Motin 10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 771b08cb4eSAlexander Motin 781b08cb4eSAlexander Motin /* 01 READ RESERVATION */ 794d877c41SAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 801b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 811b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 821b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 837ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 841b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 851b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 861b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 871b08cb4eSAlexander Motin 10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 881b08cb4eSAlexander Motin 891b08cb4eSAlexander Motin /* 02 REPORT CAPABILITIES */ 901b08cb4eSAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 911b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 921b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 931b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 947ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 951b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 961b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 971b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 981b08cb4eSAlexander Motin 10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 991b08cb4eSAlexander Motin 1001b08cb4eSAlexander Motin /* 03 READ FULL STATUS */ 1011e5a8b8fSAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 1021e5a8b8fSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 1031e5a8b8fSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 1041e5a8b8fSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 1057ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1061e5a8b8fSAlexander Motin CTL_FLAG_DATA_IN | 1071e5a8b8fSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1081e5a8b8fSAlexander Motin CTL_LUN_PAT_NONE, 1091e5a8b8fSAlexander Motin 10, { 0x03, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 1101b08cb4eSAlexander Motin 1111b08cb4eSAlexander Motin /* 04-1f */ 1121b08cb4eSAlexander Motin }; 1131b08cb4eSAlexander Motin 1141b08cb4eSAlexander Motin /* 5F PERSISTENT RESERVE OUT */ 1151b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_5f[32] = 1161b08cb4eSAlexander Motin { 1171b08cb4eSAlexander Motin /* 00 REGISTER */ 1184d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1191b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 1201b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 1211b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 1227ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1231b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 1241b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1251b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 1261b08cb4eSAlexander Motin 10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 1271b08cb4eSAlexander Motin 1281b08cb4eSAlexander Motin /* 01 RESERVE */ 1294d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1301b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 1311b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 1321b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 1337ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1341b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 1351b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1361b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 137f44570f6SAlexander Motin 10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 1381b08cb4eSAlexander Motin 1391b08cb4eSAlexander Motin /* 02 RELEASE */ 1404d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1411b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 1421b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 1431b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 1447ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1451b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 1461b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1471b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 148f44570f6SAlexander Motin 10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 1491b08cb4eSAlexander Motin 1501b08cb4eSAlexander Motin /* 03 CLEAR */ 1514d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1521b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 1531b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 1541b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 1557ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1561b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 1571b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1581b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 1590f8de8afSAlexander Motin 10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 1601b08cb4eSAlexander Motin 1611b08cb4eSAlexander Motin /* 04 PREEMPT */ 1624d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1631b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 1641b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 1651b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 1667ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1671b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 1681b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1691b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 1700f8de8afSAlexander Motin 10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 1711b08cb4eSAlexander Motin 1721b08cb4eSAlexander Motin /* 05 PREEMPT AND ABORT */ 173fb5780deSAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 174fb5780deSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 175fb5780deSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 176fb5780deSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 1777ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 178fb5780deSAlexander Motin CTL_FLAG_DATA_OUT | 179fb5780deSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 180fb5780deSAlexander Motin CTL_LUN_PAT_NONE, 181fb5780deSAlexander Motin 10, { 0x05, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 1821b08cb4eSAlexander Motin 1831b08cb4eSAlexander Motin /* 06 REGISTER AND IGNORE EXISTING KEY */ 1844d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1851b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 1861b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 1871b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 1887ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1891b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 1901b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1911b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 1920f8de8afSAlexander Motin 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 1931b08cb4eSAlexander Motin 1941b08cb4eSAlexander Motin /* 07 REGISTER AND MOVE */ 1951b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1961b08cb4eSAlexander Motin 1971b08cb4eSAlexander Motin /* 08-1f */ 1981b08cb4eSAlexander Motin }; 1991b08cb4eSAlexander Motin 200984a2ea9SAlexander Motin /* 83 EXTENDED COPY */ 201984a2ea9SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_83[32] = 202984a2ea9SAlexander Motin { 203984a2ea9SAlexander Motin /* 00 EXTENDED COPY (LID1) */ 204984a2ea9SAlexander Motin {ctl_extended_copy_lid1, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 205984a2ea9SAlexander Motin CTL_FLAG_DATA_OUT, 206984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 207984a2ea9SAlexander Motin 16, { 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 208984a2ea9SAlexander Motin 209984a2ea9SAlexander Motin /* 01 EXTENDED COPY (LID4) */ 210984a2ea9SAlexander Motin {ctl_extended_copy_lid4, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 211984a2ea9SAlexander Motin CTL_FLAG_DATA_OUT, 212984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 213984a2ea9SAlexander Motin 16, { 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 214984a2ea9SAlexander Motin 215984a2ea9SAlexander Motin /* 02 */ 216984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 217984a2ea9SAlexander Motin 218984a2ea9SAlexander Motin /* 03 */ 219984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 220984a2ea9SAlexander Motin 221984a2ea9SAlexander Motin /* 04 */ 222984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 223984a2ea9SAlexander Motin 224984a2ea9SAlexander Motin /* 05 */ 225984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 226984a2ea9SAlexander Motin 227984a2ea9SAlexander Motin /* 06 */ 228984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 229984a2ea9SAlexander Motin 230984a2ea9SAlexander Motin /* 07 */ 231984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 232984a2ea9SAlexander Motin 233984a2ea9SAlexander Motin /* 08 */ 234984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 235984a2ea9SAlexander Motin 236984a2ea9SAlexander Motin /* 09 */ 237984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 238984a2ea9SAlexander Motin 239984a2ea9SAlexander Motin /* 0A */ 240984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 241984a2ea9SAlexander Motin 242984a2ea9SAlexander Motin /* 0B */ 243984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 244984a2ea9SAlexander Motin 245984a2ea9SAlexander Motin /* 0C */ 246984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 247984a2ea9SAlexander Motin 248984a2ea9SAlexander Motin /* 0D */ 249984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 250984a2ea9SAlexander Motin 251984a2ea9SAlexander Motin /* 0E */ 252984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 253984a2ea9SAlexander Motin 254984a2ea9SAlexander Motin /* 0F */ 255984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 256984a2ea9SAlexander Motin 257984a2ea9SAlexander Motin /* 10 POPULATE TOKEN */ 258*91be33dcSAlexander Motin {ctl_populate_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 259115dc0c7SAlexander Motin CTL_FLAG_DATA_OUT | 260115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 26125eee848SAlexander Motin CTL_LUN_PAT_NONE, 26225eee848SAlexander Motin 16, { 0x10, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 26325eee848SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 264984a2ea9SAlexander Motin 265984a2ea9SAlexander Motin /* 11 WRITE USING TOKEN */ 266*91be33dcSAlexander Motin {ctl_write_using_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 26725eee848SAlexander Motin CTL_FLAG_DATA_OUT, 26825eee848SAlexander Motin CTL_LUN_PAT_NONE, 26925eee848SAlexander Motin 16, { 0x11, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 27025eee848SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 271984a2ea9SAlexander Motin 272984a2ea9SAlexander Motin /* 12 */ 273984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 274984a2ea9SAlexander Motin 275984a2ea9SAlexander Motin /* 13 */ 276984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 277984a2ea9SAlexander Motin 278984a2ea9SAlexander Motin /* 14 */ 279984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 280984a2ea9SAlexander Motin 281984a2ea9SAlexander Motin /* 15 */ 282984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 283984a2ea9SAlexander Motin 284984a2ea9SAlexander Motin /* 16 */ 285984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 286984a2ea9SAlexander Motin 287984a2ea9SAlexander Motin /* 17 */ 288984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 289984a2ea9SAlexander Motin 290984a2ea9SAlexander Motin /* 18 */ 291984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 292984a2ea9SAlexander Motin 293984a2ea9SAlexander Motin /* 19 */ 294984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 295984a2ea9SAlexander Motin 296984a2ea9SAlexander Motin /* 1A */ 297984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 298984a2ea9SAlexander Motin 299984a2ea9SAlexander Motin /* 1B */ 300984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 301984a2ea9SAlexander Motin 302984a2ea9SAlexander Motin /* 1C COPY OPERATION ABORT */ 303984a2ea9SAlexander Motin {ctl_copy_operation_abort, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 304984a2ea9SAlexander Motin CTL_FLAG_DATA_NONE, 305984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 306984a2ea9SAlexander Motin 16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 307984a2ea9SAlexander Motin }; 308984a2ea9SAlexander Motin 309984a2ea9SAlexander Motin /* 84 RECEIVE COPY STATUS */ 310984a2ea9SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_84[32] = 311984a2ea9SAlexander Motin { 312984a2ea9SAlexander Motin /* 00 RECEIVE COPY STATUS (LID1) */ 313984a2ea9SAlexander Motin {ctl_receive_copy_status_lid1, CTL_SERIDX_RD_CAP, 314984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 315fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 316fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 317984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 318984a2ea9SAlexander Motin 16, {0x00, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 319984a2ea9SAlexander Motin 320984a2ea9SAlexander Motin /* 01 RECEIVE COPY DATA (LID1) */ 321984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 322984a2ea9SAlexander Motin 323984a2ea9SAlexander Motin /* 02 */ 324984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 325984a2ea9SAlexander Motin 326984a2ea9SAlexander Motin /* 03 RECEIVE COPY OPERATING PARAMETERS */ 327984a2ea9SAlexander Motin {ctl_receive_copy_operating_parameters, CTL_SERIDX_RD_CAP, 328984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 329984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 330984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 3317ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 332fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 333fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 334984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 335984a2ea9SAlexander Motin 16, {0x03, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 336984a2ea9SAlexander Motin 337984a2ea9SAlexander Motin /* 04 RECEIVE COPY FAILURE DETAILS (LID1) */ 338984a2ea9SAlexander Motin {ctl_receive_copy_failure_details, CTL_SERIDX_RD_CAP, 339984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 340fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 341fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 342984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 343984a2ea9SAlexander Motin 16, {0x04, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 344984a2ea9SAlexander Motin 345984a2ea9SAlexander Motin /* 05 RECEIVE COPY STATUS (LID4) */ 346984a2ea9SAlexander Motin {ctl_receive_copy_status_lid4, CTL_SERIDX_RD_CAP, 347984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 348115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 349115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 350984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 351984a2ea9SAlexander Motin 16, {0x05, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 352984a2ea9SAlexander Motin 353984a2ea9SAlexander Motin /* 06 RECEIVE COPY DATA (LID4)*/ 354984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 355984a2ea9SAlexander Motin 356984a2ea9SAlexander Motin /* 07 RECEIVE ROD TOKEN INFORMATION */ 35725eee848SAlexander Motin {ctl_receive_rod_token_information, CTL_SERIDX_RD_CAP, 35825eee848SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 359115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 360115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 36125eee848SAlexander Motin CTL_LUN_PAT_NONE, 36225eee848SAlexander Motin 16, {0x07, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 363984a2ea9SAlexander Motin 364984a2ea9SAlexander Motin /* 08 REPORT ALL ROD TOKENS */ 36525eee848SAlexander Motin {ctl_report_all_rod_tokens, CTL_SERIDX_RD_CAP, 36625eee848SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 367115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 368115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 36925eee848SAlexander Motin CTL_LUN_PAT_NONE, 37025eee848SAlexander Motin 16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 371984a2ea9SAlexander Motin }; 372984a2ea9SAlexander Motin 3731b08cb4eSAlexander Motin /* 9E SERVICE ACTION IN(16) */ 3741b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_9e[32] = 3751b08cb4eSAlexander Motin { 3761b08cb4eSAlexander Motin /* 00 */ 3771b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 3781b08cb4eSAlexander Motin 3791b08cb4eSAlexander Motin /* 01 */ 3801b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 3811b08cb4eSAlexander Motin 3821b08cb4eSAlexander Motin /* 02 */ 3831b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 3841b08cb4eSAlexander Motin 3851b08cb4eSAlexander Motin /* 03 */ 3861b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 3871b08cb4eSAlexander Motin 3881b08cb4eSAlexander Motin /* 04 */ 3891b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 3901b08cb4eSAlexander Motin 3911b08cb4eSAlexander Motin /* 05 */ 3921b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 3931b08cb4eSAlexander Motin 3941b08cb4eSAlexander Motin /* 06 */ 3951b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 3961b08cb4eSAlexander Motin 3971b08cb4eSAlexander Motin /* 07 */ 3981b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 3991b08cb4eSAlexander Motin 4001b08cb4eSAlexander Motin /* 08 */ 4011b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4021b08cb4eSAlexander Motin 4031b08cb4eSAlexander Motin /* 09 */ 4041b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4051b08cb4eSAlexander Motin 4061b08cb4eSAlexander Motin /* 0A */ 4071b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4081b08cb4eSAlexander Motin 4091b08cb4eSAlexander Motin /* 0B */ 4101b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4111b08cb4eSAlexander Motin 4121b08cb4eSAlexander Motin /* 0C */ 4131b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4141b08cb4eSAlexander Motin 4151b08cb4eSAlexander Motin /* 0D */ 4161b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4171b08cb4eSAlexander Motin 4181b08cb4eSAlexander Motin /* 0E */ 4191b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4201b08cb4eSAlexander Motin 4211b08cb4eSAlexander Motin /* 0F */ 4221b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4231b08cb4eSAlexander Motin 424ef8daf3fSAlexander Motin /* 10 READ CAPACITY(16) */ 425*91be33dcSAlexander Motin {ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 4261b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 4271b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 4281b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 4291b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 4301b08cb4eSAlexander Motin CTL_LUN_PAT_READCAP, 4311b08cb4eSAlexander Motin 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 4321b08cb4eSAlexander Motin 433ef8daf3fSAlexander Motin /* 11 */ 434ef8daf3fSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 435ef8daf3fSAlexander Motin 436ef8daf3fSAlexander Motin /* 12 GET LBA STATUS */ 437*91be33dcSAlexander Motin {ctl_get_lba_status, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 438ef8daf3fSAlexander Motin CTL_FLAG_DATA_IN | 439ef8daf3fSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 440ef8daf3fSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 441ef8daf3fSAlexander Motin 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 442ef8daf3fSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 443ef8daf3fSAlexander Motin 444ef8daf3fSAlexander Motin /* 13-1f */ 4451b08cb4eSAlexander Motin }; 4461b08cb4eSAlexander Motin 4471b08cb4eSAlexander Motin /* A3 MAINTENANCE IN */ 4481b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_a3[32] = 4491b08cb4eSAlexander Motin { 4501b08cb4eSAlexander Motin /* 00 */ 4511b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4521b08cb4eSAlexander Motin 4531b08cb4eSAlexander Motin /* 01 */ 4541b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4551b08cb4eSAlexander Motin 4561b08cb4eSAlexander Motin /* 02 */ 4571b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4581b08cb4eSAlexander Motin 4591b08cb4eSAlexander Motin /* 03 */ 4601b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4611b08cb4eSAlexander Motin 4621b08cb4eSAlexander Motin /* 04 */ 4631b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4641b08cb4eSAlexander Motin 4651b08cb4eSAlexander Motin /* 05 */ 4661b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4671b08cb4eSAlexander Motin 4681b08cb4eSAlexander Motin /* 06 */ 4691b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4701b08cb4eSAlexander Motin 4711b08cb4eSAlexander Motin /* 07 */ 4721b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4731b08cb4eSAlexander Motin 4741b08cb4eSAlexander Motin /* 08 */ 4751b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4761b08cb4eSAlexander Motin 4771b08cb4eSAlexander Motin /* 09 */ 4781b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4791b08cb4eSAlexander Motin 4801b08cb4eSAlexander Motin /* 0A REPORT TARGET PORT GROUPS */ 4814d877c41SAlexander Motin {ctl_report_tagret_port_groups, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 4821b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 4831b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 4847ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 4857ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 486115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 487115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 4881b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 489eed0d596SAlexander Motin 12, {0xea, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 4901b08cb4eSAlexander Motin 4911b08cb4eSAlexander Motin /* 0B */ 4921b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 4931b08cb4eSAlexander Motin 4941b08cb4eSAlexander Motin /* 0C REPORT SUPPORTED_OPCODES */ 4954d877c41SAlexander Motin {ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 4961b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 4971b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 4987ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 4997ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 500fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 501fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 5021b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 503cb743034SAlexander Motin 12, {0x0c, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 5041b08cb4eSAlexander Motin 5051b08cb4eSAlexander Motin /* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */ 5064d877c41SAlexander Motin {ctl_report_supported_tmf, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 5071b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 5081b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 5097ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 5107ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 511fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 512fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 5131b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 5141b08cb4eSAlexander Motin 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 5151b08cb4eSAlexander Motin 51625c9d5e5SAlexander Motin /* 0E */ 51725c9d5e5SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 51825c9d5e5SAlexander Motin 51925c9d5e5SAlexander Motin /* 0F REPORT TIMESTAMP */ 5204d877c41SAlexander Motin {ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 52125c9d5e5SAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 52225c9d5e5SAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 5237ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 5247ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 525115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 526115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 52725c9d5e5SAlexander Motin CTL_LUN_PAT_NONE, 52825c9d5e5SAlexander Motin 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 52925c9d5e5SAlexander Motin 53025c9d5e5SAlexander Motin /* 10-1f */ 5311b08cb4eSAlexander Motin }; 5321b08cb4eSAlexander Motin 5331b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table[256] = 534130f4520SKenneth D. Merry { 535130f4520SKenneth D. Merry /* 00 TEST UNIT READY */ 536130f4520SKenneth D. Merry {ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 537130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE | 538130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 5391b08cb4eSAlexander Motin CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}}, 540130f4520SKenneth D. Merry 541130f4520SKenneth D. Merry /* 01 REWIND */ 542130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 543130f4520SKenneth D. Merry 544130f4520SKenneth D. Merry /* 02 */ 545130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 546130f4520SKenneth D. Merry 547130f4520SKenneth D. Merry /* 03 REQUEST SENSE */ 548130f4520SKenneth D. Merry {ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 549efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_LUN | 550efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 551130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 552130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 553130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 554130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 5557ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 5567ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 557921af507SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 558921af507SAlexander Motin CTL_CMD_FLAG_RUN_HERE, 5591b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}}, 560130f4520SKenneth D. Merry 561130f4520SKenneth D. Merry /* 04 FORMAT UNIT */ 562*91be33dcSAlexander Motin {ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_DIRECT | 563130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 564130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 5651b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}}, 566130f4520SKenneth D. Merry 567130f4520SKenneth D. Merry /* 05 READ BLOCK LIMITS */ 568130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 569130f4520SKenneth D. Merry 570130f4520SKenneth D. Merry /* 06 */ 571130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 572130f4520SKenneth D. Merry 573130f4520SKenneth D. Merry /* 07 REASSIGN BLOCKS */ 574130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 575130f4520SKenneth D. Merry 576130f4520SKenneth D. Merry /* 08 READ(6) */ 577*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 578130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 579115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 5801b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 581130f4520SKenneth D. Merry 582130f4520SKenneth D. Merry /* 09 */ 583130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 584130f4520SKenneth D. Merry 585130f4520SKenneth D. Merry /* 0A WRITE(6) */ 586*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 587130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 5881b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 589130f4520SKenneth D. Merry 590130f4520SKenneth D. Merry /* 0B SEEK(6) */ 591130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 592130f4520SKenneth D. Merry 593130f4520SKenneth D. Merry /* 0C */ 594130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 595130f4520SKenneth D. Merry 596130f4520SKenneth D. Merry /* 0D */ 597130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 598130f4520SKenneth D. Merry 599130f4520SKenneth D. Merry /* 0E */ 600130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 601130f4520SKenneth D. Merry 602130f4520SKenneth D. Merry /* 0F READ REVERSE(6) */ 603130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 604130f4520SKenneth D. Merry 605130f4520SKenneth D. Merry /* 10 WRITE FILEMARKS(6) */ 606130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 607130f4520SKenneth D. Merry 608130f4520SKenneth D. Merry /* 11 SPACE(6) */ 609130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 610130f4520SKenneth D. Merry 611130f4520SKenneth D. Merry /* 12 INQUIRY */ 612efbf6139SAlexander Motin {ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_NO_LUN | 613efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 614130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 615130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 616130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 617130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 6187ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 6197ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 620130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 621130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 622561764b1SAlexander Motin CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}}, 623130f4520SKenneth D. Merry 624130f4520SKenneth D. Merry /* 13 */ 625130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 626130f4520SKenneth D. Merry 627130f4520SKenneth D. Merry /* 14 RECOVER BUFFERED DATA */ 628130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 629130f4520SKenneth D. Merry 630130f4520SKenneth D. Merry /* 15 MODE SELECT(6) */ 631130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 632130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 633130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 6347ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 635130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 6361b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}}, 637130f4520SKenneth D. Merry 638130f4520SKenneth D. Merry /* 16 RESERVE(6) */ 6394d877c41SAlexander Motin {ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 640130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 641130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 642130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 6437ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 644130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 6451b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 646130f4520SKenneth D. Merry 647130f4520SKenneth D. Merry /* 17 RELEASE(6) */ 6484d877c41SAlexander Motin {ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 649130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 650130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 651130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 6527ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 653130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 6541b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 655130f4520SKenneth D. Merry 656130f4520SKenneth D. Merry /* 18 COPY */ 657130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 658130f4520SKenneth D. Merry 659130f4520SKenneth D. Merry /* 19 ERASE(6) */ 660130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 661130f4520SKenneth D. Merry 662130f4520SKenneth D. Merry /* 1A MODE SENSE(6) */ 663130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 664130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 665130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 6667ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 667f82388fdSAlexander Motin CTL_FLAG_DATA_IN | 668115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 669c7a7dbbcSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0xff, 0xff, 0x07}}, 670130f4520SKenneth D. Merry 671130f4520SKenneth D. Merry /* 1B START STOP UNIT */ 672*91be33dcSAlexander Motin {ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_DIRECT | 673*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 674130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 675130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 676130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE | 677130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 6781b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}}, 679130f4520SKenneth D. Merry 680130f4520SKenneth D. Merry /* 1C RECEIVE DIAGNOSTIC RESULTS */ 681130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 682130f4520SKenneth D. Merry 683130f4520SKenneth D. Merry /* 1D SEND DIAGNOSTIC */ 684130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 685130f4520SKenneth D. Merry 686130f4520SKenneth D. Merry /* 1E PREVENT ALLOW MEDIUM REMOVAL */ 687*91be33dcSAlexander Motin {ctl_prevent_allow, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_DIRECT | 688*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 689*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 690*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 691*91be33dcSAlexander Motin CTL_FLAG_DATA_NONE, 692*91be33dcSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}}, 693130f4520SKenneth D. Merry 694130f4520SKenneth D. Merry /* 1F */ 695130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 696130f4520SKenneth D. Merry 697130f4520SKenneth D. Merry /* 20 */ 698130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 699130f4520SKenneth D. Merry 700130f4520SKenneth D. Merry /* 21 */ 701130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 702130f4520SKenneth D. Merry 703130f4520SKenneth D. Merry /* 22 */ 704130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 705130f4520SKenneth D. Merry 706130f4520SKenneth D. Merry /* 23 */ 707130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 708130f4520SKenneth D. Merry 709130f4520SKenneth D. Merry /* 24 SET WINDOW */ 710130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 711130f4520SKenneth D. Merry 712130f4520SKenneth D. Merry /* 25 READ CAPACITY(10) */ 713*91be33dcSAlexander Motin {ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 714*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 715130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 716130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 717130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 718130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 7191b08cb4eSAlexander Motin CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 720130f4520SKenneth D. Merry 721130f4520SKenneth D. Merry /* 26 */ 722130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 723130f4520SKenneth D. Merry 724130f4520SKenneth D. Merry /* 27 */ 725130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 726130f4520SKenneth D. Merry 727130f4520SKenneth D. Merry /* 28 READ(10) */ 728*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 729*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 730130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 731115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 7321b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 733b0737f1aSAlexander Motin 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 734130f4520SKenneth D. Merry 735130f4520SKenneth D. Merry /* 29 READ GENERATION */ 736130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 737130f4520SKenneth D. Merry 738130f4520SKenneth D. Merry /* 2A WRITE(10) */ 739*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 7401b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 741b0737f1aSAlexander Motin 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 742130f4520SKenneth D. Merry 743130f4520SKenneth D. Merry /* 2B SEEK(10) */ 744130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 745130f4520SKenneth D. Merry 746130f4520SKenneth D. Merry /* 2C ERASE(10) */ 747130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 748130f4520SKenneth D. Merry 749130f4520SKenneth D. Merry /* 2D READ UPDATED BLOCK */ 750130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 751130f4520SKenneth D. Merry 752130f4520SKenneth D. Merry /* 2E WRITE AND VERIFY(10) */ 753*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 7541b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 7555b5ad150SAlexander Motin 10, {0x12, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 756130f4520SKenneth D. Merry 757130f4520SKenneth D. Merry /* 2F VERIFY(10) */ 758*91be33dcSAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 75911b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 760115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 7611b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 7621b08cb4eSAlexander Motin 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 763130f4520SKenneth D. Merry 764130f4520SKenneth D. Merry /* 30 SEARCH DATA HIGH(10) */ 765130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 766130f4520SKenneth D. Merry 767130f4520SKenneth D. Merry /* 31 SEARCH DATA EQUAL(10) */ 768130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 769130f4520SKenneth D. Merry 770130f4520SKenneth D. Merry /* 32 SEARCH DATA LOW(10) */ 771130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 772130f4520SKenneth D. Merry 773130f4520SKenneth D. Merry /* 33 SET LIMITS(10) */ 774130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 775130f4520SKenneth D. Merry 776130f4520SKenneth D. Merry /* 34 PRE-FETCH(10) */ 777130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 778130f4520SKenneth D. Merry 779130f4520SKenneth D. Merry /* 35 SYNCHRONIZE CACHE(10) */ 780*91be33dcSAlexander Motin {ctl_sync_cache, CTL_SERIDX_SYNC, CTL_CMD_FLAG_OK_ON_DIRECT | 781130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 7826187d472SAlexander Motin CTL_LUN_PAT_WRITE, 7837d0d4342SAlexander Motin 10, {0x02, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 784130f4520SKenneth D. Merry 785130f4520SKenneth D. Merry /* 36 LOCK UNLOCK CACHE(10) */ 786130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 787130f4520SKenneth D. Merry 788130f4520SKenneth D. Merry /* 37 READ DEFECT DATA(10) */ 789*91be33dcSAlexander Motin {ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_DIRECT | 790d70698b3SAlexander Motin CTL_FLAG_DATA_IN | 791115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 792d70698b3SAlexander Motin CTL_LUN_PAT_NONE, 793d70698b3SAlexander Motin 10, {0, 0x1f, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 794130f4520SKenneth D. Merry 795130f4520SKenneth D. Merry /* 38 MEDIUM SCAN */ 796130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 797130f4520SKenneth D. Merry 798130f4520SKenneth D. Merry /* 39 COMPARE */ 799130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 800130f4520SKenneth D. Merry 801130f4520SKenneth D. Merry /* 3A COPY AND VERIFY */ 802130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 803130f4520SKenneth D. Merry 804130f4520SKenneth D. Merry /* 3B WRITE BUFFER */ 80585165a3fSAlexander Motin {ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 80623b30f56SAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 80723b30f56SAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 8087ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 809130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 8101b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 8111b08cb4eSAlexander Motin 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 812130f4520SKenneth D. Merry 813130f4520SKenneth D. Merry /* 3C READ BUFFER */ 81485165a3fSAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 81523b30f56SAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 81623b30f56SAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 8177ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 81885165a3fSAlexander Motin CTL_FLAG_DATA_IN | 819115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 8201b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 8211b08cb4eSAlexander Motin 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 822130f4520SKenneth D. Merry 823130f4520SKenneth D. Merry /* 3D UPDATE BLOCK */ 824130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 825130f4520SKenneth D. Merry 826130f4520SKenneth D. Merry /* 3E READ LONG */ 827130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 828130f4520SKenneth D. Merry 829130f4520SKenneth D. Merry /* 3F WRITE LONG */ 830130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 831130f4520SKenneth D. Merry 832130f4520SKenneth D. Merry /* 40 CHANGE DEFINITION */ 833130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 834130f4520SKenneth D. Merry 835130f4520SKenneth D. Merry /* 41 WRITE SAME(10) */ 836*91be33dcSAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 837ee7f31c0SAlexander Motin CTL_FLAG_DATA_OUT, 8381b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 8393406a2a0SAlexander Motin 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 840130f4520SKenneth D. Merry 841ee7f31c0SAlexander Motin /* 42 READ SUB-CHANNEL / UNMAP */ 842*91be33dcSAlexander Motin {ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_DIRECT | CTL_FLAG_DATA_OUT, 8431b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE, 8443406a2a0SAlexander Motin 10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 845130f4520SKenneth D. Merry 846130f4520SKenneth D. Merry /* 43 READ TOC/PMA/ATIP */ 847*91be33dcSAlexander Motin {ctl_read_toc, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 848*91be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV | 849*91be33dcSAlexander Motin CTL_FLAG_DATA_IN, 850*91be33dcSAlexander Motin CTL_LUN_PAT_NONE, 851*91be33dcSAlexander Motin 10, {0x02, 0x01, 0, 0, 0, 0xff, 0xff, 0xff, 0x07}}, 852130f4520SKenneth D. Merry 853130f4520SKenneth D. Merry /* 44 REPORT DENSITY SUPPORT */ 854130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 855130f4520SKenneth D. Merry 856130f4520SKenneth D. Merry /* 45 PLAY AUDIO(10) */ 857130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 858130f4520SKenneth D. Merry 859130f4520SKenneth D. Merry /* 46 GET CONFIGURATION */ 860*91be33dcSAlexander Motin {ctl_get_config, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_CDROM | 861*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 862*91be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 863*91be33dcSAlexander Motin CTL_FLAG_DATA_IN, 864*91be33dcSAlexander Motin CTL_LUN_PAT_NONE, 865*91be33dcSAlexander Motin 10, {0x03, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07}}, 866130f4520SKenneth D. Merry 867130f4520SKenneth D. Merry /* 47 PLAY AUDIO MSF */ 868130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 869130f4520SKenneth D. Merry 870130f4520SKenneth D. Merry /* 48 PLAY AUDIO TRACK INDEX */ 871130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 872130f4520SKenneth D. Merry 873130f4520SKenneth D. Merry /* 49 PLAY TRACK RELATIVE(10) */ 874130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 875130f4520SKenneth D. Merry 876130f4520SKenneth D. Merry /* 4A GET EVENT STATUS NOTIFICATION */ 877*91be33dcSAlexander Motin {ctl_get_event_status, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 878*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 879*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 880*91be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 881*91be33dcSAlexander Motin CTL_FLAG_DATA_IN, 882*91be33dcSAlexander Motin CTL_LUN_PAT_NONE, 883*91be33dcSAlexander Motin 10, {0x02, 0x01, 0, 0, 0, 0xff, 0xff, 0xff, 0x07}}, 884130f4520SKenneth D. Merry 885130f4520SKenneth D. Merry /* 4B PAUSE/RESUME */ 886130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 887130f4520SKenneth D. Merry 888130f4520SKenneth D. Merry /* 4C LOG SELECT */ 889130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 890130f4520SKenneth D. Merry 891130f4520SKenneth D. Merry /* 4D LOG SENSE */ 8922e33ae99SAlexander Motin {ctl_log_sense, CTL_SERIDX_LOG_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 8932e33ae99SAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 8942e33ae99SAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 8952e33ae99SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 896523f047eSAlexander Motin CTL_FLAG_DATA_IN | 897523f047eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 898523f047eSAlexander Motin CTL_LUN_PAT_NONE, 10, {0, 0xff, 0xff, 0, 0xff, 0xff, 0xff, 0xff, 0x07} }, 899130f4520SKenneth D. Merry 900130f4520SKenneth D. Merry /* 4E STOP PLAY/SCAN */ 901130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 902130f4520SKenneth D. Merry 903130f4520SKenneth D. Merry /* 4F */ 904130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 905130f4520SKenneth D. Merry 906130f4520SKenneth D. Merry /* 50 XDWRITE(10) */ 907130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 908130f4520SKenneth D. Merry 909130f4520SKenneth D. Merry /* 51 XPWRITE(10) */ 910130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 911130f4520SKenneth D. Merry 912130f4520SKenneth D. Merry /* 52 XDREAD(10) */ 913130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 914130f4520SKenneth D. Merry 915130f4520SKenneth D. Merry /* 53 RESERVE TRACK */ 916130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 917130f4520SKenneth D. Merry 918130f4520SKenneth D. Merry /* 54 SEND OPC INFORMATION */ 919130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 920130f4520SKenneth D. Merry 921130f4520SKenneth D. Merry /* 55 MODE SELECT(10) */ 922130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 923130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 924130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 9257ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 926130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 9271b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 928130f4520SKenneth D. Merry 929130f4520SKenneth D. Merry /* 56 RESERVE(10) */ 9304d877c41SAlexander Motin {ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 931130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 932130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 933130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 9347ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 935130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 936f44570f6SAlexander Motin CTL_LUN_PAT_NONE, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07} }, 937130f4520SKenneth D. Merry 938130f4520SKenneth D. Merry /* 57 RELEASE(10) */ 9394d877c41SAlexander Motin {ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 940130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 941130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 942130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 9437ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 944130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 945f44570f6SAlexander Motin CTL_LUN_PAT_NONE, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 946130f4520SKenneth D. Merry 947130f4520SKenneth D. Merry /* 58 REPAIR TRACK */ 948130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 949130f4520SKenneth D. Merry 950130f4520SKenneth D. Merry /* 59 READ MASTER CUE */ 951130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 952130f4520SKenneth D. Merry 953130f4520SKenneth D. Merry /* 5A MODE SENSE(10) */ 954130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 955130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 956130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 9577ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 958f82388fdSAlexander Motin CTL_FLAG_DATA_IN | 959115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 960c7a7dbbcSAlexander Motin CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 961130f4520SKenneth D. Merry 962130f4520SKenneth D. Merry /* 5B CLOSE TRACK/SESSION */ 963130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 964130f4520SKenneth D. Merry 965130f4520SKenneth D. Merry /* 5C READ BUFFER CAPACITY */ 966130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 967130f4520SKenneth D. Merry 968130f4520SKenneth D. Merry /* 5D SEND CUE SHEET */ 969130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 970130f4520SKenneth D. Merry 971130f4520SKenneth D. Merry /* 5E PERSISTENT RESERVE IN */ 9721b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 973130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 974130f4520SKenneth D. Merry 975130f4520SKenneth D. Merry /* 5F PERSISTENT RESERVE OUT */ 9761b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 977130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 978130f4520SKenneth D. Merry 979130f4520SKenneth D. Merry /* 60 */ 980130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 981130f4520SKenneth D. Merry 982130f4520SKenneth D. Merry /* 61 */ 983130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 984130f4520SKenneth D. Merry 985130f4520SKenneth D. Merry /* 62 */ 986130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 987130f4520SKenneth D. Merry 988130f4520SKenneth D. Merry /* 63 */ 989130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 990130f4520SKenneth D. Merry 991130f4520SKenneth D. Merry /* 64 */ 992130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 993130f4520SKenneth D. Merry 994130f4520SKenneth D. Merry /* 65 */ 995130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 996130f4520SKenneth D. Merry 997130f4520SKenneth D. Merry /* 66 */ 998130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 999130f4520SKenneth D. Merry 1000130f4520SKenneth D. Merry /* 67 */ 1001130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1002130f4520SKenneth D. Merry 1003130f4520SKenneth D. Merry /* 68 */ 1004130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1005130f4520SKenneth D. Merry 1006130f4520SKenneth D. Merry /* 69 */ 1007130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1008130f4520SKenneth D. Merry 1009130f4520SKenneth D. Merry /* 6A */ 1010130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1011130f4520SKenneth D. Merry 1012130f4520SKenneth D. Merry /* 6B */ 1013130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1014130f4520SKenneth D. Merry 1015130f4520SKenneth D. Merry /* 6C */ 1016130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1017130f4520SKenneth D. Merry 1018130f4520SKenneth D. Merry /* 6D */ 1019130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1020130f4520SKenneth D. Merry 1021130f4520SKenneth D. Merry /* 6E */ 1022130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1023130f4520SKenneth D. Merry 1024130f4520SKenneth D. Merry /* 6F */ 1025130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1026130f4520SKenneth D. Merry 1027130f4520SKenneth D. Merry /* 70 */ 1028130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1029130f4520SKenneth D. Merry 1030130f4520SKenneth D. Merry /* 71 */ 1031130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1032130f4520SKenneth D. Merry 1033130f4520SKenneth D. Merry /* 72 */ 1034130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1035130f4520SKenneth D. Merry 1036130f4520SKenneth D. Merry /* 73 */ 1037130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1038130f4520SKenneth D. Merry 1039130f4520SKenneth D. Merry /* 74 */ 1040130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1041130f4520SKenneth D. Merry 1042130f4520SKenneth D. Merry /* 75 */ 1043130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1044130f4520SKenneth D. Merry 1045130f4520SKenneth D. Merry /* 76 */ 1046130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1047130f4520SKenneth D. Merry 1048130f4520SKenneth D. Merry /* 77 */ 1049130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1050130f4520SKenneth D. Merry 1051130f4520SKenneth D. Merry /* 78 */ 1052130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1053130f4520SKenneth D. Merry 1054130f4520SKenneth D. Merry /* 79 */ 1055130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1056130f4520SKenneth D. Merry 1057130f4520SKenneth D. Merry /* 7A */ 1058130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1059130f4520SKenneth D. Merry 1060130f4520SKenneth D. Merry /* 7B */ 1061130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1062130f4520SKenneth D. Merry 1063130f4520SKenneth D. Merry /* 7C */ 1064130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1065130f4520SKenneth D. Merry 1066130f4520SKenneth D. Merry /* 7D */ 1067130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1068130f4520SKenneth D. Merry 1069130f4520SKenneth D. Merry /* 7E */ 1070130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1071130f4520SKenneth D. Merry 1072130f4520SKenneth D. Merry /* 7F */ 1073130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1074130f4520SKenneth D. Merry 1075130f4520SKenneth D. Merry /* 80 XDWRITE EXTENDED(16) */ 1076130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1077130f4520SKenneth D. Merry 1078130f4520SKenneth D. Merry /* 81 REBUILD(16) */ 1079130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1080130f4520SKenneth D. Merry 1081130f4520SKenneth D. Merry /* 82 REGENERATE(16) */ 1082130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1083130f4520SKenneth D. Merry 1084130f4520SKenneth D. Merry /* 83 EXTENDED COPY */ 1085984a2ea9SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1086984a2ea9SAlexander Motin CTL_LUN_PAT_NONE}, 1087130f4520SKenneth D. Merry 1088130f4520SKenneth D. Merry /* 84 RECEIVE COPY RESULTS */ 1089984a2ea9SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1090984a2ea9SAlexander Motin CTL_LUN_PAT_NONE}, 1091130f4520SKenneth D. Merry 1092130f4520SKenneth D. Merry /* 85 */ 1093130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1094130f4520SKenneth D. Merry 1095130f4520SKenneth D. Merry /* 86 ACCESS CONTROL IN */ 1096130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1097130f4520SKenneth D. Merry 1098130f4520SKenneth D. Merry /* 87 ACCESS CONTROL OUT */ 1099130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1100130f4520SKenneth D. Merry 1101130f4520SKenneth D. Merry /* 88 READ(16) */ 1102*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | CTL_FLAG_DATA_IN | 1103115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 11041b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1105b0737f1aSAlexander Motin 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11061b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1107130f4520SKenneth D. Merry 110811b569f7SAlexander Motin /* 89 COMPARE AND WRITE */ 1109*91be33dcSAlexander Motin {ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 11101b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 11111b08cb4eSAlexander Motin 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11121b08cb4eSAlexander Motin 0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}}, 1113130f4520SKenneth D. Merry 1114130f4520SKenneth D. Merry /* 8A WRITE(16) */ 1115*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 11161b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1117b0737f1aSAlexander Motin 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11181b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1119130f4520SKenneth D. Merry 1120130f4520SKenneth D. Merry /* 8B */ 1121130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1122130f4520SKenneth D. Merry 1123130f4520SKenneth D. Merry /* 8C READ ATTRIBUTE */ 1124130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1125130f4520SKenneth D. Merry 1126130f4520SKenneth D. Merry /* 8D WRITE ATTRIBUTE */ 1127130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1128130f4520SKenneth D. Merry 1129130f4520SKenneth D. Merry /* 8E WRITE AND VERIFY(16) */ 1130*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 11311b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 11325b5ad150SAlexander Motin 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11331b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1134130f4520SKenneth D. Merry 1135130f4520SKenneth D. Merry /* 8F VERIFY(16) */ 1136*91be33dcSAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 113711b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 1138115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 11391b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 11401b08cb4eSAlexander Motin 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11411b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1142130f4520SKenneth D. Merry 1143130f4520SKenneth D. Merry /* 90 PRE-FETCH(16) */ 1144130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1145130f4520SKenneth D. Merry 1146130f4520SKenneth D. Merry /* 91 SYNCHRONIZE CACHE(16) */ 1147*91be33dcSAlexander Motin {ctl_sync_cache, CTL_SERIDX_SYNC, CTL_CMD_FLAG_OK_ON_DIRECT | 1148130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 11496187d472SAlexander Motin CTL_LUN_PAT_WRITE, 11507d0d4342SAlexander Motin 16, {0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11511b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1152130f4520SKenneth D. Merry 1153130f4520SKenneth D. Merry /* 92 LOCK UNLOCK CACHE(16) */ 1154130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1155130f4520SKenneth D. Merry 1156130f4520SKenneth D. Merry /* 93 WRITE SAME(16) */ 1157*91be33dcSAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 1158ee7f31c0SAlexander Motin CTL_FLAG_DATA_OUT, 11591b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 116064c5167cSAlexander Motin 16, {0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11611b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1162130f4520SKenneth D. Merry 1163130f4520SKenneth D. Merry /* 94 */ 1164130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1165130f4520SKenneth D. Merry 1166130f4520SKenneth D. Merry /* 95 */ 1167130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1168130f4520SKenneth D. Merry 1169130f4520SKenneth D. Merry /* 96 */ 1170130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1171130f4520SKenneth D. Merry 1172130f4520SKenneth D. Merry /* 97 */ 1173130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1174130f4520SKenneth D. Merry 1175130f4520SKenneth D. Merry /* 98 */ 1176130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1177130f4520SKenneth D. Merry 1178130f4520SKenneth D. Merry /* 99 */ 1179130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1180130f4520SKenneth D. Merry 1181130f4520SKenneth D. Merry /* 9A */ 1182130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1183130f4520SKenneth D. Merry 1184de988746SAlexander Motin /* 9B READ BUFFER(16) */ 1185de988746SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 1186de988746SAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 1187de988746SAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 1188de988746SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1189de988746SAlexander Motin CTL_FLAG_DATA_IN | 1190de988746SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1191de988746SAlexander Motin CTL_LUN_PAT_NONE, 1192de988746SAlexander Motin 10, {0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1193de988746SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1194130f4520SKenneth D. Merry 11958a416753SAlexander Motin /* 9C WRITE ATOMIC (16) */ 1196*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 11978a416753SAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 11988a416753SAlexander Motin 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 11998a416753SAlexander Motin 0xff, 0xff, 0, 0, 0xff, 0xff, 0, 0x07}}, 1200130f4520SKenneth D. Merry 1201130f4520SKenneth D. Merry /* 9D */ 1202130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1203130f4520SKenneth D. Merry 1204130f4520SKenneth D. Merry /* 9E SERVICE ACTION IN(16) */ 12051b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 12061b08cb4eSAlexander Motin CTL_LUN_PAT_NONE}, 1207130f4520SKenneth D. Merry 1208130f4520SKenneth D. Merry /* 9F SERVICE ACTION OUT(16) */ 1209130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1210130f4520SKenneth D. Merry 1211130f4520SKenneth D. Merry /* A0 REPORT LUNS */ 1212921af507SAlexander Motin {ctl_report_luns, CTL_SERIDX_INQ, CTL_FLAG_DATA_IN | 1213921af507SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_LUN | 1214efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 1215130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 1216130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 1217130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 1218130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 12197ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 12207ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 1221921af507SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 1222921af507SAlexander Motin CTL_CMD_FLAG_RUN_HERE, 12231b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 12241b08cb4eSAlexander Motin 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1225130f4520SKenneth D. Merry 1226130f4520SKenneth D. Merry /* A1 BLANK */ 1227130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1228130f4520SKenneth D. Merry 1229130f4520SKenneth D. Merry /* A2 SEND EVENT */ 1230130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1231130f4520SKenneth D. Merry 12321b08cb4eSAlexander Motin /* A3 MAINTENANCE IN */ 12331b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1234130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 1235130f4520SKenneth D. Merry 12361b08cb4eSAlexander Motin /* A4 MAINTENANCE OUT */ 1237130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1238130f4520SKenneth D. Merry 1239130f4520SKenneth D. Merry /* A5 MOVE MEDIUM */ 1240130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1241130f4520SKenneth D. Merry 1242130f4520SKenneth D. Merry /* A6 EXCHANGE MEDIUM */ 1243130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1244130f4520SKenneth D. Merry 1245130f4520SKenneth D. Merry /* A7 MOVE MEDIUM ATTACHED */ 1246130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1247130f4520SKenneth D. Merry 1248130f4520SKenneth D. Merry /* A8 READ(12) */ 1249*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 1250*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 1251*91be33dcSAlexander Motin CTL_FLAG_DATA_IN | 1252115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 12531b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1254b0737f1aSAlexander Motin 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1255130f4520SKenneth D. Merry 1256130f4520SKenneth D. Merry /* A9 PLAY TRACK RELATIVE(12) */ 1257130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1258130f4520SKenneth D. Merry 1259130f4520SKenneth D. Merry /* AA WRITE(12) */ 1260*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 12611b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1262b0737f1aSAlexander Motin 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1263130f4520SKenneth D. Merry 1264130f4520SKenneth D. Merry /* AB SERVICE ACTION IN(12) */ 1265130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1266130f4520SKenneth D. Merry 1267130f4520SKenneth D. Merry /* AC ERASE(12) */ 1268130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1269130f4520SKenneth D. Merry 1270130f4520SKenneth D. Merry /* AD READ DVD STRUCTURE */ 1271130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1272130f4520SKenneth D. Merry 1273130f4520SKenneth D. Merry /* AE WRITE AND VERIFY(12) */ 1274*91be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 12751b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 12765b5ad150SAlexander Motin 12, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1277130f4520SKenneth D. Merry 1278130f4520SKenneth D. Merry /* AF VERIFY(12) */ 1279*91be33dcSAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 128011b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 1281115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 12821b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 12831b08cb4eSAlexander Motin 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1284130f4520SKenneth D. Merry 1285130f4520SKenneth D. Merry /* B0 SEARCH DATA HIGH(12) */ 1286130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1287130f4520SKenneth D. Merry 1288130f4520SKenneth D. Merry /* B1 SEARCH DATA EQUAL(12) */ 1289130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1290130f4520SKenneth D. Merry 1291130f4520SKenneth D. Merry /* B2 SEARCH DATA LOW(12) */ 1292130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1293130f4520SKenneth D. Merry 1294130f4520SKenneth D. Merry /* B3 SET LIMITS(12) */ 1295130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1296130f4520SKenneth D. Merry 1297130f4520SKenneth D. Merry /* B4 READ ELEMENT STATUS ATTACHED */ 1298130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1299130f4520SKenneth D. Merry 1300130f4520SKenneth D. Merry /* B5 REQUEST VOLUME ELEMENT ADDRESS */ 1301130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1302130f4520SKenneth D. Merry 1303130f4520SKenneth D. Merry /* B6 SEND VOLUME TAG */ 1304130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1305130f4520SKenneth D. Merry 1306130f4520SKenneth D. Merry /* B7 READ DEFECT DATA(12) */ 1307*91be33dcSAlexander Motin {ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_DIRECT | 1308d70698b3SAlexander Motin CTL_FLAG_DATA_IN | 1309115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1310d70698b3SAlexander Motin CTL_LUN_PAT_NONE, 1311d70698b3SAlexander Motin 12, {0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1312130f4520SKenneth D. Merry 1313130f4520SKenneth D. Merry /* B8 READ ELEMENT STATUS */ 1314130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1315130f4520SKenneth D. Merry 1316130f4520SKenneth D. Merry /* B9 READ CD MSF */ 1317130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1318130f4520SKenneth D. Merry 13191b08cb4eSAlexander Motin /* BA REDUNDANCY GROUP IN */ 1320130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1321130f4520SKenneth D. Merry 13221b08cb4eSAlexander Motin /* BB REDUNDANCY GROUP OUT */ 1323130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1324130f4520SKenneth D. Merry 13251b08cb4eSAlexander Motin /* BC SPARE IN */ 1326130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1327130f4520SKenneth D. Merry 1328*91be33dcSAlexander Motin /* BD SPARE OUT / MECHANISM STATUS */ 1329*91be33dcSAlexander Motin {ctl_mechanism_status, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 1330*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_STOPPED | 1331*91be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_INOPERABLE | 1332*91be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 1333*91be33dcSAlexander Motin CTL_FLAG_DATA_IN, 1334*91be33dcSAlexander Motin CTL_LUN_PAT_NONE, 1335*91be33dcSAlexander Motin 12, {0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0, 0x07}}, 1336130f4520SKenneth D. Merry 13371b08cb4eSAlexander Motin /* BE VOLUME SET IN */ 1338130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1339130f4520SKenneth D. Merry 13401b08cb4eSAlexander Motin /* BF VOLUME SET OUT */ 1341130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1342130f4520SKenneth D. Merry 13437ac58230SAlexander Motin /* C0 */ 13447ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1345130f4520SKenneth D. Merry 13467ac58230SAlexander Motin /* C1 */ 13477ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1348130f4520SKenneth D. Merry 13497ac58230SAlexander Motin /* C2 */ 13507ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1351130f4520SKenneth D. Merry 13527ac58230SAlexander Motin /* C3 */ 13537ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1354130f4520SKenneth D. Merry 1355130f4520SKenneth D. Merry /* C4 */ 1356130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1357130f4520SKenneth D. Merry 1358130f4520SKenneth D. Merry /* C5 */ 1359130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1360130f4520SKenneth D. Merry 1361130f4520SKenneth D. Merry /* C6 */ 1362130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1363130f4520SKenneth D. Merry 1364130f4520SKenneth D. Merry /* C7 */ 1365130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1366130f4520SKenneth D. Merry 1367130f4520SKenneth D. Merry /* C8 */ 1368130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1369130f4520SKenneth D. Merry 1370130f4520SKenneth D. Merry /* C9 */ 1371130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1372130f4520SKenneth D. Merry 1373130f4520SKenneth D. Merry /* CA */ 1374130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1375130f4520SKenneth D. Merry 1376130f4520SKenneth D. Merry /* CB */ 1377130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1378130f4520SKenneth D. Merry 1379130f4520SKenneth D. Merry /* CC */ 1380130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1381130f4520SKenneth D. Merry 1382130f4520SKenneth D. Merry /* CD */ 1383130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1384130f4520SKenneth D. Merry 1385130f4520SKenneth D. Merry /* CE */ 1386130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1387130f4520SKenneth D. Merry 1388130f4520SKenneth D. Merry /* CF */ 1389130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1390130f4520SKenneth D. Merry 1391130f4520SKenneth D. Merry /* D0 */ 1392130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1393130f4520SKenneth D. Merry 1394130f4520SKenneth D. Merry /* D1 */ 1395130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1396130f4520SKenneth D. Merry 1397130f4520SKenneth D. Merry /* D2 */ 1398130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1399130f4520SKenneth D. Merry 1400130f4520SKenneth D. Merry /* D3 */ 1401130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1402130f4520SKenneth D. Merry 1403130f4520SKenneth D. Merry /* D4 */ 1404130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1405130f4520SKenneth D. Merry 1406130f4520SKenneth D. Merry /* D5 */ 1407130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1408130f4520SKenneth D. Merry 1409130f4520SKenneth D. Merry /* D6 */ 1410130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1411130f4520SKenneth D. Merry 1412130f4520SKenneth D. Merry /* D7 */ 1413130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1414130f4520SKenneth D. Merry 1415130f4520SKenneth D. Merry /* D8 */ 1416130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1417130f4520SKenneth D. Merry 1418130f4520SKenneth D. Merry /* D9 */ 1419130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1420130f4520SKenneth D. Merry 1421130f4520SKenneth D. Merry /* DA */ 1422130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1423130f4520SKenneth D. Merry 1424130f4520SKenneth D. Merry /* DB */ 1425130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1426130f4520SKenneth D. Merry 1427130f4520SKenneth D. Merry /* DC */ 1428130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1429130f4520SKenneth D. Merry 1430130f4520SKenneth D. Merry /* DD */ 1431130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1432130f4520SKenneth D. Merry 1433130f4520SKenneth D. Merry /* DE */ 1434130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1435130f4520SKenneth D. Merry 1436130f4520SKenneth D. Merry /* DF */ 1437130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1438130f4520SKenneth D. Merry 1439130f4520SKenneth D. Merry /* E0 */ 1440130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1441130f4520SKenneth D. Merry 1442130f4520SKenneth D. Merry /* E1 */ 1443130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1444130f4520SKenneth D. Merry 1445130f4520SKenneth D. Merry /* E2 */ 1446130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1447130f4520SKenneth D. Merry 1448130f4520SKenneth D. Merry /* E3 */ 1449130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1450130f4520SKenneth D. Merry 1451130f4520SKenneth D. Merry /* E4 */ 1452130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1453130f4520SKenneth D. Merry 1454130f4520SKenneth D. Merry /* E5 */ 1455130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1456130f4520SKenneth D. Merry 1457130f4520SKenneth D. Merry /* E6 */ 1458130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1459130f4520SKenneth D. Merry 1460130f4520SKenneth D. Merry /* E7 */ 1461130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1462130f4520SKenneth D. Merry 1463130f4520SKenneth D. Merry /* E8 */ 1464130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1465130f4520SKenneth D. Merry 1466130f4520SKenneth D. Merry /* E9 */ 1467130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1468130f4520SKenneth D. Merry 1469130f4520SKenneth D. Merry /* EA */ 1470130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1471130f4520SKenneth D. Merry 1472130f4520SKenneth D. Merry /* EB */ 1473130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1474130f4520SKenneth D. Merry 1475130f4520SKenneth D. Merry /* EC */ 1476130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1477130f4520SKenneth D. Merry 1478130f4520SKenneth D. Merry /* ED */ 1479130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1480130f4520SKenneth D. Merry 1481130f4520SKenneth D. Merry /* EE */ 1482130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1483130f4520SKenneth D. Merry 1484130f4520SKenneth D. Merry /* EF */ 1485130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1486130f4520SKenneth D. Merry 1487130f4520SKenneth D. Merry /* F0 */ 1488130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1489130f4520SKenneth D. Merry 1490130f4520SKenneth D. Merry /* F1 */ 1491130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1492130f4520SKenneth D. Merry 1493130f4520SKenneth D. Merry /* F2 */ 1494130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1495130f4520SKenneth D. Merry 1496130f4520SKenneth D. Merry /* F3 */ 1497130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1498130f4520SKenneth D. Merry 1499130f4520SKenneth D. Merry /* F4 */ 1500130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1501130f4520SKenneth D. Merry 1502130f4520SKenneth D. Merry /* F5 */ 1503130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1504130f4520SKenneth D. Merry 1505130f4520SKenneth D. Merry /* F6 */ 1506130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1507130f4520SKenneth D. Merry 1508130f4520SKenneth D. Merry /* F7 */ 1509130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1510130f4520SKenneth D. Merry 1511130f4520SKenneth D. Merry /* F8 */ 1512130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1513130f4520SKenneth D. Merry 1514130f4520SKenneth D. Merry /* F9 */ 1515130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1516130f4520SKenneth D. Merry 1517130f4520SKenneth D. Merry /* FA */ 1518130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1519130f4520SKenneth D. Merry 1520130f4520SKenneth D. Merry /* FB */ 1521130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1522130f4520SKenneth D. Merry 1523130f4520SKenneth D. Merry /* FC */ 1524130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1525130f4520SKenneth D. Merry 1526130f4520SKenneth D. Merry /* FD */ 1527130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1528130f4520SKenneth D. Merry 1529130f4520SKenneth D. Merry /* FE */ 1530130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1531130f4520SKenneth D. Merry 1532130f4520SKenneth D. Merry /* FF */ 1533130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 1534130f4520SKenneth D. Merry 1535130f4520SKenneth D. Merry }; 1536