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