ctl_cmd_table.c revision 274562
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 274562 2014-11-16 01:47:43Z 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 */ 183274562Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 184274562Smav CTL_CMD_FLAG_OK_ON_BOTH | 185274562Smav CTL_CMD_FLAG_OK_ON_STOPPED | 186274562Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 187274562Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 188274562Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 189274562Smav CTL_FLAG_DATA_OUT | 190274562Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 191274562Smav CTL_LUN_PAT_NONE, 192274562Smav 10, { 0x05, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 193268674Smav 194268674Smav/* 06 REGISTER AND IGNORE EXISTING KEY */ 195269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 196269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 197269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 198269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 199273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 200269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 201269295Smav CTL_FLAG_DATA_OUT | 202269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 203268674Smav CTL_LUN_PAT_NONE, 204268674Smav 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 205268674Smav 206268674Smav/* 07 REGISTER AND MOVE */ 207268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 208268674Smav 209268674Smav/* 08-1f */ 210268674Smav}; 211268674Smav 212269296Smav/* 83 EXTENDED COPY */ 213269296Smavconst struct ctl_cmd_entry ctl_cmd_table_83[32] = 214269296Smav{ 215269296Smav/* 00 EXTENDED COPY (LID1) */ 216269296Smav{ctl_extended_copy_lid1, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 217269296Smav CTL_FLAG_DATA_OUT, 218269296Smav CTL_LUN_PAT_NONE, 219269296Smav 16, { 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 220269296Smav 221269296Smav/* 01 EXTENDED COPY (LID4) */ 222269296Smav{ctl_extended_copy_lid4, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 223269296Smav CTL_FLAG_DATA_OUT, 224269296Smav CTL_LUN_PAT_NONE, 225269296Smav 16, { 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 226269296Smav 227269296Smav/* 02 */ 228269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 229269296Smav 230269296Smav/* 03 */ 231269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 232269296Smav 233269296Smav/* 04 */ 234269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 235269296Smav 236269296Smav/* 05 */ 237269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 238269296Smav 239269296Smav/* 06 */ 240269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 241269296Smav 242269296Smav/* 07 */ 243269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 244269296Smav 245269296Smav/* 08 */ 246269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 247269296Smav 248269296Smav/* 09 */ 249269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 250269296Smav 251269296Smav/* 0A */ 252269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 253269296Smav 254269296Smav/* 0B */ 255269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 256269296Smav 257269296Smav/* 0C */ 258269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 259269296Smav 260269296Smav/* 0D */ 261269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 262269296Smav 263269296Smav/* 0E */ 264269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 265269296Smav 266269296Smav/* 0F */ 267269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 268269296Smav 269269296Smav/* 10 POPULATE TOKEN */ 270270106Smav{ctl_populate_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 271274003Smav CTL_FLAG_DATA_OUT | 272274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 273270106Smav CTL_LUN_PAT_NONE, 274270106Smav 16, { 0x10, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 275270106Smav 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 276269296Smav 277269296Smav/* 11 WRITE USING TOKEN */ 278270106Smav{ctl_write_using_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 279270106Smav CTL_FLAG_DATA_OUT, 280270106Smav CTL_LUN_PAT_NONE, 281270106Smav 16, { 0x11, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 282270106Smav 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 283269296Smav 284269296Smav/* 12 */ 285269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 286269296Smav 287269296Smav/* 13 */ 288269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 289269296Smav 290269296Smav/* 14 */ 291269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 292269296Smav 293269296Smav/* 15 */ 294269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 295269296Smav 296269296Smav/* 16 */ 297269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 298269296Smav 299269296Smav/* 17 */ 300269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 301269296Smav 302269296Smav/* 18 */ 303269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 304269296Smav 305269296Smav/* 19 */ 306269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 307269296Smav 308269296Smav/* 1A */ 309269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 310269296Smav 311269296Smav/* 1B */ 312269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 313269296Smav 314269296Smav/* 1C COPY OPERATION ABORT */ 315269296Smav{ctl_copy_operation_abort, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 316269296Smav CTL_FLAG_DATA_NONE, 317269296Smav CTL_LUN_PAT_NONE, 318269296Smav 16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 319269296Smav}; 320269296Smav 321269296Smav/* 84 RECEIVE COPY STATUS */ 322269296Smavconst struct ctl_cmd_entry ctl_cmd_table_84[32] = 323269296Smav{ 324269296Smav/* 00 RECEIVE COPY STATUS (LID1) */ 325269296Smav{ctl_receive_copy_status_lid1, CTL_SERIDX_RD_CAP, 326269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 327272633Smav CTL_FLAG_DATA_IN | 328272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 329269296Smav CTL_LUN_PAT_NONE, 330269296Smav 16, {0x00, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 331269296Smav 332269296Smav/* 01 RECEIVE COPY DATA (LID1) */ 333269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 334269296Smav 335269296Smav/* 02 */ 336269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 337269296Smav 338269296Smav/* 03 RECEIVE COPY OPERATING PARAMETERS */ 339269296Smav{ctl_receive_copy_operating_parameters, CTL_SERIDX_RD_CAP, 340269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 341269296Smav CTL_CMD_FLAG_OK_ON_STOPPED | 342269296Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 343269296Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 344272633Smav CTL_FLAG_DATA_IN | 345272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 346269296Smav CTL_LUN_PAT_NONE, 347269296Smav 16, {0x03, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 348269296Smav 349269296Smav/* 04 RECEIVE COPY FAILURE DETAILS (LID1) */ 350269296Smav{ctl_receive_copy_failure_details, CTL_SERIDX_RD_CAP, 351269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 352272633Smav CTL_FLAG_DATA_IN | 353272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 354269296Smav CTL_LUN_PAT_NONE, 355269296Smav 16, {0x04, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 356269296Smav 357269296Smav/* 05 RECEIVE COPY STATUS (LID4) */ 358269296Smav{ctl_receive_copy_status_lid4, CTL_SERIDX_RD_CAP, 359269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 360274003Smav CTL_FLAG_DATA_IN | 361274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 362269296Smav CTL_LUN_PAT_NONE, 363269296Smav 16, {0x05, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 364269296Smav 365269296Smav/* 06 RECEIVE COPY DATA (LID4)*/ 366269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 367269296Smav 368269296Smav/* 07 RECEIVE ROD TOKEN INFORMATION */ 369270106Smav{ctl_receive_rod_token_information, CTL_SERIDX_RD_CAP, 370270106Smav CTL_CMD_FLAG_OK_ON_BOTH | 371274003Smav CTL_FLAG_DATA_IN | 372274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 373270106Smav CTL_LUN_PAT_NONE, 374270106Smav 16, {0x07, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 375269296Smav 376269296Smav/* 08 REPORT ALL ROD TOKENS */ 377270106Smav{ctl_report_all_rod_tokens, CTL_SERIDX_RD_CAP, 378270106Smav CTL_CMD_FLAG_OK_ON_BOTH | 379274003Smav CTL_FLAG_DATA_IN | 380274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 381270106Smav CTL_LUN_PAT_NONE, 382270106Smav 16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 383269296Smav}; 384269296Smav 385268674Smav/* 9E SERVICE ACTION IN(16) */ 386268674Smavconst struct ctl_cmd_entry ctl_cmd_table_9e[32] = 387268674Smav{ 388268674Smav/* 00 */ 389268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 390268674Smav 391268674Smav/* 01 */ 392268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 393268674Smav 394268674Smav/* 02 */ 395268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 396268674Smav 397268674Smav/* 03 */ 398268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 399268674Smav 400268674Smav/* 04 */ 401268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 402268674Smav 403268674Smav/* 05 */ 404268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 405268674Smav 406268674Smav/* 06 */ 407268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 408268674Smav 409268674Smav/* 07 */ 410268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 411268674Smav 412268674Smav/* 08 */ 413268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 414268674Smav 415268674Smav/* 09 */ 416268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 417268674Smav 418268674Smav/* 0A */ 419268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 420268674Smav 421268674Smav/* 0B */ 422268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 423268674Smav 424268674Smav/* 0C */ 425268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 426268674Smav 427268674Smav/* 0D */ 428268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 429268674Smav 430268674Smav/* 0E */ 431268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 432268674Smav 433268674Smav/* 0F */ 434268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 435268674Smav 436268674Smav/* 10 */ 437268674Smav{ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 438268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 439268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 440268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 441268674Smav CTL_FLAG_DATA_IN | 442268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 443268674Smav CTL_LUN_PAT_READCAP, 444268674Smav 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 445268674Smav 446268674Smav/* 11-1f */ 447268674Smav}; 448268674Smav 449268674Smav/* A3 MAINTENANCE IN */ 450268674Smavconst struct ctl_cmd_entry ctl_cmd_table_a3[32] = 451268674Smav{ 452268674Smav/* 00 */ 453268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 454268674Smav 455268674Smav/* 01 */ 456268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 457268674Smav 458268674Smav/* 02 */ 459268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 460268674Smav 461268674Smav/* 03 */ 462268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 463268674Smav 464268674Smav/* 04 */ 465268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 466268674Smav 467268674Smav/* 05 */ 468268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 469268674Smav 470268674Smav/* 06 */ 471268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 472268674Smav 473268674Smav/* 07 */ 474268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 475268674Smav 476268674Smav/* 08 */ 477268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 478268674Smav 479268674Smav/* 09 */ 480268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 481268674Smav 482268674Smav/* 0A REPORT TARGET PORT GROUPS */ 483269295Smav{ctl_report_tagret_port_groups, 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 | 488274003Smav CTL_FLAG_DATA_IN | 489274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 490268674Smav CTL_LUN_PAT_NONE, 491268674Smav 12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 492268674Smav 493268674Smav/* 0B */ 494268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 495268674Smav 496268674Smav/* 0C REPORT SUPPORTED_OPCODES */ 497269295Smav{ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 498269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 499269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 500273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 501269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 502272633Smav CTL_FLAG_DATA_IN | 503272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 504268674Smav CTL_LUN_PAT_NONE, 505268674Smav 12, {0x0c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 506268674Smav 507268674Smav/* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */ 508269295Smav{ctl_report_supported_tmf, 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 | 513272633Smav CTL_FLAG_DATA_IN | 514272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 515268674Smav CTL_LUN_PAT_NONE, 516268674Smav 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 517268674Smav 518268675Smav/* 0E */ 519268675Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 520268675Smav 521268675Smav/* 0F REPORT TIMESTAMP */ 522269295Smav{ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 523269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 524269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 525273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 526269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 527274003Smav CTL_FLAG_DATA_IN | 528274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 529268675Smav CTL_LUN_PAT_NONE, 530268675Smav 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 531268675Smav 532268675Smav/* 10-1f */ 533268674Smav}; 534268674Smav 535268674Smavconst struct ctl_cmd_entry ctl_cmd_table[256] = 536268674Smav{ 537229997Sken/* 00 TEST UNIT READY */ 538229997Sken{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 539229997Sken CTL_FLAG_DATA_NONE | 540229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 541268674Smav CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}}, 542229997Sken 543229997Sken/* 01 REWIND */ 544229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 545229997Sken 546229997Sken/* 02 */ 547229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 548229997Sken 549229997Sken/* 03 REQUEST SENSE */ 550229997Sken{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 551229997Sken CTL_CMD_FLAG_OK_ON_ALL_LUNS | 552229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 553229997Sken CTL_CMD_FLAG_NO_SENSE | 554229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 555229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 556229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 557229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 558229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 559268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}}, 560229997Sken 561229997Sken/* 04 FORMAT UNIT */ 562229997Sken{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN | 563229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 564229997Sken CTL_FLAG_DATA_OUT, 565268674Smav CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}}, 566229997Sken 567229997Sken/* 05 READ BLOCK LIMITS */ 568229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 569229997Sken 570229997Sken/* 06 */ 571229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 572229997Sken 573229997Sken/* 07 REASSIGN BLOCKS */ 574229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 575229997Sken 576229997Sken/* 08 READ(6) */ 577229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 578229997Sken CTL_FLAG_DATA_IN | 579274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 580268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 581229997Sken 582229997Sken/* 09 */ 583229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 584229997Sken 585229997Sken/* 0A WRITE(6) */ 586229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 587229997Sken CTL_FLAG_DATA_OUT, 588268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 589229997Sken 590229997Sken/* 0B SEEK(6) */ 591229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 592229997Sken 593229997Sken/* 0C */ 594229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 595229997Sken 596229997Sken/* 0D */ 597229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 598229997Sken 599229997Sken/* 0E */ 600229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 601229997Sken 602229997Sken/* 0F READ REVERSE(6) */ 603229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 604229997Sken 605229997Sken/* 10 WRITE FILEMARKS(6) */ 606229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 607229997Sken 608229997Sken/* 11 SPACE(6) */ 609229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 610229997Sken 611229997Sken/* 12 INQUIRY */ 612229997Sken{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 613229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 614229997Sken CTL_CMD_FLAG_NO_SENSE | 615229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 616229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 617229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 618229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 619229997Sken CTL_FLAG_DATA_IN | 620229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 621268674Smav CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}}, 622229997Sken 623229997Sken/* 13 */ 624229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 625229997Sken 626229997Sken/* 14 RECOVER BUFFERED DATA */ 627229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 628229997Sken 629229997Sken/* 15 MODE SELECT(6) */ 630229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 631229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 632229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 633273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 634229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 635229997Sken CTL_FLAG_DATA_OUT, 636268674Smav CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}}, 637229997Sken 638229997Sken/* 16 RESERVE(6) */ 639269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 640229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 641229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 642229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 643273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 644229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 645229997Sken CTL_FLAG_DATA_OUT, 646268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 647229997Sken 648229997Sken/* 17 RELEASE(6) */ 649269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 650229997Sken 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 | 655229997Sken CTL_FLAG_DATA_NONE, 656268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 657229997Sken 658229997Sken/* 18 COPY */ 659229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 660229997Sken 661229997Sken/* 19 ERASE(6) */ 662229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 663229997Sken 664229997Sken/* 1A MODE SENSE(6) */ 665229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 666229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 667229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 668273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 669229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 670268551Smav CTL_FLAG_DATA_IN | 671274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 672272635Smav CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0xff, 0xff, 0x07}}, 673229997Sken 674229997Sken/* 1B START STOP UNIT */ 675229997Sken{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 676229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 677229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 678229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 679229997Sken CTL_FLAG_DATA_NONE | 680229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 681268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}}, 682229997Sken 683229997Sken/* 1C RECEIVE DIAGNOSTIC RESULTS */ 684229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 685229997Sken 686229997Sken/* 1D SEND DIAGNOSTIC */ 687229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 688229997Sken 689229997Sken/* 1E PREVENT ALLOW MEDIUM REMOVAL */ 690229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 691229997Sken 692229997Sken/* 1F */ 693229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 694229997Sken 695229997Sken/* 20 */ 696229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 697229997Sken 698229997Sken/* 21 */ 699229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 700229997Sken 701229997Sken/* 22 */ 702229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 703229997Sken 704229997Sken/* 23 */ 705229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 706229997Sken 707229997Sken/* 24 SET WINDOW */ 708229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 709229997Sken 710229997Sken/* 25 READ CAPACITY(10) */ 711229997Sken{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN| 712229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 713229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 714229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 715229997Sken CTL_FLAG_DATA_IN | 716229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 717268674Smav CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 718229997Sken 719229997Sken/* 26 */ 720229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 721229997Sken 722229997Sken/* 27 */ 723229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 724229997Sken 725229997Sken/* 28 READ(10) */ 726229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 727229997Sken CTL_FLAG_DATA_IN | 728274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 729268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 730272638Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 731229997Sken 732229997Sken/* 29 READ GENERATION */ 733229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 734229997Sken 735229997Sken/* 2A WRITE(10) */ 736229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 737268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 738272638Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 739229997Sken 740229997Sken/* 2B SEEK(10) */ 741229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 742229997Sken 743229997Sken/* 2C ERASE(10) */ 744229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 745229997Sken 746229997Sken/* 2D READ UPDATED BLOCK */ 747229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 748229997Sken 749229997Sken/* 2E WRITE AND VERIFY(10) */ 750229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 751268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 752272642Smav 10, {0x12, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 753229997Sken 754229997Sken/* 2F VERIFY(10) */ 755268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 756268151Smav CTL_FLAG_DATA_OUT | 757274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 758268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 759268674Smav 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 760229997Sken 761229997Sken/* 30 SEARCH DATA HIGH(10) */ 762229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 763229997Sken 764229997Sken/* 31 SEARCH DATA EQUAL(10) */ 765229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 766229997Sken 767229997Sken/* 32 SEARCH DATA LOW(10) */ 768229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 769229997Sken 770229997Sken/* 33 SET LIMITS(10) */ 771229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 772229997Sken 773229997Sken/* 34 PRE-FETCH(10) */ 774229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 775229997Sken 776229997Sken/* 35 SYNCHRONIZE CACHE(10) */ 777229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 778229997Sken CTL_FLAG_DATA_NONE, 779268674Smav CTL_LUN_PAT_NONE, 780268674Smav 10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 781229997Sken 782229997Sken/* 36 LOCK UNLOCK CACHE(10) */ 783229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 784229997Sken 785229997Sken/* 37 READ DEFECT DATA(10) */ 786273323Smav{ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_SLUN | 787273323Smav CTL_FLAG_DATA_IN | 788274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 789273323Smav CTL_LUN_PAT_NONE, 790273323Smav 10, {0, 0x1f, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 791229997Sken 792229997Sken/* 38 MEDIUM SCAN */ 793229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 794229997Sken 795229997Sken/* 39 COMPARE */ 796229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 797229997Sken 798229997Sken/* 3A COPY AND VERIFY */ 799229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 800229997Sken 801229997Sken/* 3B WRITE BUFFER */ 802268550Smav{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 803268550Smav CTL_FLAG_DATA_OUT, 804268674Smav CTL_LUN_PAT_NONE, 805268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 806229997Sken 807229997Sken/* 3C READ BUFFER */ 808268550Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 809268550Smav CTL_FLAG_DATA_IN | 810274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 811268674Smav CTL_LUN_PAT_NONE, 812268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 813229997Sken 814229997Sken/* 3D UPDATE BLOCK */ 815229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 816229997Sken 817229997Sken/* 3E READ LONG */ 818229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 819229997Sken 820229997Sken/* 3F WRITE LONG */ 821229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 822229997Sken 823229997Sken/* 40 CHANGE DEFINITION */ 824229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 825229997Sken 826229997Sken/* 41 WRITE SAME(10) */ 827265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 828265634Smav CTL_FLAG_DATA_OUT, 829268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 830270108Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 831229997Sken 832265634Smav/* 42 READ SUB-CHANNEL / UNMAP */ 833265634Smav{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT, 834268674Smav CTL_LUN_PAT_WRITE, 835270108Smav 10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 836229997Sken 837229997Sken/* 43 READ TOC/PMA/ATIP */ 838229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 839229997Sken 840229997Sken/* 44 REPORT DENSITY SUPPORT */ 841229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 842229997Sken 843229997Sken/* 45 PLAY AUDIO(10) */ 844229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 845229997Sken 846229997Sken/* 46 GET CONFIGURATION */ 847229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 848229997Sken 849229997Sken/* 47 PLAY AUDIO MSF */ 850229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 851229997Sken 852229997Sken/* 48 PLAY AUDIO TRACK INDEX */ 853229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 854229997Sken 855229997Sken/* 49 PLAY TRACK RELATIVE(10) */ 856229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 857229997Sken 858229997Sken/* 4A GET EVENT STATUS NOTIFICATION */ 859229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 860229997Sken 861229997Sken/* 4B PAUSE/RESUME */ 862229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 863229997Sken 864229997Sken/* 4C LOG SELECT */ 865229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 866229997Sken 867229997Sken/* 4D LOG SENSE */ 868273977Smav{ctl_log_sense, CTL_SERIDX_LOG_SNS, CTL_CMD_FLAG_OK_ON_SLUN | 869273977Smav CTL_FLAG_DATA_IN | 870273977Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 871273977Smav CTL_LUN_PAT_NONE, 10, {0, 0xff, 0xff, 0, 0xff, 0xff, 0xff, 0xff, 0x07} }, 872229997Sken 873229997Sken/* 4E STOP PLAY/SCAN */ 874229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 875229997Sken 876229997Sken/* 4F */ 877229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 878229997Sken 879229997Sken/* 50 XDWRITE(10) */ 880229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 881229997Sken 882229997Sken/* 51 XPWRITE(10) */ 883229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 884229997Sken 885229997Sken/* 52 XDREAD(10) */ 886229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 887229997Sken 888229997Sken/* 53 RESERVE TRACK */ 889229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 890229997Sken 891229997Sken/* 54 SEND OPC INFORMATION */ 892229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 893229997Sken 894229997Sken/* 55 MODE SELECT(10) */ 895229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 896229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 897229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 898273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 899229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 900229997Sken CTL_FLAG_DATA_OUT, 901268674Smav CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 902229997Sken 903229997Sken/* 56 RESERVE(10) */ 904269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 905229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 906229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 907229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 908273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 909229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 910229997Sken CTL_FLAG_DATA_OUT, 911268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 912229997Sken 913229997Sken/* 57 RELEASE(10) */ 914269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 915229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 916229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 917229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 918273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 919229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 920229997Sken CTL_FLAG_DATA_OUT, 921268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 922229997Sken 923229997Sken/* 58 REPAIR TRACK */ 924229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 925229997Sken 926229997Sken/* 59 READ MASTER CUE */ 927229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 928229997Sken 929229997Sken/* 5A MODE SENSE(10) */ 930229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 931229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 932229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 933273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 934229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 935268551Smav CTL_FLAG_DATA_IN | 936274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 937272635Smav CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 938229997Sken 939229997Sken/* 5B CLOSE TRACK/SESSION */ 940229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 941229997Sken 942229997Sken/* 5C READ BUFFER CAPACITY */ 943229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 944229997Sken 945229997Sken/* 5D SEND CUE SHEET */ 946229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 947229997Sken 948229997Sken/* 5E PERSISTENT RESERVE IN */ 949268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 950229997Sken CTL_LUN_PAT_NONE}, 951229997Sken 952229997Sken/* 5F PERSISTENT RESERVE OUT */ 953268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 954229997Sken CTL_LUN_PAT_NONE}, 955229997Sken 956229997Sken/* 60 */ 957229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 958229997Sken 959229997Sken/* 61 */ 960229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 961229997Sken 962229997Sken/* 62 */ 963229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 964229997Sken 965229997Sken/* 63 */ 966229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 967229997Sken 968229997Sken/* 64 */ 969229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 970229997Sken 971229997Sken/* 65 */ 972229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 973229997Sken 974229997Sken/* 66 */ 975229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 976229997Sken 977229997Sken/* 67 */ 978229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 979229997Sken 980229997Sken/* 68 */ 981229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 982229997Sken 983229997Sken/* 69 */ 984229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 985229997Sken 986229997Sken/* 6A */ 987229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 988229997Sken 989229997Sken/* 6B */ 990229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 991229997Sken 992229997Sken/* 6C */ 993229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 994229997Sken 995229997Sken/* 6D */ 996229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 997229997Sken 998229997Sken/* 6E */ 999229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1000229997Sken 1001229997Sken/* 6F */ 1002229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1003229997Sken 1004229997Sken/* 70 */ 1005229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1006229997Sken 1007229997Sken/* 71 */ 1008229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1009229997Sken 1010229997Sken/* 72 */ 1011229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1012229997Sken 1013229997Sken/* 73 */ 1014229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1015229997Sken 1016229997Sken/* 74 */ 1017229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1018229997Sken 1019229997Sken/* 75 */ 1020229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1021229997Sken 1022229997Sken/* 76 */ 1023229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1024229997Sken 1025229997Sken/* 77 */ 1026229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1027229997Sken 1028229997Sken/* 78 */ 1029229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1030229997Sken 1031229997Sken/* 79 */ 1032229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1033229997Sken 1034229997Sken/* 7A */ 1035229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1036229997Sken 1037229997Sken/* 7B */ 1038229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1039229997Sken 1040229997Sken/* 7C */ 1041229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1042229997Sken 1043229997Sken/* 7D */ 1044229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1045229997Sken 1046229997Sken/* 7E */ 1047229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1048229997Sken 1049229997Sken/* 7F */ 1050229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1051229997Sken 1052229997Sken/* 80 XDWRITE EXTENDED(16) */ 1053229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1054229997Sken 1055229997Sken/* 81 REBUILD(16) */ 1056229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1057229997Sken 1058229997Sken/* 82 REGENERATE(16) */ 1059229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1060229997Sken 1061229997Sken/* 83 EXTENDED COPY */ 1062269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1063269296Smav CTL_LUN_PAT_NONE}, 1064229997Sken 1065229997Sken/* 84 RECEIVE COPY RESULTS */ 1066269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1067269296Smav CTL_LUN_PAT_NONE}, 1068229997Sken 1069229997Sken/* 85 */ 1070229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1071229997Sken 1072229997Sken/* 86 ACCESS CONTROL IN */ 1073229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1074229997Sken 1075229997Sken/* 87 ACCESS CONTROL OUT */ 1076229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1077229997Sken 1078229997Sken/* 88 READ(16) */ 1079229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 1080274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1081268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1082272638Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1083268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1084229997Sken 1085268151Smav/* 89 COMPARE AND WRITE */ 1086268151Smav{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1087268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1088268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1089268674Smav 0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}}, 1090229997Sken 1091229997Sken/* 8A WRITE(16) */ 1092229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1093268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1094272638Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1095268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1096229997Sken 1097229997Sken/* 8B */ 1098229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1099229997Sken 1100229997Sken/* 8C READ ATTRIBUTE */ 1101229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1102229997Sken 1103229997Sken/* 8D WRITE ATTRIBUTE */ 1104229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1105229997Sken 1106229997Sken/* 8E WRITE AND VERIFY(16) */ 1107229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1108268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1109272642Smav 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1110268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1111229997Sken 1112229997Sken/* 8F VERIFY(16) */ 1113268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 1114268151Smav CTL_FLAG_DATA_OUT | 1115274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1116268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1117268674Smav 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1118268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1119229997Sken 1120229997Sken/* 90 PRE-FETCH(16) */ 1121229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1122229997Sken 1123229997Sken/* 91 SYNCHRONIZE CACHE(16) */ 1124229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 1125229997Sken CTL_FLAG_DATA_NONE, 1126268674Smav CTL_LUN_PAT_NONE, 1127268674Smav 16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1128268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1129229997Sken 1130229997Sken/* 92 LOCK UNLOCK CACHE(16) */ 1131229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1132229997Sken 1133229997Sken/* 93 WRITE SAME(16) */ 1134265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 1135265634Smav CTL_FLAG_DATA_OUT, 1136268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1137272632Smav 16, {0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1138268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1139229997Sken 1140229997Sken/* 94 */ 1141229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1142229997Sken 1143229997Sken/* 95 */ 1144229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1145229997Sken 1146229997Sken/* 96 */ 1147229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1148229997Sken 1149229997Sken/* 97 */ 1150229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1151229997Sken 1152229997Sken/* 98 */ 1153229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1154229997Sken 1155229997Sken/* 99 */ 1156229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1157229997Sken 1158229997Sken/* 9A */ 1159229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1160229997Sken 1161229997Sken/* 9B */ 1162229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1163229997Sken 1164273311Smav/* 9C WRITE ATOMIC (16) */ 1165273311Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1166273311Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1167273311Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1168273311Smav 0xff, 0xff, 0, 0, 0xff, 0xff, 0, 0x07}}, 1169229997Sken 1170229997Sken/* 9D */ 1171229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1172229997Sken 1173229997Sken/* 9E SERVICE ACTION IN(16) */ 1174268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1175268674Smav CTL_LUN_PAT_NONE}, 1176229997Sken 1177229997Sken/* 9F SERVICE ACTION OUT(16) */ 1178229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1179229997Sken 1180229997Sken/* A0 REPORT LUNS */ 1181229997Sken{ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 1182229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 1183229997Sken CTL_CMD_FLAG_NO_SENSE | 1184229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 1185229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 1186229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 1187229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 1188229997Sken CTL_FLAG_DATA_IN | 1189229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1190268674Smav CTL_LUN_PAT_NONE, 1191268674Smav 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1192229997Sken 1193229997Sken/* A1 BLANK */ 1194229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1195229997Sken 1196229997Sken/* A2 SEND EVENT */ 1197229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1198229997Sken 1199268674Smav/* A3 MAINTENANCE IN */ 1200268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1201229997Sken CTL_LUN_PAT_NONE}, 1202229997Sken 1203268674Smav/* A4 MAINTENANCE OUT */ 1204229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1205229997Sken 1206229997Sken/* A5 MOVE MEDIUM */ 1207229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1208229997Sken 1209229997Sken/* A6 EXCHANGE MEDIUM */ 1210229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1211229997Sken 1212229997Sken/* A7 MOVE MEDIUM ATTACHED */ 1213229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1214229997Sken 1215229997Sken/* A8 READ(12) */ 1216229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 1217274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1218268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1219272638Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1220229997Sken 1221229997Sken/* A9 PLAY TRACK RELATIVE(12) */ 1222229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1223229997Sken 1224229997Sken/* AA WRITE(12) */ 1225229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1226268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1227272638Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1228229997Sken 1229229997Sken/* AB SERVICE ACTION IN(12) */ 1230229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1231229997Sken 1232229997Sken/* AC ERASE(12) */ 1233229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1234229997Sken 1235229997Sken/* AD READ DVD STRUCTURE */ 1236229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1237229997Sken 1238229997Sken/* AE WRITE AND VERIFY(12) */ 1239229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1240268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1241272642Smav 12, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1242229997Sken 1243229997Sken/* AF VERIFY(12) */ 1244268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 1245268151Smav CTL_FLAG_DATA_OUT | 1246274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1247268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1248268674Smav 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1249229997Sken 1250229997Sken/* B0 SEARCH DATA HIGH(12) */ 1251229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1252229997Sken 1253229997Sken/* B1 SEARCH DATA EQUAL(12) */ 1254229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1255229997Sken 1256229997Sken/* B2 SEARCH DATA LOW(12) */ 1257229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1258229997Sken 1259229997Sken/* B3 SET LIMITS(12) */ 1260229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1261229997Sken 1262229997Sken/* B4 READ ELEMENT STATUS ATTACHED */ 1263229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1264229997Sken 1265229997Sken/* B5 REQUEST VOLUME ELEMENT ADDRESS */ 1266229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1267229997Sken 1268229997Sken/* B6 SEND VOLUME TAG */ 1269229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1270229997Sken 1271229997Sken/* B7 READ DEFECT DATA(12) */ 1272273323Smav{ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_SLUN | 1273273323Smav CTL_FLAG_DATA_IN | 1274274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1275273323Smav CTL_LUN_PAT_NONE, 1276273323Smav 12, {0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1277229997Sken 1278229997Sken/* B8 READ ELEMENT STATUS */ 1279229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1280229997Sken 1281229997Sken/* B9 READ CD MSF */ 1282229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1283229997Sken 1284268674Smav/* BA REDUNDANCY GROUP IN */ 1285229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1286229997Sken 1287268674Smav/* BB REDUNDANCY GROUP OUT */ 1288229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1289229997Sken 1290268674Smav/* BC SPARE IN */ 1291229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1292229997Sken 1293268674Smav/* BD SPARE OUT */ 1294229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1295229997Sken 1296268674Smav/* BE VOLUME SET IN */ 1297229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1298229997Sken 1299268674Smav/* BF VOLUME SET OUT */ 1300229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1301229997Sken 1302229997Sken/* C0 - ISC_SEND_MSG_SHORT */ 1303229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1304229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE, 1305268674Smav CTL_LUN_PAT_NONE, 1306268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1307268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1308229997Sken 1309229997Sken/* C1 - ISC_SEND_MSG */ 1310229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1311229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1312268674Smav CTL_LUN_PAT_NONE, 1313268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1314268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1315229997Sken 1316229997Sken/* C2 - ISC_WRITE */ 1317229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1318229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1319268674Smav CTL_LUN_PAT_NONE, 1320268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1321268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1322229997Sken 1323229997Sken/* C3 - ISC_READ */ 1324229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1325229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN, 1326268674Smav CTL_LUN_PAT_NONE, 1327268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1328268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1329229997Sken 1330229997Sken/* C4 */ 1331229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1332229997Sken 1333229997Sken/* C5 */ 1334229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1335229997Sken 1336229997Sken/* C6 */ 1337229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1338229997Sken 1339229997Sken/* C7 */ 1340229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1341229997Sken 1342229997Sken/* C8 */ 1343229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1344229997Sken 1345229997Sken/* C9 */ 1346229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1347229997Sken 1348229997Sken/* CA */ 1349229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1350229997Sken 1351229997Sken/* CB */ 1352229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1353229997Sken 1354229997Sken/* CC */ 1355229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1356229997Sken 1357229997Sken/* CD */ 1358229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1359229997Sken 1360229997Sken/* CE */ 1361229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1362229997Sken 1363229997Sken/* CF */ 1364229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1365229997Sken 1366229997Sken/* D0 */ 1367229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1368229997Sken 1369229997Sken/* D1 */ 1370229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1371229997Sken 1372229997Sken/* D2 */ 1373229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1374229997Sken 1375229997Sken/* D3 */ 1376229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1377229997Sken 1378229997Sken/* D4 */ 1379229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1380229997Sken 1381229997Sken/* D5 */ 1382229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1383229997Sken 1384229997Sken/* D6 */ 1385229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1386229997Sken 1387229997Sken/* D7 */ 1388229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1389229997Sken 1390229997Sken/* D8 */ 1391229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1392229997Sken 1393229997Sken/* D9 */ 1394229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1395229997Sken 1396229997Sken/* DA */ 1397229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1398229997Sken 1399229997Sken/* DB */ 1400229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1401229997Sken 1402229997Sken/* DC */ 1403229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1404229997Sken 1405229997Sken/* DD */ 1406229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1407229997Sken 1408229997Sken/* DE */ 1409229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1410229997Sken 1411229997Sken/* DF */ 1412229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1413229997Sken 1414229997Sken/* E0 */ 1415229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1416229997Sken 1417229997Sken/* E1 */ 1418229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1419229997Sken 1420229997Sken/* E2 */ 1421229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1422229997Sken 1423229997Sken/* E3 */ 1424229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1425229997Sken 1426229997Sken/* E4 */ 1427229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1428229997Sken 1429229997Sken/* E5 */ 1430229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1431229997Sken 1432229997Sken/* E6 */ 1433229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1434229997Sken 1435229997Sken/* E7 */ 1436229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1437229997Sken 1438229997Sken/* E8 */ 1439229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1440229997Sken 1441229997Sken/* E9 */ 1442229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1443229997Sken 1444229997Sken/* EA */ 1445229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1446229997Sken 1447229997Sken/* EB */ 1448229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1449229997Sken 1450229997Sken/* EC */ 1451229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1452229997Sken 1453229997Sken/* ED */ 1454229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1455229997Sken 1456229997Sken/* EE */ 1457229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1458229997Sken 1459229997Sken/* EF */ 1460229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1461229997Sken 1462229997Sken/* F0 */ 1463229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1464229997Sken 1465229997Sken/* F1 */ 1466229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1467229997Sken 1468229997Sken/* F2 */ 1469229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1470229997Sken 1471229997Sken/* F3 */ 1472229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1473229997Sken 1474229997Sken/* F4 */ 1475229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1476229997Sken 1477229997Sken/* F5 */ 1478229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1479229997Sken 1480229997Sken/* F6 */ 1481229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1482229997Sken 1483229997Sken/* F7 */ 1484229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1485229997Sken 1486229997Sken/* F8 */ 1487229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1488229997Sken 1489229997Sken/* F9 */ 1490229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1491229997Sken 1492229997Sken/* FA */ 1493229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1494229997Sken 1495229997Sken/* FB */ 1496229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1497229997Sken 1498229997Sken/* FC */ 1499229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1500229997Sken 1501229997Sken/* FD */ 1502229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1503229997Sken 1504229997Sken/* FE */ 1505229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1506229997Sken 1507229997Sken/* FF */ 1508229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 1509229997Sken 1510229997Sken}; 1511