ctl_cmd_table.c revision 273315
1229997Sken/*- 2229997Sken * Copyright (c) 2003, 2004, 2005, 2009 Silicon Graphics International Corp. 3229997Sken * All rights reserved. 4229997Sken * 5229997Sken * Redistribution and use in source and binary forms, with or without 6229997Sken * modification, are permitted provided that the following conditions 7229997Sken * are met: 8229997Sken * 1. Redistributions of source code must retain the above copyright 9229997Sken * notice, this list of conditions, and the following disclaimer, 10229997Sken * without modification. 11229997Sken * 2. Redistributions in binary form must reproduce at minimum a disclaimer 12229997Sken * substantially similar to the "NO WARRANTY" disclaimer below 13229997Sken * ("Disclaimer") and any redistribution must be conditioned upon 14229997Sken * including a substantially similar Disclaimer requirement for further 15229997Sken * binary redistribution. 16229997Sken * 17229997Sken * NO WARRANTY 18229997Sken * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19229997Sken * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20229997Sken * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 21229997Sken * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22229997Sken * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23229997Sken * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24229997Sken * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25229997Sken * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 26229997Sken * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 27229997Sken * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28229997Sken * POSSIBILITY OF SUCH DAMAGES. 29229997Sken * 30229997Sken * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_cmd_table.c#4 $ 31229997Sken * $FreeBSD: stable/10/sys/cam/ctl/ctl_cmd_table.c 273315 2014-10-20 07:41:37Z mav $ 32229997Sken */ 33229997Sken/* 34229997Sken * CAM Target Layer command table. 35229997Sken * 36229997Sken * Author: Ken Merry <ken@FreeBSD.org>, Kim Le 37229997Sken */ 38229997Sken 39229997Sken#include <sys/cdefs.h> 40229997Sken#include <sys/param.h> 41229997Sken#include <sys/systm.h> 42229997Sken#include <sys/kernel.h> 43229997Sken#include <sys/types.h> 44229997Sken#include <sys/malloc.h> 45229997Sken#include <sys/condvar.h> 46229997Sken#include <sys/queue.h> 47233963Sken#include <sys/sysctl.h> 48229997Sken 49229997Sken#include <cam/scsi/scsi_all.h> 50229997Sken#include <cam/scsi/scsi_da.h> 51229997Sken#include <cam/ctl/ctl_io.h> 52229997Sken#include <cam/ctl/ctl.h> 53229997Sken#include <cam/ctl/ctl_frontend.h> 54229997Sken#include <cam/ctl/ctl_backend.h> 55229997Sken#include <cam/ctl/ctl_frontend_internal.h> 56229997Sken#include <cam/ctl/ctl_ioctl.h> 57229997Sken#include <cam/ctl/ctl_ha.h> 58229997Sken#include <cam/ctl/ctl_private.h> 59229997Sken 60229997Sken/* 61268674Smav * Whenever support for a new command is added, it should be added to these 62268674Smav * tables. 63229997Sken */ 64268674Smav 65268674Smav/* 5E PERSISTENT RESERVE IN */ 66268674Smavconst struct ctl_cmd_entry ctl_cmd_table_5e[32] = 67229997Sken{ 68268674Smav/* 00 READ KEYS */ 69269295Smav{ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 70268674Smav CTL_CMD_FLAG_OK_ON_BOTH | 71268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 72268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 73273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 74268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 75268674Smav CTL_FLAG_DATA_IN | 76268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 77268674Smav CTL_LUN_PAT_NONE, 78268674Smav 10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 79268674Smav 80268674Smav/* 01 READ RESERVATION */ 81269295Smav{ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 82268674Smav CTL_CMD_FLAG_OK_ON_BOTH | 83268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 84268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 85273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 86268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 87268674Smav CTL_FLAG_DATA_IN | 88268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 89268674Smav CTL_LUN_PAT_NONE, 90268674Smav 10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 91268674Smav 92268674Smav/* 02 REPORT CAPABILITIES */ 93268674Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 94268674Smav CTL_CMD_FLAG_OK_ON_BOTH | 95268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 96268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 97273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 98268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 99268674Smav CTL_FLAG_DATA_IN | 100268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 101268674Smav CTL_LUN_PAT_NONE, 102268674Smav 10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 103268674Smav 104268674Smav/* 03 READ FULL STATUS */ 105268694Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 106268694Smav CTL_CMD_FLAG_OK_ON_BOTH | 107268694Smav CTL_CMD_FLAG_OK_ON_STOPPED | 108268694Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 109273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 110268694Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 111268694Smav CTL_FLAG_DATA_IN | 112268694Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 113268694Smav CTL_LUN_PAT_NONE, 114268694Smav 10, { 0x03, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 115268674Smav 116268674Smav/* 04-1f */ 117268674Smav}; 118268674Smav 119268674Smav/* 5F PERSISTENT RESERVE OUT */ 120268674Smavconst struct ctl_cmd_entry ctl_cmd_table_5f[32] = 121268674Smav{ 122268674Smav/* 00 REGISTER */ 123269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 124269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 125269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 126269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 127273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 128269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 129269295Smav CTL_FLAG_DATA_OUT | 130269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 131268674Smav CTL_LUN_PAT_NONE, 132268674Smav 10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 133268674Smav 134268674Smav/* 01 RESERVE */ 135269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 136269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 137269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 138269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 139273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 140269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 141269295Smav CTL_FLAG_DATA_OUT | 142269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 143268674Smav CTL_LUN_PAT_NONE, 144268674Smav 10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 145268674Smav 146268674Smav/* 02 RELEASE */ 147269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 148269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 149269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 150269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 151273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 152269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 153269295Smav CTL_FLAG_DATA_OUT | 154269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 155268674Smav CTL_LUN_PAT_NONE, 156268674Smav 10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 157268674Smav 158268674Smav/* 03 CLEAR */ 159269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 160269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 161269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 162269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 163273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 164269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 165269295Smav CTL_FLAG_DATA_OUT | 166269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 167268674Smav CTL_LUN_PAT_NONE, 168268674Smav 10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 169268674Smav 170268674Smav/* 04 PREEMPT */ 171269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 172269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 173269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 174269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 175273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 176269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 177269295Smav CTL_FLAG_DATA_OUT | 178269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 179268674Smav CTL_LUN_PAT_NONE, 180268674Smav 10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 181268674Smav 182268674Smav/* 05 PREEMPT AND ABORT */ 183268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 184268674Smav 185268674Smav/* 06 REGISTER AND IGNORE EXISTING KEY */ 186269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 187269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 188269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 189269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 190273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 191269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 192269295Smav CTL_FLAG_DATA_OUT | 193269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 194268674Smav CTL_LUN_PAT_NONE, 195268674Smav 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 196268674Smav 197268674Smav/* 07 REGISTER AND MOVE */ 198268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 199268674Smav 200268674Smav/* 08-1f */ 201268674Smav}; 202268674Smav 203269296Smav/* 83 EXTENDED COPY */ 204269296Smavconst struct ctl_cmd_entry ctl_cmd_table_83[32] = 205269296Smav{ 206269296Smav/* 00 EXTENDED COPY (LID1) */ 207269296Smav{ctl_extended_copy_lid1, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 208269296Smav CTL_FLAG_DATA_OUT, 209269296Smav CTL_LUN_PAT_NONE, 210269296Smav 16, { 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 211269296Smav 212269296Smav/* 01 EXTENDED COPY (LID4) */ 213269296Smav{ctl_extended_copy_lid4, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 214269296Smav CTL_FLAG_DATA_OUT, 215269296Smav CTL_LUN_PAT_NONE, 216269296Smav 16, { 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 217269296Smav 218269296Smav/* 02 */ 219269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 220269296Smav 221269296Smav/* 03 */ 222269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 223269296Smav 224269296Smav/* 04 */ 225269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 226269296Smav 227269296Smav/* 05 */ 228269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 229269296Smav 230269296Smav/* 06 */ 231269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 232269296Smav 233269296Smav/* 07 */ 234269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 235269296Smav 236269296Smav/* 08 */ 237269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 238269296Smav 239269296Smav/* 09 */ 240269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 241269296Smav 242269296Smav/* 0A */ 243269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 244269296Smav 245269296Smav/* 0B */ 246269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 247269296Smav 248269296Smav/* 0C */ 249269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 250269296Smav 251269296Smav/* 0D */ 252269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 253269296Smav 254269296Smav/* 0E */ 255269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 256269296Smav 257269296Smav/* 0F */ 258269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 259269296Smav 260269296Smav/* 10 POPULATE TOKEN */ 261270106Smav{ctl_populate_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 262270106Smav CTL_FLAG_DATA_OUT, 263270106Smav CTL_LUN_PAT_NONE, 264270106Smav 16, { 0x10, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 265270106Smav 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 266269296Smav 267269296Smav/* 11 WRITE USING TOKEN */ 268270106Smav{ctl_write_using_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 269270106Smav CTL_FLAG_DATA_OUT, 270270106Smav CTL_LUN_PAT_NONE, 271270106Smav 16, { 0x11, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 272270106Smav 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 273269296Smav 274269296Smav/* 12 */ 275269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 276269296Smav 277269296Smav/* 13 */ 278269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 279269296Smav 280269296Smav/* 14 */ 281269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 282269296Smav 283269296Smav/* 15 */ 284269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 285269296Smav 286269296Smav/* 16 */ 287269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 288269296Smav 289269296Smav/* 17 */ 290269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 291269296Smav 292269296Smav/* 18 */ 293269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 294269296Smav 295269296Smav/* 19 */ 296269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 297269296Smav 298269296Smav/* 1A */ 299269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 300269296Smav 301269296Smav/* 1B */ 302269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 303269296Smav 304269296Smav/* 1C COPY OPERATION ABORT */ 305269296Smav{ctl_copy_operation_abort, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 306269296Smav CTL_FLAG_DATA_NONE, 307269296Smav CTL_LUN_PAT_NONE, 308269296Smav 16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 309269296Smav}; 310269296Smav 311269296Smav/* 84 RECEIVE COPY STATUS */ 312269296Smavconst struct ctl_cmd_entry ctl_cmd_table_84[32] = 313269296Smav{ 314269296Smav/* 00 RECEIVE COPY STATUS (LID1) */ 315269296Smav{ctl_receive_copy_status_lid1, CTL_SERIDX_RD_CAP, 316269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 317272633Smav CTL_FLAG_DATA_IN | 318272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 319269296Smav CTL_LUN_PAT_NONE, 320269296Smav 16, {0x00, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 321269296Smav 322269296Smav/* 01 RECEIVE COPY DATA (LID1) */ 323269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 324269296Smav 325269296Smav/* 02 */ 326269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 327269296Smav 328269296Smav/* 03 RECEIVE COPY OPERATING PARAMETERS */ 329269296Smav{ctl_receive_copy_operating_parameters, CTL_SERIDX_RD_CAP, 330269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 331269296Smav CTL_CMD_FLAG_OK_ON_STOPPED | 332269296Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 333269296Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 334272633Smav CTL_FLAG_DATA_IN | 335272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 336269296Smav CTL_LUN_PAT_NONE, 337269296Smav 16, {0x03, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 338269296Smav 339269296Smav/* 04 RECEIVE COPY FAILURE DETAILS (LID1) */ 340269296Smav{ctl_receive_copy_failure_details, CTL_SERIDX_RD_CAP, 341269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 342272633Smav CTL_FLAG_DATA_IN | 343272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 344269296Smav CTL_LUN_PAT_NONE, 345269296Smav 16, {0x04, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 346269296Smav 347269296Smav/* 05 RECEIVE COPY STATUS (LID4) */ 348269296Smav{ctl_receive_copy_status_lid4, CTL_SERIDX_RD_CAP, 349269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 350269296Smav CTL_FLAG_DATA_IN, 351269296Smav CTL_LUN_PAT_NONE, 352269296Smav 16, {0x05, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 353269296Smav 354269296Smav/* 06 RECEIVE COPY DATA (LID4)*/ 355269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 356269296Smav 357269296Smav/* 07 RECEIVE ROD TOKEN INFORMATION */ 358270106Smav{ctl_receive_rod_token_information, CTL_SERIDX_RD_CAP, 359270106Smav CTL_CMD_FLAG_OK_ON_BOTH | 360270106Smav CTL_FLAG_DATA_IN, 361270106Smav CTL_LUN_PAT_NONE, 362270106Smav 16, {0x07, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 363269296Smav 364269296Smav/* 08 REPORT ALL ROD TOKENS */ 365270106Smav{ctl_report_all_rod_tokens, CTL_SERIDX_RD_CAP, 366270106Smav CTL_CMD_FLAG_OK_ON_BOTH | 367270106Smav CTL_FLAG_DATA_IN, 368270106Smav CTL_LUN_PAT_NONE, 369270106Smav 16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 370269296Smav}; 371269296Smav 372268674Smav/* 9E SERVICE ACTION IN(16) */ 373268674Smavconst struct ctl_cmd_entry ctl_cmd_table_9e[32] = 374268674Smav{ 375268674Smav/* 00 */ 376268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 377268674Smav 378268674Smav/* 01 */ 379268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 380268674Smav 381268674Smav/* 02 */ 382268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 383268674Smav 384268674Smav/* 03 */ 385268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 386268674Smav 387268674Smav/* 04 */ 388268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 389268674Smav 390268674Smav/* 05 */ 391268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 392268674Smav 393268674Smav/* 06 */ 394268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 395268674Smav 396268674Smav/* 07 */ 397268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 398268674Smav 399268674Smav/* 08 */ 400268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 401268674Smav 402268674Smav/* 09 */ 403268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 404268674Smav 405268674Smav/* 0A */ 406268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 407268674Smav 408268674Smav/* 0B */ 409268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 410268674Smav 411268674Smav/* 0C */ 412268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 413268674Smav 414268674Smav/* 0D */ 415268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 416268674Smav 417268674Smav/* 0E */ 418268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 419268674Smav 420268674Smav/* 0F */ 421268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 422268674Smav 423268674Smav/* 10 */ 424268674Smav{ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 425268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 426268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 427268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 428268674Smav CTL_FLAG_DATA_IN | 429268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 430268674Smav CTL_LUN_PAT_READCAP, 431268674Smav 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 432268674Smav 433268674Smav/* 11-1f */ 434268674Smav}; 435268674Smav 436268674Smav/* A3 MAINTENANCE IN */ 437268674Smavconst struct ctl_cmd_entry ctl_cmd_table_a3[32] = 438268674Smav{ 439268674Smav/* 00 */ 440268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 441268674Smav 442268674Smav/* 01 */ 443268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 444268674Smav 445268674Smav/* 02 */ 446268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 447268674Smav 448268674Smav/* 03 */ 449268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 450268674Smav 451268674Smav/* 04 */ 452268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 453268674Smav 454268674Smav/* 05 */ 455268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 456268674Smav 457268674Smav/* 06 */ 458268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 459268674Smav 460268674Smav/* 07 */ 461268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 462268674Smav 463268674Smav/* 08 */ 464268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 465268674Smav 466268674Smav/* 09 */ 467268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 468268674Smav 469268674Smav/* 0A REPORT TARGET PORT GROUPS */ 470269295Smav{ctl_report_tagret_port_groups, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 471269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 472269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 473273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 474269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 475269295Smav CTL_FLAG_DATA_IN, 476268674Smav CTL_LUN_PAT_NONE, 477268674Smav 12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 478268674Smav 479268674Smav/* 0B */ 480268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 481268674Smav 482268674Smav/* 0C REPORT SUPPORTED_OPCODES */ 483269295Smav{ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 484269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 485269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 486273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 487269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 488272633Smav CTL_FLAG_DATA_IN | 489272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 490268674Smav CTL_LUN_PAT_NONE, 491268674Smav 12, {0x0c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 492268674Smav 493268674Smav/* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */ 494269295Smav{ctl_report_supported_tmf, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 495269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 496269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 497273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 498269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 499272633Smav CTL_FLAG_DATA_IN | 500272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 501268674Smav CTL_LUN_PAT_NONE, 502268674Smav 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 503268674Smav 504268675Smav/* 0E */ 505268675Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 506268675Smav 507268675Smav/* 0F REPORT TIMESTAMP */ 508269295Smav{ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 509269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 510269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 511273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 512269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 513269295Smav CTL_FLAG_DATA_IN, 514268675Smav CTL_LUN_PAT_NONE, 515268675Smav 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 516268675Smav 517268675Smav/* 10-1f */ 518268674Smav}; 519268674Smav 520268674Smavconst struct ctl_cmd_entry ctl_cmd_table[256] = 521268674Smav{ 522229997Sken/* 00 TEST UNIT READY */ 523229997Sken{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 524229997Sken CTL_FLAG_DATA_NONE | 525229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 526268674Smav CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}}, 527229997Sken 528229997Sken/* 01 REWIND */ 529229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 530229997Sken 531229997Sken/* 02 */ 532229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 533229997Sken 534229997Sken/* 03 REQUEST SENSE */ 535229997Sken{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 536229997Sken CTL_CMD_FLAG_OK_ON_ALL_LUNS | 537229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 538229997Sken CTL_CMD_FLAG_NO_SENSE | 539229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 540229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 541229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 542229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 543229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 544268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}}, 545229997Sken 546229997Sken/* 04 FORMAT UNIT */ 547229997Sken{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN | 548229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 549229997Sken CTL_FLAG_DATA_OUT, 550268674Smav CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}}, 551229997Sken 552229997Sken/* 05 READ BLOCK LIMITS */ 553229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 554229997Sken 555229997Sken/* 06 */ 556229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 557229997Sken 558229997Sken/* 07 REASSIGN BLOCKS */ 559229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 560229997Sken 561229997Sken/* 08 READ(6) */ 562229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 563229997Sken CTL_FLAG_DATA_IN | 564229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 565268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 566229997Sken 567229997Sken/* 09 */ 568229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 569229997Sken 570229997Sken/* 0A WRITE(6) */ 571229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 572229997Sken CTL_FLAG_DATA_OUT, 573268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 574229997Sken 575229997Sken/* 0B SEEK(6) */ 576229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 577229997Sken 578229997Sken/* 0C */ 579229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 580229997Sken 581229997Sken/* 0D */ 582229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 583229997Sken 584229997Sken/* 0E */ 585229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 586229997Sken 587229997Sken/* 0F READ REVERSE(6) */ 588229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 589229997Sken 590229997Sken/* 10 WRITE FILEMARKS(6) */ 591229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 592229997Sken 593229997Sken/* 11 SPACE(6) */ 594229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 595229997Sken 596229997Sken/* 12 INQUIRY */ 597229997Sken{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 598229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 599229997Sken CTL_CMD_FLAG_NO_SENSE | 600229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 601229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 602229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 603229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 604229997Sken CTL_FLAG_DATA_IN | 605229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 606268674Smav CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}}, 607229997Sken 608229997Sken/* 13 */ 609229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 610229997Sken 611229997Sken/* 14 RECOVER BUFFERED DATA */ 612229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 613229997Sken 614229997Sken/* 15 MODE SELECT(6) */ 615229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 616229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 617229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 618273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 619229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 620229997Sken CTL_FLAG_DATA_OUT, 621268674Smav CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}}, 622229997Sken 623229997Sken/* 16 RESERVE(6) */ 624269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 625229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 626229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 627229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 628273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 629229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 630229997Sken CTL_FLAG_DATA_OUT, 631268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 632229997Sken 633229997Sken/* 17 RELEASE(6) */ 634269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 635229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 636229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 637229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 638273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 639229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 640229997Sken CTL_FLAG_DATA_NONE, 641268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 642229997Sken 643229997Sken/* 18 COPY */ 644229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 645229997Sken 646229997Sken/* 19 ERASE(6) */ 647229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 648229997Sken 649229997Sken/* 1A MODE SENSE(6) */ 650229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 651229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 652229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 653273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 654229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 655268551Smav CTL_FLAG_DATA_IN | 656268551Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 657272635Smav CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0xff, 0xff, 0x07}}, 658229997Sken 659229997Sken/* 1B START STOP UNIT */ 660229997Sken{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 661229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 662229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 663229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 664229997Sken CTL_FLAG_DATA_NONE | 665229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 666268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}}, 667229997Sken 668229997Sken/* 1C RECEIVE DIAGNOSTIC RESULTS */ 669229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 670229997Sken 671229997Sken/* 1D SEND DIAGNOSTIC */ 672229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 673229997Sken 674229997Sken/* 1E PREVENT ALLOW MEDIUM REMOVAL */ 675229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 676229997Sken 677229997Sken/* 1F */ 678229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 679229997Sken 680229997Sken/* 20 */ 681229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 682229997Sken 683229997Sken/* 21 */ 684229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 685229997Sken 686229997Sken/* 22 */ 687229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 688229997Sken 689229997Sken/* 23 */ 690229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 691229997Sken 692229997Sken/* 24 SET WINDOW */ 693229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 694229997Sken 695229997Sken/* 25 READ CAPACITY(10) */ 696229997Sken{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN| 697229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 698229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 699229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 700229997Sken CTL_FLAG_DATA_IN | 701229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 702268674Smav CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 703229997Sken 704229997Sken/* 26 */ 705229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 706229997Sken 707229997Sken/* 27 */ 708229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 709229997Sken 710229997Sken/* 28 READ(10) */ 711229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 712229997Sken CTL_FLAG_DATA_IN | 713229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 714268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 715272638Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 716229997Sken 717229997Sken/* 29 READ GENERATION */ 718229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 719229997Sken 720229997Sken/* 2A WRITE(10) */ 721229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 722268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 723272638Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 724229997Sken 725229997Sken/* 2B SEEK(10) */ 726229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 727229997Sken 728229997Sken/* 2C ERASE(10) */ 729229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 730229997Sken 731229997Sken/* 2D READ UPDATED BLOCK */ 732229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 733229997Sken 734229997Sken/* 2E WRITE AND VERIFY(10) */ 735229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 736268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 737272642Smav 10, {0x12, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 738229997Sken 739229997Sken/* 2F VERIFY(10) */ 740268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 741268151Smav CTL_FLAG_DATA_OUT | 742268151Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 743268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 744268674Smav 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 745229997Sken 746229997Sken/* 30 SEARCH DATA HIGH(10) */ 747229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 748229997Sken 749229997Sken/* 31 SEARCH DATA EQUAL(10) */ 750229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 751229997Sken 752229997Sken/* 32 SEARCH DATA LOW(10) */ 753229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 754229997Sken 755229997Sken/* 33 SET LIMITS(10) */ 756229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 757229997Sken 758229997Sken/* 34 PRE-FETCH(10) */ 759229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 760229997Sken 761229997Sken/* 35 SYNCHRONIZE CACHE(10) */ 762229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 763229997Sken CTL_FLAG_DATA_NONE, 764268674Smav CTL_LUN_PAT_NONE, 765268674Smav 10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 766229997Sken 767229997Sken/* 36 LOCK UNLOCK CACHE(10) */ 768229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 769229997Sken 770229997Sken/* 37 READ DEFECT DATA(10) */ 771229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 772229997Sken 773229997Sken/* 38 MEDIUM SCAN */ 774229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 775229997Sken 776229997Sken/* 39 COMPARE */ 777229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 778229997Sken 779229997Sken/* 3A COPY AND VERIFY */ 780229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 781229997Sken 782229997Sken/* 3B WRITE BUFFER */ 783268550Smav{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 784268550Smav CTL_FLAG_DATA_OUT, 785268674Smav CTL_LUN_PAT_NONE, 786268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 787229997Sken 788229997Sken/* 3C READ BUFFER */ 789268550Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 790268550Smav CTL_FLAG_DATA_IN | 791268550Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 792268674Smav CTL_LUN_PAT_NONE, 793268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 794229997Sken 795229997Sken/* 3D UPDATE BLOCK */ 796229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 797229997Sken 798229997Sken/* 3E READ LONG */ 799229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 800229997Sken 801229997Sken/* 3F WRITE LONG */ 802229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 803229997Sken 804229997Sken/* 40 CHANGE DEFINITION */ 805229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 806229997Sken 807229997Sken/* 41 WRITE SAME(10) */ 808265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 809265634Smav CTL_FLAG_DATA_OUT, 810268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 811270108Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 812229997Sken 813265634Smav/* 42 READ SUB-CHANNEL / UNMAP */ 814265634Smav{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT, 815268674Smav CTL_LUN_PAT_WRITE, 816270108Smav 10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 817229997Sken 818229997Sken/* 43 READ TOC/PMA/ATIP */ 819229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 820229997Sken 821229997Sken/* 44 REPORT DENSITY SUPPORT */ 822229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 823229997Sken 824229997Sken/* 45 PLAY AUDIO(10) */ 825229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 826229997Sken 827229997Sken/* 46 GET CONFIGURATION */ 828229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 829229997Sken 830229997Sken/* 47 PLAY AUDIO MSF */ 831229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 832229997Sken 833229997Sken/* 48 PLAY AUDIO TRACK INDEX */ 834229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 835229997Sken 836229997Sken/* 49 PLAY TRACK RELATIVE(10) */ 837229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 838229997Sken 839229997Sken/* 4A GET EVENT STATUS NOTIFICATION */ 840229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 841229997Sken 842229997Sken/* 4B PAUSE/RESUME */ 843229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 844229997Sken 845229997Sken/* 4C LOG SELECT */ 846229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 847229997Sken 848229997Sken/* 4D LOG SENSE */ 849229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 850229997Sken 851229997Sken/* 4E STOP PLAY/SCAN */ 852229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 853229997Sken 854229997Sken/* 4F */ 855229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 856229997Sken 857229997Sken/* 50 XDWRITE(10) */ 858229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 859229997Sken 860229997Sken/* 51 XPWRITE(10) */ 861229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 862229997Sken 863229997Sken/* 52 XDREAD(10) */ 864229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 865229997Sken 866229997Sken/* 53 RESERVE TRACK */ 867229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 868229997Sken 869229997Sken/* 54 SEND OPC INFORMATION */ 870229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 871229997Sken 872229997Sken/* 55 MODE SELECT(10) */ 873229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 874229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 875229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 876273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 877229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 878229997Sken CTL_FLAG_DATA_OUT, 879268674Smav CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 880229997Sken 881229997Sken/* 56 RESERVE(10) */ 882269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 883229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 884229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 885229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 886273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 887229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 888229997Sken CTL_FLAG_DATA_OUT, 889268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 890229997Sken 891229997Sken/* 57 RELEASE(10) */ 892269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 893229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 894229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 895229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 896273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 897229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 898229997Sken CTL_FLAG_DATA_OUT, 899268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 900229997Sken 901229997Sken/* 58 REPAIR TRACK */ 902229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 903229997Sken 904229997Sken/* 59 READ MASTER CUE */ 905229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 906229997Sken 907229997Sken/* 5A MODE SENSE(10) */ 908229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 909229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 910229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 911273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 912229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 913268551Smav CTL_FLAG_DATA_IN | 914268551Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 915272635Smav CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 916229997Sken 917229997Sken/* 5B CLOSE TRACK/SESSION */ 918229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 919229997Sken 920229997Sken/* 5C READ BUFFER CAPACITY */ 921229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 922229997Sken 923229997Sken/* 5D SEND CUE SHEET */ 924229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 925229997Sken 926229997Sken/* 5E PERSISTENT RESERVE IN */ 927268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 928229997Sken CTL_LUN_PAT_NONE}, 929229997Sken 930229997Sken/* 5F PERSISTENT RESERVE OUT */ 931268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 932229997Sken CTL_LUN_PAT_NONE}, 933229997Sken 934229997Sken/* 60 */ 935229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 936229997Sken 937229997Sken/* 61 */ 938229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 939229997Sken 940229997Sken/* 62 */ 941229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 942229997Sken 943229997Sken/* 63 */ 944229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 945229997Sken 946229997Sken/* 64 */ 947229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 948229997Sken 949229997Sken/* 65 */ 950229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 951229997Sken 952229997Sken/* 66 */ 953229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 954229997Sken 955229997Sken/* 67 */ 956229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 957229997Sken 958229997Sken/* 68 */ 959229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 960229997Sken 961229997Sken/* 69 */ 962229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 963229997Sken 964229997Sken/* 6A */ 965229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 966229997Sken 967229997Sken/* 6B */ 968229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 969229997Sken 970229997Sken/* 6C */ 971229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 972229997Sken 973229997Sken/* 6D */ 974229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 975229997Sken 976229997Sken/* 6E */ 977229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 978229997Sken 979229997Sken/* 6F */ 980229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 981229997Sken 982229997Sken/* 70 */ 983229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 984229997Sken 985229997Sken/* 71 */ 986229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 987229997Sken 988229997Sken/* 72 */ 989229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 990229997Sken 991229997Sken/* 73 */ 992229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 993229997Sken 994229997Sken/* 74 */ 995229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 996229997Sken 997229997Sken/* 75 */ 998229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 999229997Sken 1000229997Sken/* 76 */ 1001229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1002229997Sken 1003229997Sken/* 77 */ 1004229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1005229997Sken 1006229997Sken/* 78 */ 1007229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1008229997Sken 1009229997Sken/* 79 */ 1010229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1011229997Sken 1012229997Sken/* 7A */ 1013229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1014229997Sken 1015229997Sken/* 7B */ 1016229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1017229997Sken 1018229997Sken/* 7C */ 1019229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1020229997Sken 1021229997Sken/* 7D */ 1022229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1023229997Sken 1024229997Sken/* 7E */ 1025229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1026229997Sken 1027229997Sken/* 7F */ 1028229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1029229997Sken 1030229997Sken/* 80 XDWRITE EXTENDED(16) */ 1031229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1032229997Sken 1033229997Sken/* 81 REBUILD(16) */ 1034229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1035229997Sken 1036229997Sken/* 82 REGENERATE(16) */ 1037229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1038229997Sken 1039229997Sken/* 83 EXTENDED COPY */ 1040269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1041269296Smav CTL_LUN_PAT_NONE}, 1042229997Sken 1043229997Sken/* 84 RECEIVE COPY RESULTS */ 1044269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1045269296Smav CTL_LUN_PAT_NONE}, 1046229997Sken 1047229997Sken/* 85 */ 1048229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1049229997Sken 1050229997Sken/* 86 ACCESS CONTROL IN */ 1051229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1052229997Sken 1053229997Sken/* 87 ACCESS CONTROL OUT */ 1054229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1055229997Sken 1056229997Sken/* 88 READ(16) */ 1057229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 1058229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1059268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1060272638Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1061268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1062229997Sken 1063268151Smav/* 89 COMPARE AND WRITE */ 1064268151Smav{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1065268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1066268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1067268674Smav 0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}}, 1068229997Sken 1069229997Sken/* 8A WRITE(16) */ 1070229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1071268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1072272638Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1073268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1074229997Sken 1075229997Sken/* 8B */ 1076229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1077229997Sken 1078229997Sken/* 8C READ ATTRIBUTE */ 1079229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1080229997Sken 1081229997Sken/* 8D WRITE ATTRIBUTE */ 1082229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1083229997Sken 1084229997Sken/* 8E WRITE AND VERIFY(16) */ 1085229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1086268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1087272642Smav 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1088268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1089229997Sken 1090229997Sken/* 8F VERIFY(16) */ 1091268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 1092268151Smav CTL_FLAG_DATA_OUT | 1093268151Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1094268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1095268674Smav 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1096268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1097229997Sken 1098229997Sken/* 90 PRE-FETCH(16) */ 1099229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1100229997Sken 1101229997Sken/* 91 SYNCHRONIZE CACHE(16) */ 1102229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 1103229997Sken CTL_FLAG_DATA_NONE, 1104268674Smav CTL_LUN_PAT_NONE, 1105268674Smav 16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1106268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1107229997Sken 1108229997Sken/* 92 LOCK UNLOCK CACHE(16) */ 1109229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1110229997Sken 1111229997Sken/* 93 WRITE SAME(16) */ 1112265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 1113265634Smav CTL_FLAG_DATA_OUT, 1114268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1115272632Smav 16, {0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1116268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1117229997Sken 1118229997Sken/* 94 */ 1119229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1120229997Sken 1121229997Sken/* 95 */ 1122229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1123229997Sken 1124229997Sken/* 96 */ 1125229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1126229997Sken 1127229997Sken/* 97 */ 1128229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1129229997Sken 1130229997Sken/* 98 */ 1131229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1132229997Sken 1133229997Sken/* 99 */ 1134229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1135229997Sken 1136229997Sken/* 9A */ 1137229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1138229997Sken 1139229997Sken/* 9B */ 1140229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1141229997Sken 1142273311Smav/* 9C WRITE ATOMIC (16) */ 1143273311Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1144273311Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1145273311Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1146273311Smav 0xff, 0xff, 0, 0, 0xff, 0xff, 0, 0x07}}, 1147229997Sken 1148229997Sken/* 9D */ 1149229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1150229997Sken 1151229997Sken/* 9E SERVICE ACTION IN(16) */ 1152268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1153268674Smav CTL_LUN_PAT_NONE}, 1154229997Sken 1155229997Sken/* 9F SERVICE ACTION OUT(16) */ 1156229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1157229997Sken 1158229997Sken/* A0 REPORT LUNS */ 1159229997Sken{ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 1160229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 1161229997Sken CTL_CMD_FLAG_NO_SENSE | 1162229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 1163229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 1164229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 1165229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 1166229997Sken CTL_FLAG_DATA_IN | 1167229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1168268674Smav CTL_LUN_PAT_NONE, 1169268674Smav 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1170229997Sken 1171229997Sken/* A1 BLANK */ 1172229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1173229997Sken 1174229997Sken/* A2 SEND EVENT */ 1175229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1176229997Sken 1177268674Smav/* A3 MAINTENANCE IN */ 1178268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1179229997Sken CTL_LUN_PAT_NONE}, 1180229997Sken 1181268674Smav/* A4 MAINTENANCE OUT */ 1182229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1183229997Sken 1184229997Sken/* A5 MOVE MEDIUM */ 1185229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1186229997Sken 1187229997Sken/* A6 EXCHANGE MEDIUM */ 1188229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1189229997Sken 1190229997Sken/* A7 MOVE MEDIUM ATTACHED */ 1191229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1192229997Sken 1193229997Sken/* A8 READ(12) */ 1194229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 1195229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1196268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1197272638Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1198229997Sken 1199229997Sken/* A9 PLAY TRACK RELATIVE(12) */ 1200229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1201229997Sken 1202229997Sken/* AA WRITE(12) */ 1203229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1204268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1205272638Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1206229997Sken 1207229997Sken/* AB SERVICE ACTION IN(12) */ 1208229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1209229997Sken 1210229997Sken/* AC ERASE(12) */ 1211229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1212229997Sken 1213229997Sken/* AD READ DVD STRUCTURE */ 1214229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1215229997Sken 1216229997Sken/* AE WRITE AND VERIFY(12) */ 1217229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1218268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1219272642Smav 12, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1220229997Sken 1221229997Sken/* AF VERIFY(12) */ 1222268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 1223268151Smav CTL_FLAG_DATA_OUT | 1224268151Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1225268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1226268674Smav 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1227229997Sken 1228229997Sken/* B0 SEARCH DATA HIGH(12) */ 1229229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1230229997Sken 1231229997Sken/* B1 SEARCH DATA EQUAL(12) */ 1232229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1233229997Sken 1234229997Sken/* B2 SEARCH DATA LOW(12) */ 1235229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1236229997Sken 1237229997Sken/* B3 SET LIMITS(12) */ 1238229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1239229997Sken 1240229997Sken/* B4 READ ELEMENT STATUS ATTACHED */ 1241229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1242229997Sken 1243229997Sken/* B5 REQUEST VOLUME ELEMENT ADDRESS */ 1244229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1245229997Sken 1246229997Sken/* B6 SEND VOLUME TAG */ 1247229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1248229997Sken 1249229997Sken/* B7 READ DEFECT DATA(12) */ 1250229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1251229997Sken 1252229997Sken/* B8 READ ELEMENT STATUS */ 1253229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1254229997Sken 1255229997Sken/* B9 READ CD MSF */ 1256229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1257229997Sken 1258268674Smav/* BA REDUNDANCY GROUP IN */ 1259229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1260229997Sken 1261268674Smav/* BB REDUNDANCY GROUP OUT */ 1262229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1263229997Sken 1264268674Smav/* BC SPARE IN */ 1265229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1266229997Sken 1267268674Smav/* BD SPARE OUT */ 1268229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1269229997Sken 1270268674Smav/* BE VOLUME SET IN */ 1271229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1272229997Sken 1273268674Smav/* BF VOLUME SET OUT */ 1274229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1275229997Sken 1276229997Sken/* C0 - ISC_SEND_MSG_SHORT */ 1277229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1278229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE, 1279268674Smav CTL_LUN_PAT_NONE, 1280268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1281268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1282229997Sken 1283229997Sken/* C1 - ISC_SEND_MSG */ 1284229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1285229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1286268674Smav CTL_LUN_PAT_NONE, 1287268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1288268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1289229997Sken 1290229997Sken/* C2 - ISC_WRITE */ 1291229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1292229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1293268674Smav CTL_LUN_PAT_NONE, 1294268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1295268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1296229997Sken 1297229997Sken/* C3 - ISC_READ */ 1298229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1299229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN, 1300268674Smav CTL_LUN_PAT_NONE, 1301268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1302268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1303229997Sken 1304229997Sken/* C4 */ 1305229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1306229997Sken 1307229997Sken/* C5 */ 1308229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1309229997Sken 1310229997Sken/* C6 */ 1311229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1312229997Sken 1313229997Sken/* C7 */ 1314229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1315229997Sken 1316229997Sken/* C8 */ 1317229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1318229997Sken 1319229997Sken/* C9 */ 1320229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1321229997Sken 1322229997Sken/* CA */ 1323229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1324229997Sken 1325229997Sken/* CB */ 1326229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1327229997Sken 1328229997Sken/* CC */ 1329229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1330229997Sken 1331229997Sken/* CD */ 1332229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1333229997Sken 1334229997Sken/* CE */ 1335229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1336229997Sken 1337229997Sken/* CF */ 1338229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1339229997Sken 1340229997Sken/* D0 */ 1341229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1342229997Sken 1343229997Sken/* D1 */ 1344229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1345229997Sken 1346229997Sken/* D2 */ 1347229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1348229997Sken 1349229997Sken/* D3 */ 1350229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1351229997Sken 1352229997Sken/* D4 */ 1353229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1354229997Sken 1355229997Sken/* D5 */ 1356229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1357229997Sken 1358229997Sken/* D6 */ 1359229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1360229997Sken 1361229997Sken/* D7 */ 1362229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1363229997Sken 1364229997Sken/* D8 */ 1365229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1366229997Sken 1367229997Sken/* D9 */ 1368229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1369229997Sken 1370229997Sken/* DA */ 1371229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1372229997Sken 1373229997Sken/* DB */ 1374229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1375229997Sken 1376229997Sken/* DC */ 1377229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1378229997Sken 1379229997Sken/* DD */ 1380229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1381229997Sken 1382229997Sken/* DE */ 1383229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1384229997Sken 1385229997Sken/* DF */ 1386229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1387229997Sken 1388229997Sken/* E0 */ 1389229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1390229997Sken 1391229997Sken/* E1 */ 1392229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1393229997Sken 1394229997Sken/* E2 */ 1395229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1396229997Sken 1397229997Sken/* E3 */ 1398229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1399229997Sken 1400229997Sken/* E4 */ 1401229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1402229997Sken 1403229997Sken/* E5 */ 1404229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1405229997Sken 1406229997Sken/* E6 */ 1407229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1408229997Sken 1409229997Sken/* E7 */ 1410229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1411229997Sken 1412229997Sken/* E8 */ 1413229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1414229997Sken 1415229997Sken/* E9 */ 1416229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1417229997Sken 1418229997Sken/* EA */ 1419229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1420229997Sken 1421229997Sken/* EB */ 1422229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1423229997Sken 1424229997Sken/* EC */ 1425229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1426229997Sken 1427229997Sken/* ED */ 1428229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1429229997Sken 1430229997Sken/* EE */ 1431229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1432229997Sken 1433229997Sken/* EF */ 1434229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1435229997Sken 1436229997Sken/* F0 */ 1437229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1438229997Sken 1439229997Sken/* F1 */ 1440229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1441229997Sken 1442229997Sken/* F2 */ 1443229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1444229997Sken 1445229997Sken/* F3 */ 1446229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1447229997Sken 1448229997Sken/* F4 */ 1449229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1450229997Sken 1451229997Sken/* F5 */ 1452229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1453229997Sken 1454229997Sken/* F6 */ 1455229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1456229997Sken 1457229997Sken/* F7 */ 1458229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1459229997Sken 1460229997Sken/* F8 */ 1461229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1462229997Sken 1463229997Sken/* F9 */ 1464229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1465229997Sken 1466229997Sken/* FA */ 1467229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1468229997Sken 1469229997Sken/* FB */ 1470229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1471229997Sken 1472229997Sken/* FC */ 1473229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1474229997Sken 1475229997Sken/* FD */ 1476229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1477229997Sken 1478229997Sken/* FE */ 1479229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1480229997Sken 1481229997Sken/* FF */ 1482229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 1483229997Sken 1484229997Sken}; 1485