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: releng/10.2/sys/cam/ctl/ctl_cmd_table.c 276137 2014-12-23 12:41:28Z 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 436275892Smav/* 10 READ CAPACITY(16) */ 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 446275892Smav/* 11 */ 447275892Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 448275892Smav 449275892Smav/* 12 GET LBA STATUS */ 450275892Smav{ctl_get_lba_status, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 451275892Smav CTL_FLAG_DATA_IN | 452275892Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 453275892Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 454275892Smav 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 455275892Smav 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 456275892Smav 457275892Smav/* 13-1f */ 458268674Smav}; 459268674Smav 460268674Smav/* A3 MAINTENANCE IN */ 461268674Smavconst struct ctl_cmd_entry ctl_cmd_table_a3[32] = 462268674Smav{ 463268674Smav/* 00 */ 464268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 465268674Smav 466268674Smav/* 01 */ 467268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 468268674Smav 469268674Smav/* 02 */ 470268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 471268674Smav 472268674Smav/* 03 */ 473268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 474268674Smav 475268674Smav/* 04 */ 476268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 477268674Smav 478268674Smav/* 05 */ 479268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 480268674Smav 481268674Smav/* 06 */ 482268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 483268674Smav 484268674Smav/* 07 */ 485268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 486268674Smav 487268674Smav/* 08 */ 488268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 489268674Smav 490268674Smav/* 09 */ 491268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 492268674Smav 493268674Smav/* 0A REPORT TARGET PORT GROUPS */ 494269295Smav{ctl_report_tagret_port_groups, 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 | 499274003Smav CTL_FLAG_DATA_IN | 500274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 501268674Smav CTL_LUN_PAT_NONE, 502268674Smav 12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 503268674Smav 504268674Smav/* 0B */ 505268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 506268674Smav 507268674Smav/* 0C REPORT SUPPORTED_OPCODES */ 508269295Smav{ctl_report_supported_opcodes, 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, 516276137Smav 12, {0x0c, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 517268674Smav 518268674Smav/* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */ 519269295Smav{ctl_report_supported_tmf, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 520269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 521269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 522273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 523269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 524272633Smav CTL_FLAG_DATA_IN | 525272633Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 526268674Smav CTL_LUN_PAT_NONE, 527268674Smav 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 528268674Smav 529268675Smav/* 0E */ 530268675Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 531268675Smav 532268675Smav/* 0F REPORT TIMESTAMP */ 533269295Smav{ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 534269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 535269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 536273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 537269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 538274003Smav CTL_FLAG_DATA_IN | 539274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 540268675Smav CTL_LUN_PAT_NONE, 541268675Smav 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 542268675Smav 543268675Smav/* 10-1f */ 544268674Smav}; 545268674Smav 546268674Smavconst struct ctl_cmd_entry ctl_cmd_table[256] = 547268674Smav{ 548229997Sken/* 00 TEST UNIT READY */ 549229997Sken{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 550229997Sken CTL_FLAG_DATA_NONE | 551229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 552268674Smav CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}}, 553229997Sken 554229997Sken/* 01 REWIND */ 555229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 556229997Sken 557229997Sken/* 02 */ 558229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 559229997Sken 560229997Sken/* 03 REQUEST SENSE */ 561229997Sken{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 562229997Sken CTL_CMD_FLAG_OK_ON_ALL_LUNS | 563229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 564229997Sken CTL_CMD_FLAG_NO_SENSE | 565229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 566229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 567229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 568229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 569229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 570268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}}, 571229997Sken 572229997Sken/* 04 FORMAT UNIT */ 573229997Sken{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN | 574229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 575229997Sken CTL_FLAG_DATA_OUT, 576268674Smav CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}}, 577229997Sken 578229997Sken/* 05 READ BLOCK LIMITS */ 579229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 580229997Sken 581229997Sken/* 06 */ 582229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 583229997Sken 584229997Sken/* 07 REASSIGN BLOCKS */ 585229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 586229997Sken 587229997Sken/* 08 READ(6) */ 588229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 589229997Sken CTL_FLAG_DATA_IN | 590274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 591268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 592229997Sken 593229997Sken/* 09 */ 594229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 595229997Sken 596229997Sken/* 0A WRITE(6) */ 597229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 598229997Sken CTL_FLAG_DATA_OUT, 599268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 600229997Sken 601229997Sken/* 0B SEEK(6) */ 602229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 603229997Sken 604229997Sken/* 0C */ 605229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 606229997Sken 607229997Sken/* 0D */ 608229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 609229997Sken 610229997Sken/* 0E */ 611229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 612229997Sken 613229997Sken/* 0F READ REVERSE(6) */ 614229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 615229997Sken 616229997Sken/* 10 WRITE FILEMARKS(6) */ 617229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 618229997Sken 619229997Sken/* 11 SPACE(6) */ 620229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 621229997Sken 622229997Sken/* 12 INQUIRY */ 623229997Sken{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 624229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 625229997Sken CTL_CMD_FLAG_NO_SENSE | 626229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 627229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 628229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 629229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 630229997Sken CTL_FLAG_DATA_IN | 631229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 632268674Smav CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}}, 633229997Sken 634229997Sken/* 13 */ 635229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 636229997Sken 637229997Sken/* 14 RECOVER BUFFERED DATA */ 638229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 639229997Sken 640229997Sken/* 15 MODE SELECT(6) */ 641229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 642229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 643229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 644273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 645229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 646229997Sken CTL_FLAG_DATA_OUT, 647268674Smav CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}}, 648229997Sken 649229997Sken/* 16 RESERVE(6) */ 650269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 651229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 652229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 653229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 654273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 655229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 656229997Sken CTL_FLAG_DATA_OUT, 657268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 658229997Sken 659229997Sken/* 17 RELEASE(6) */ 660269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 661229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 662229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 663229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 664273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 665229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 666229997Sken CTL_FLAG_DATA_NONE, 667268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 668229997Sken 669229997Sken/* 18 COPY */ 670229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 671229997Sken 672229997Sken/* 19 ERASE(6) */ 673229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 674229997Sken 675229997Sken/* 1A MODE SENSE(6) */ 676229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 677229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 678229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 679273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 680229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 681268551Smav CTL_FLAG_DATA_IN | 682274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 683272635Smav CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0xff, 0xff, 0x07}}, 684229997Sken 685229997Sken/* 1B START STOP UNIT */ 686229997Sken{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 687229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 688229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 689229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 690229997Sken CTL_FLAG_DATA_NONE | 691229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 692268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}}, 693229997Sken 694229997Sken/* 1C RECEIVE DIAGNOSTIC RESULTS */ 695229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 696229997Sken 697229997Sken/* 1D SEND DIAGNOSTIC */ 698229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 699229997Sken 700229997Sken/* 1E PREVENT ALLOW MEDIUM REMOVAL */ 701229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 702229997Sken 703229997Sken/* 1F */ 704229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 705229997Sken 706229997Sken/* 20 */ 707229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 708229997Sken 709229997Sken/* 21 */ 710229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 711229997Sken 712229997Sken/* 22 */ 713229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 714229997Sken 715229997Sken/* 23 */ 716229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 717229997Sken 718229997Sken/* 24 SET WINDOW */ 719229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 720229997Sken 721229997Sken/* 25 READ CAPACITY(10) */ 722229997Sken{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN| 723229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 724229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 725229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 726229997Sken CTL_FLAG_DATA_IN | 727229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 728268674Smav CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 729229997Sken 730229997Sken/* 26 */ 731229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 732229997Sken 733229997Sken/* 27 */ 734229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 735229997Sken 736229997Sken/* 28 READ(10) */ 737229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 738229997Sken CTL_FLAG_DATA_IN | 739274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 740268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 741272638Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 742229997Sken 743229997Sken/* 29 READ GENERATION */ 744229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 745229997Sken 746229997Sken/* 2A WRITE(10) */ 747229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 748268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 749272638Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 750229997Sken 751229997Sken/* 2B SEEK(10) */ 752229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 753229997Sken 754229997Sken/* 2C ERASE(10) */ 755229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 756229997Sken 757229997Sken/* 2D READ UPDATED BLOCK */ 758229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 759229997Sken 760229997Sken/* 2E WRITE AND VERIFY(10) */ 761229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 762268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 763272642Smav 10, {0x12, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 764229997Sken 765229997Sken/* 2F VERIFY(10) */ 766268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 767268151Smav CTL_FLAG_DATA_OUT | 768274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 769268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 770268674Smav 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 771229997Sken 772229997Sken/* 30 SEARCH DATA HIGH(10) */ 773229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 774229997Sken 775229997Sken/* 31 SEARCH DATA EQUAL(10) */ 776229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 777229997Sken 778229997Sken/* 32 SEARCH DATA LOW(10) */ 779229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 780229997Sken 781229997Sken/* 33 SET LIMITS(10) */ 782229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 783229997Sken 784229997Sken/* 34 PRE-FETCH(10) */ 785229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 786229997Sken 787229997Sken/* 35 SYNCHRONIZE CACHE(10) */ 788229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 789229997Sken CTL_FLAG_DATA_NONE, 790268674Smav CTL_LUN_PAT_NONE, 791268674Smav 10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 792229997Sken 793229997Sken/* 36 LOCK UNLOCK CACHE(10) */ 794229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 795229997Sken 796229997Sken/* 37 READ DEFECT DATA(10) */ 797273323Smav{ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_SLUN | 798273323Smav CTL_FLAG_DATA_IN | 799274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 800273323Smav CTL_LUN_PAT_NONE, 801273323Smav 10, {0, 0x1f, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 802229997Sken 803229997Sken/* 38 MEDIUM SCAN */ 804229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 805229997Sken 806229997Sken/* 39 COMPARE */ 807229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 808229997Sken 809229997Sken/* 3A COPY AND VERIFY */ 810229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 811229997Sken 812229997Sken/* 3B WRITE BUFFER */ 813268550Smav{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 814275493Smav CTL_CMD_FLAG_OK_ON_STOPPED | 815275493Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 816275493Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 817268550Smav CTL_FLAG_DATA_OUT, 818268674Smav CTL_LUN_PAT_NONE, 819268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 820229997Sken 821229997Sken/* 3C READ BUFFER */ 822268550Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 823275493Smav CTL_CMD_FLAG_OK_ON_STOPPED | 824275493Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 825275493Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 826268550Smav CTL_FLAG_DATA_IN | 827274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 828268674Smav CTL_LUN_PAT_NONE, 829268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 830229997Sken 831229997Sken/* 3D UPDATE BLOCK */ 832229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 833229997Sken 834229997Sken/* 3E READ LONG */ 835229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 836229997Sken 837229997Sken/* 3F WRITE LONG */ 838229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 839229997Sken 840229997Sken/* 40 CHANGE DEFINITION */ 841229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 842229997Sken 843229997Sken/* 41 WRITE SAME(10) */ 844265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 845265634Smav CTL_FLAG_DATA_OUT, 846268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 847270108Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 848229997Sken 849265634Smav/* 42 READ SUB-CHANNEL / UNMAP */ 850265634Smav{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT, 851268674Smav CTL_LUN_PAT_WRITE, 852270108Smav 10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 853229997Sken 854229997Sken/* 43 READ TOC/PMA/ATIP */ 855229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 856229997Sken 857229997Sken/* 44 REPORT DENSITY SUPPORT */ 858229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 859229997Sken 860229997Sken/* 45 PLAY AUDIO(10) */ 861229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 862229997Sken 863229997Sken/* 46 GET CONFIGURATION */ 864229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 865229997Sken 866229997Sken/* 47 PLAY AUDIO MSF */ 867229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 868229997Sken 869229997Sken/* 48 PLAY AUDIO TRACK INDEX */ 870229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 871229997Sken 872229997Sken/* 49 PLAY TRACK RELATIVE(10) */ 873229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 874229997Sken 875229997Sken/* 4A GET EVENT STATUS NOTIFICATION */ 876229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 877229997Sken 878229997Sken/* 4B PAUSE/RESUME */ 879229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 880229997Sken 881229997Sken/* 4C LOG SELECT */ 882229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 883229997Sken 884229997Sken/* 4D LOG SENSE */ 885273977Smav{ctl_log_sense, CTL_SERIDX_LOG_SNS, CTL_CMD_FLAG_OK_ON_SLUN | 886273977Smav CTL_FLAG_DATA_IN | 887273977Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 888273977Smav CTL_LUN_PAT_NONE, 10, {0, 0xff, 0xff, 0, 0xff, 0xff, 0xff, 0xff, 0x07} }, 889229997Sken 890229997Sken/* 4E STOP PLAY/SCAN */ 891229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 892229997Sken 893229997Sken/* 4F */ 894229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 895229997Sken 896229997Sken/* 50 XDWRITE(10) */ 897229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 898229997Sken 899229997Sken/* 51 XPWRITE(10) */ 900229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 901229997Sken 902229997Sken/* 52 XDREAD(10) */ 903229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 904229997Sken 905229997Sken/* 53 RESERVE TRACK */ 906229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 907229997Sken 908229997Sken/* 54 SEND OPC INFORMATION */ 909229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 910229997Sken 911229997Sken/* 55 MODE SELECT(10) */ 912229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 913229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 914229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 915273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 916229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 917229997Sken CTL_FLAG_DATA_OUT, 918268674Smav CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 919229997Sken 920229997Sken/* 56 RESERVE(10) */ 921269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 922229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 923229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 924229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 925273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 926229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 927229997Sken CTL_FLAG_DATA_OUT, 928268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 929229997Sken 930229997Sken/* 57 RELEASE(10) */ 931269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 932229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 933229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 934229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 935273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 936229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 937229997Sken CTL_FLAG_DATA_OUT, 938268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 939229997Sken 940229997Sken/* 58 REPAIR TRACK */ 941229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 942229997Sken 943229997Sken/* 59 READ MASTER CUE */ 944229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 945229997Sken 946229997Sken/* 5A MODE SENSE(10) */ 947229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 948229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 949229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 950273315Smav CTL_CMD_FLAG_OK_ON_OFFLINE | 951229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 952268551Smav CTL_FLAG_DATA_IN | 953274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 954272635Smav CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 955229997Sken 956229997Sken/* 5B CLOSE TRACK/SESSION */ 957229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 958229997Sken 959229997Sken/* 5C READ BUFFER CAPACITY */ 960229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 961229997Sken 962229997Sken/* 5D SEND CUE SHEET */ 963229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 964229997Sken 965229997Sken/* 5E PERSISTENT RESERVE IN */ 966268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 967229997Sken CTL_LUN_PAT_NONE}, 968229997Sken 969229997Sken/* 5F PERSISTENT RESERVE OUT */ 970268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 971229997Sken CTL_LUN_PAT_NONE}, 972229997Sken 973229997Sken/* 60 */ 974229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 975229997Sken 976229997Sken/* 61 */ 977229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 978229997Sken 979229997Sken/* 62 */ 980229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 981229997Sken 982229997Sken/* 63 */ 983229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 984229997Sken 985229997Sken/* 64 */ 986229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 987229997Sken 988229997Sken/* 65 */ 989229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 990229997Sken 991229997Sken/* 66 */ 992229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 993229997Sken 994229997Sken/* 67 */ 995229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 996229997Sken 997229997Sken/* 68 */ 998229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 999229997Sken 1000229997Sken/* 69 */ 1001229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1002229997Sken 1003229997Sken/* 6A */ 1004229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1005229997Sken 1006229997Sken/* 6B */ 1007229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1008229997Sken 1009229997Sken/* 6C */ 1010229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1011229997Sken 1012229997Sken/* 6D */ 1013229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1014229997Sken 1015229997Sken/* 6E */ 1016229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1017229997Sken 1018229997Sken/* 6F */ 1019229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1020229997Sken 1021229997Sken/* 70 */ 1022229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1023229997Sken 1024229997Sken/* 71 */ 1025229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1026229997Sken 1027229997Sken/* 72 */ 1028229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1029229997Sken 1030229997Sken/* 73 */ 1031229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1032229997Sken 1033229997Sken/* 74 */ 1034229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1035229997Sken 1036229997Sken/* 75 */ 1037229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1038229997Sken 1039229997Sken/* 76 */ 1040229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1041229997Sken 1042229997Sken/* 77 */ 1043229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1044229997Sken 1045229997Sken/* 78 */ 1046229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1047229997Sken 1048229997Sken/* 79 */ 1049229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1050229997Sken 1051229997Sken/* 7A */ 1052229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1053229997Sken 1054229997Sken/* 7B */ 1055229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1056229997Sken 1057229997Sken/* 7C */ 1058229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1059229997Sken 1060229997Sken/* 7D */ 1061229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1062229997Sken 1063229997Sken/* 7E */ 1064229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1065229997Sken 1066229997Sken/* 7F */ 1067229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1068229997Sken 1069229997Sken/* 80 XDWRITE EXTENDED(16) */ 1070229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1071229997Sken 1072229997Sken/* 81 REBUILD(16) */ 1073229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1074229997Sken 1075229997Sken/* 82 REGENERATE(16) */ 1076229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1077229997Sken 1078229997Sken/* 83 EXTENDED COPY */ 1079269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1080269296Smav CTL_LUN_PAT_NONE}, 1081229997Sken 1082229997Sken/* 84 RECEIVE COPY RESULTS */ 1083269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1084269296Smav CTL_LUN_PAT_NONE}, 1085229997Sken 1086229997Sken/* 85 */ 1087229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1088229997Sken 1089229997Sken/* 86 ACCESS CONTROL IN */ 1090229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1091229997Sken 1092229997Sken/* 87 ACCESS CONTROL OUT */ 1093229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1094229997Sken 1095229997Sken/* 88 READ(16) */ 1096229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 1097274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1098268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1099272638Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1100268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1101229997Sken 1102268151Smav/* 89 COMPARE AND WRITE */ 1103268151Smav{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1104268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1105268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1106268674Smav 0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}}, 1107229997Sken 1108229997Sken/* 8A WRITE(16) */ 1109229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1110268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1111272638Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1112268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1113229997Sken 1114229997Sken/* 8B */ 1115229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1116229997Sken 1117229997Sken/* 8C READ ATTRIBUTE */ 1118229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1119229997Sken 1120229997Sken/* 8D WRITE ATTRIBUTE */ 1121229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1122229997Sken 1123229997Sken/* 8E WRITE AND VERIFY(16) */ 1124229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1125268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1126272642Smav 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1127268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1128229997Sken 1129229997Sken/* 8F VERIFY(16) */ 1130268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 1131268151Smav CTL_FLAG_DATA_OUT | 1132274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1133268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1134268674Smav 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1135268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1136229997Sken 1137229997Sken/* 90 PRE-FETCH(16) */ 1138229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1139229997Sken 1140229997Sken/* 91 SYNCHRONIZE CACHE(16) */ 1141229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 1142229997Sken CTL_FLAG_DATA_NONE, 1143268674Smav CTL_LUN_PAT_NONE, 1144268674Smav 16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1145268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1146229997Sken 1147229997Sken/* 92 LOCK UNLOCK CACHE(16) */ 1148229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1149229997Sken 1150229997Sken/* 93 WRITE SAME(16) */ 1151265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 1152265634Smav CTL_FLAG_DATA_OUT, 1153268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1154272632Smav 16, {0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1155268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1156229997Sken 1157229997Sken/* 94 */ 1158229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1159229997Sken 1160229997Sken/* 95 */ 1161229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1162229997Sken 1163229997Sken/* 96 */ 1164229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1165229997Sken 1166229997Sken/* 97 */ 1167229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1168229997Sken 1169229997Sken/* 98 */ 1170229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1171229997Sken 1172229997Sken/* 99 */ 1173229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1174229997Sken 1175229997Sken/* 9A */ 1176229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1177229997Sken 1178229997Sken/* 9B */ 1179229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1180229997Sken 1181273311Smav/* 9C WRITE ATOMIC (16) */ 1182273311Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1183273311Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1184273311Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1185273311Smav 0xff, 0xff, 0, 0, 0xff, 0xff, 0, 0x07}}, 1186229997Sken 1187229997Sken/* 9D */ 1188229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1189229997Sken 1190229997Sken/* 9E SERVICE ACTION IN(16) */ 1191268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1192268674Smav CTL_LUN_PAT_NONE}, 1193229997Sken 1194229997Sken/* 9F SERVICE ACTION OUT(16) */ 1195229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1196229997Sken 1197229997Sken/* A0 REPORT LUNS */ 1198229997Sken{ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 1199229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 1200229997Sken CTL_CMD_FLAG_NO_SENSE | 1201229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 1202229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 1203229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 1204229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 1205229997Sken CTL_FLAG_DATA_IN | 1206229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1207268674Smav CTL_LUN_PAT_NONE, 1208268674Smav 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1209229997Sken 1210229997Sken/* A1 BLANK */ 1211229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1212229997Sken 1213229997Sken/* A2 SEND EVENT */ 1214229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1215229997Sken 1216268674Smav/* A3 MAINTENANCE IN */ 1217268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1218229997Sken CTL_LUN_PAT_NONE}, 1219229997Sken 1220268674Smav/* A4 MAINTENANCE OUT */ 1221229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1222229997Sken 1223229997Sken/* A5 MOVE MEDIUM */ 1224229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1225229997Sken 1226229997Sken/* A6 EXCHANGE MEDIUM */ 1227229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1228229997Sken 1229229997Sken/* A7 MOVE MEDIUM ATTACHED */ 1230229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1231229997Sken 1232229997Sken/* A8 READ(12) */ 1233229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 1234274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1235268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1236272638Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1237229997Sken 1238229997Sken/* A9 PLAY TRACK RELATIVE(12) */ 1239229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1240229997Sken 1241229997Sken/* AA WRITE(12) */ 1242229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1243268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1244272638Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1245229997Sken 1246229997Sken/* AB SERVICE ACTION IN(12) */ 1247229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1248229997Sken 1249229997Sken/* AC ERASE(12) */ 1250229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1251229997Sken 1252229997Sken/* AD READ DVD STRUCTURE */ 1253229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1254229997Sken 1255229997Sken/* AE WRITE AND VERIFY(12) */ 1256229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1257268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1258272642Smav 12, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1259229997Sken 1260229997Sken/* AF VERIFY(12) */ 1261268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 1262268151Smav CTL_FLAG_DATA_OUT | 1263274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1264268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1265268674Smav 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1266229997Sken 1267229997Sken/* B0 SEARCH DATA HIGH(12) */ 1268229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1269229997Sken 1270229997Sken/* B1 SEARCH DATA EQUAL(12) */ 1271229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1272229997Sken 1273229997Sken/* B2 SEARCH DATA LOW(12) */ 1274229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1275229997Sken 1276229997Sken/* B3 SET LIMITS(12) */ 1277229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1278229997Sken 1279229997Sken/* B4 READ ELEMENT STATUS ATTACHED */ 1280229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1281229997Sken 1282229997Sken/* B5 REQUEST VOLUME ELEMENT ADDRESS */ 1283229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1284229997Sken 1285229997Sken/* B6 SEND VOLUME TAG */ 1286229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1287229997Sken 1288229997Sken/* B7 READ DEFECT DATA(12) */ 1289273323Smav{ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_SLUN | 1290273323Smav CTL_FLAG_DATA_IN | 1291274003Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1292273323Smav CTL_LUN_PAT_NONE, 1293273323Smav 12, {0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1294229997Sken 1295229997Sken/* B8 READ ELEMENT STATUS */ 1296229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1297229997Sken 1298229997Sken/* B9 READ CD MSF */ 1299229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1300229997Sken 1301268674Smav/* BA REDUNDANCY GROUP IN */ 1302229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1303229997Sken 1304268674Smav/* BB REDUNDANCY GROUP OUT */ 1305229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1306229997Sken 1307268674Smav/* BC SPARE IN */ 1308229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1309229997Sken 1310268674Smav/* BD SPARE OUT */ 1311229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1312229997Sken 1313268674Smav/* BE VOLUME SET IN */ 1314229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1315229997Sken 1316268674Smav/* BF VOLUME SET OUT */ 1317229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1318229997Sken 1319229997Sken/* C0 - ISC_SEND_MSG_SHORT */ 1320229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1321229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE, 1322268674Smav CTL_LUN_PAT_NONE, 1323268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1324268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1325229997Sken 1326229997Sken/* C1 - ISC_SEND_MSG */ 1327229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1328229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1329268674Smav CTL_LUN_PAT_NONE, 1330268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1331268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1332229997Sken 1333229997Sken/* C2 - ISC_WRITE */ 1334229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1335229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1336268674Smav CTL_LUN_PAT_NONE, 1337268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1338268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1339229997Sken 1340229997Sken/* C3 - ISC_READ */ 1341229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1342229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN, 1343268674Smav CTL_LUN_PAT_NONE, 1344268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1345268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1346229997Sken 1347229997Sken/* C4 */ 1348229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1349229997Sken 1350229997Sken/* C5 */ 1351229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1352229997Sken 1353229997Sken/* C6 */ 1354229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1355229997Sken 1356229997Sken/* C7 */ 1357229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1358229997Sken 1359229997Sken/* C8 */ 1360229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1361229997Sken 1362229997Sken/* C9 */ 1363229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1364229997Sken 1365229997Sken/* CA */ 1366229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1367229997Sken 1368229997Sken/* CB */ 1369229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1370229997Sken 1371229997Sken/* CC */ 1372229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1373229997Sken 1374229997Sken/* CD */ 1375229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1376229997Sken 1377229997Sken/* CE */ 1378229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1379229997Sken 1380229997Sken/* CF */ 1381229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1382229997Sken 1383229997Sken/* D0 */ 1384229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1385229997Sken 1386229997Sken/* D1 */ 1387229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1388229997Sken 1389229997Sken/* D2 */ 1390229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1391229997Sken 1392229997Sken/* D3 */ 1393229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1394229997Sken 1395229997Sken/* D4 */ 1396229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1397229997Sken 1398229997Sken/* D5 */ 1399229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1400229997Sken 1401229997Sken/* D6 */ 1402229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1403229997Sken 1404229997Sken/* D7 */ 1405229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1406229997Sken 1407229997Sken/* D8 */ 1408229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1409229997Sken 1410229997Sken/* D9 */ 1411229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1412229997Sken 1413229997Sken/* DA */ 1414229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1415229997Sken 1416229997Sken/* DB */ 1417229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1418229997Sken 1419229997Sken/* DC */ 1420229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1421229997Sken 1422229997Sken/* DD */ 1423229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1424229997Sken 1425229997Sken/* DE */ 1426229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1427229997Sken 1428229997Sken/* DF */ 1429229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1430229997Sken 1431229997Sken/* E0 */ 1432229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1433229997Sken 1434229997Sken/* E1 */ 1435229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1436229997Sken 1437229997Sken/* E2 */ 1438229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1439229997Sken 1440229997Sken/* E3 */ 1441229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1442229997Sken 1443229997Sken/* E4 */ 1444229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1445229997Sken 1446229997Sken/* E5 */ 1447229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1448229997Sken 1449229997Sken/* E6 */ 1450229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1451229997Sken 1452229997Sken/* E7 */ 1453229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1454229997Sken 1455229997Sken/* E8 */ 1456229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1457229997Sken 1458229997Sken/* E9 */ 1459229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1460229997Sken 1461229997Sken/* EA */ 1462229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1463229997Sken 1464229997Sken/* EB */ 1465229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1466229997Sken 1467229997Sken/* EC */ 1468229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1469229997Sken 1470229997Sken/* ED */ 1471229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1472229997Sken 1473229997Sken/* EE */ 1474229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1475229997Sken 1476229997Sken/* EF */ 1477229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1478229997Sken 1479229997Sken/* F0 */ 1480229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1481229997Sken 1482229997Sken/* F1 */ 1483229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1484229997Sken 1485229997Sken/* F2 */ 1486229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1487229997Sken 1488229997Sken/* F3 */ 1489229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1490229997Sken 1491229997Sken/* F4 */ 1492229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1493229997Sken 1494229997Sken/* F5 */ 1495229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1496229997Sken 1497229997Sken/* F6 */ 1498229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1499229997Sken 1500229997Sken/* F7 */ 1501229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1502229997Sken 1503229997Sken/* F8 */ 1504229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1505229997Sken 1506229997Sken/* F9 */ 1507229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1508229997Sken 1509229997Sken/* FA */ 1510229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1511229997Sken 1512229997Sken/* FB */ 1513229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1514229997Sken 1515229997Sken/* FC */ 1516229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1517229997Sken 1518229997Sken/* FD */ 1519229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1520229997Sken 1521229997Sken/* FE */ 1522229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1523229997Sken 1524229997Sken/* FF */ 1525229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 1526229997Sken 1527229997Sken}; 1528