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$ 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 | 73268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 74268674Smav CTL_FLAG_DATA_IN | 75268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 76268674Smav CTL_LUN_PAT_NONE, 77268674Smav 10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 78268674Smav 79268674Smav/* 01 READ RESERVATION */ 80269295Smav{ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 81268674Smav CTL_CMD_FLAG_OK_ON_BOTH | 82268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 83268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 84268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 85268674Smav CTL_FLAG_DATA_IN | 86268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 87268674Smav CTL_LUN_PAT_NONE, 88268674Smav 10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 89268674Smav 90268674Smav/* 02 REPORT CAPABILITIES */ 91268674Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 92268674Smav CTL_CMD_FLAG_OK_ON_BOTH | 93268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 94268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 95268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 96268674Smav CTL_FLAG_DATA_IN | 97268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 98268674Smav CTL_LUN_PAT_NONE, 99268674Smav 10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 100268674Smav 101268674Smav/* 03 READ FULL STATUS */ 102268694Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 103268694Smav CTL_CMD_FLAG_OK_ON_BOTH | 104268694Smav CTL_CMD_FLAG_OK_ON_STOPPED | 105268694Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 106268694Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 107268694Smav CTL_FLAG_DATA_IN | 108268694Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 109268694Smav CTL_LUN_PAT_NONE, 110268694Smav 10, { 0x03, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 111268674Smav 112268674Smav/* 04-1f */ 113268674Smav}; 114268674Smav 115268674Smav/* 5F PERSISTENT RESERVE OUT */ 116268674Smavconst struct ctl_cmd_entry ctl_cmd_table_5f[32] = 117268674Smav{ 118268674Smav/* 00 REGISTER */ 119269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 120269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 121269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 122269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 123269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 124269295Smav CTL_FLAG_DATA_OUT | 125269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 126268674Smav CTL_LUN_PAT_NONE, 127268674Smav 10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 128268674Smav 129268674Smav/* 01 RESERVE */ 130269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 131269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 132269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 133269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 134269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 135269295Smav CTL_FLAG_DATA_OUT | 136269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 137268674Smav CTL_LUN_PAT_NONE, 138268674Smav 10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 139268674Smav 140268674Smav/* 02 RELEASE */ 141269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 142269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 143269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 144269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 145269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 146269295Smav CTL_FLAG_DATA_OUT | 147269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 148268674Smav CTL_LUN_PAT_NONE, 149268674Smav 10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 150268674Smav 151268674Smav/* 03 CLEAR */ 152269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 153269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 154269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 155269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 156269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 157269295Smav CTL_FLAG_DATA_OUT | 158269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 159268674Smav CTL_LUN_PAT_NONE, 160268674Smav 10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 161268674Smav 162268674Smav/* 04 PREEMPT */ 163269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 164269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 165269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 166269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 167269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 168269295Smav CTL_FLAG_DATA_OUT | 169269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 170268674Smav CTL_LUN_PAT_NONE, 171268674Smav 10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 172268674Smav 173268674Smav/* 05 PREEMPT AND ABORT */ 174268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 175268674Smav 176268674Smav/* 06 REGISTER AND IGNORE EXISTING KEY */ 177269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 178269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 179269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 180269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 181269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 182269295Smav CTL_FLAG_DATA_OUT | 183269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 184268674Smav CTL_LUN_PAT_NONE, 185268674Smav 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 186268674Smav 187268674Smav/* 07 REGISTER AND MOVE */ 188268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 189268674Smav 190268674Smav/* 08-1f */ 191268674Smav}; 192268674Smav 193269296Smav/* 83 EXTENDED COPY */ 194269296Smavconst struct ctl_cmd_entry ctl_cmd_table_83[32] = 195269296Smav{ 196269296Smav/* 00 EXTENDED COPY (LID1) */ 197269296Smav{ctl_extended_copy_lid1, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 198269296Smav CTL_FLAG_DATA_OUT, 199269296Smav CTL_LUN_PAT_NONE, 200269296Smav 16, { 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 201269296Smav 202269296Smav/* 01 EXTENDED COPY (LID4) */ 203269296Smav{ctl_extended_copy_lid4, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 204269296Smav CTL_FLAG_DATA_OUT, 205269296Smav CTL_LUN_PAT_NONE, 206269296Smav 16, { 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 207269296Smav 208269296Smav/* 02 */ 209269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 210269296Smav 211269296Smav/* 03 */ 212269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 213269296Smav 214269296Smav/* 04 */ 215269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 216269296Smav 217269296Smav/* 05 */ 218269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 219269296Smav 220269296Smav/* 06 */ 221269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 222269296Smav 223269296Smav/* 07 */ 224269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 225269296Smav 226269296Smav/* 08 */ 227269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 228269296Smav 229269296Smav/* 09 */ 230269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 231269296Smav 232269296Smav/* 0A */ 233269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 234269296Smav 235269296Smav/* 0B */ 236269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 237269296Smav 238269296Smav/* 0C */ 239269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 240269296Smav 241269296Smav/* 0D */ 242269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 243269296Smav 244269296Smav/* 0E */ 245269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 246269296Smav 247269296Smav/* 0F */ 248269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 249269296Smav 250269296Smav/* 10 POPULATE TOKEN */ 251270106Smav{ctl_populate_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 252270106Smav CTL_FLAG_DATA_OUT, 253270106Smav CTL_LUN_PAT_NONE, 254270106Smav 16, { 0x10, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 255270106Smav 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 256269296Smav 257269296Smav/* 11 WRITE USING TOKEN */ 258270106Smav{ctl_write_using_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 259270106Smav CTL_FLAG_DATA_OUT, 260270106Smav CTL_LUN_PAT_NONE, 261270106Smav 16, { 0x11, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 262270106Smav 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 263269296Smav 264269296Smav/* 12 */ 265269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 266269296Smav 267269296Smav/* 13 */ 268269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 269269296Smav 270269296Smav/* 14 */ 271269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 272269296Smav 273269296Smav/* 15 */ 274269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 275269296Smav 276269296Smav/* 16 */ 277269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 278269296Smav 279269296Smav/* 17 */ 280269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 281269296Smav 282269296Smav/* 18 */ 283269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 284269296Smav 285269296Smav/* 19 */ 286269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 287269296Smav 288269296Smav/* 1A */ 289269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 290269296Smav 291269296Smav/* 1B */ 292269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 293269296Smav 294269296Smav/* 1C COPY OPERATION ABORT */ 295269296Smav{ctl_copy_operation_abort, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 296269296Smav CTL_FLAG_DATA_NONE, 297269296Smav CTL_LUN_PAT_NONE, 298269296Smav 16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 299269296Smav}; 300269296Smav 301269296Smav/* 84 RECEIVE COPY STATUS */ 302269296Smavconst struct ctl_cmd_entry ctl_cmd_table_84[32] = 303269296Smav{ 304269296Smav/* 00 RECEIVE COPY STATUS (LID1) */ 305269296Smav{ctl_receive_copy_status_lid1, CTL_SERIDX_RD_CAP, 306269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 307269296Smav CTL_FLAG_DATA_IN, 308269296Smav CTL_LUN_PAT_NONE, 309269296Smav 16, {0x00, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 310269296Smav 311269296Smav/* 01 RECEIVE COPY DATA (LID1) */ 312269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 313269296Smav 314269296Smav/* 02 */ 315269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 316269296Smav 317269296Smav/* 03 RECEIVE COPY OPERATING PARAMETERS */ 318269296Smav{ctl_receive_copy_operating_parameters, CTL_SERIDX_RD_CAP, 319269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 320269296Smav CTL_CMD_FLAG_OK_ON_STOPPED | 321269296Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 322269296Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 323269296Smav CTL_FLAG_DATA_IN, 324269296Smav CTL_LUN_PAT_NONE, 325269296Smav 16, {0x03, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 326269296Smav 327269296Smav/* 04 RECEIVE COPY FAILURE DETAILS (LID1) */ 328269296Smav{ctl_receive_copy_failure_details, CTL_SERIDX_RD_CAP, 329269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 330269296Smav CTL_FLAG_DATA_IN, 331269296Smav CTL_LUN_PAT_NONE, 332269296Smav 16, {0x04, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 333269296Smav 334269296Smav/* 05 RECEIVE COPY STATUS (LID4) */ 335269296Smav{ctl_receive_copy_status_lid4, CTL_SERIDX_RD_CAP, 336269296Smav CTL_CMD_FLAG_OK_ON_BOTH | 337269296Smav CTL_FLAG_DATA_IN, 338269296Smav CTL_LUN_PAT_NONE, 339269296Smav 16, {0x05, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 340269296Smav 341269296Smav/* 06 RECEIVE COPY DATA (LID4)*/ 342269296Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 343269296Smav 344269296Smav/* 07 RECEIVE ROD TOKEN INFORMATION */ 345270106Smav{ctl_receive_rod_token_information, CTL_SERIDX_RD_CAP, 346270106Smav CTL_CMD_FLAG_OK_ON_BOTH | 347270106Smav CTL_FLAG_DATA_IN, 348270106Smav CTL_LUN_PAT_NONE, 349270106Smav 16, {0x07, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 350269296Smav 351269296Smav/* 08 REPORT ALL ROD TOKENS */ 352270106Smav{ctl_report_all_rod_tokens, CTL_SERIDX_RD_CAP, 353270106Smav CTL_CMD_FLAG_OK_ON_BOTH | 354270106Smav CTL_FLAG_DATA_IN, 355270106Smav CTL_LUN_PAT_NONE, 356270106Smav 16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 357269296Smav}; 358269296Smav 359268674Smav/* 9E SERVICE ACTION IN(16) */ 360268674Smavconst struct ctl_cmd_entry ctl_cmd_table_9e[32] = 361268674Smav{ 362268674Smav/* 00 */ 363268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 364268674Smav 365268674Smav/* 01 */ 366268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 367268674Smav 368268674Smav/* 02 */ 369268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 370268674Smav 371268674Smav/* 03 */ 372268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 373268674Smav 374268674Smav/* 04 */ 375268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 376268674Smav 377268674Smav/* 05 */ 378268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 379268674Smav 380268674Smav/* 06 */ 381268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 382268674Smav 383268674Smav/* 07 */ 384268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 385268674Smav 386268674Smav/* 08 */ 387268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 388268674Smav 389268674Smav/* 09 */ 390268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 391268674Smav 392268674Smav/* 0A */ 393268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 394268674Smav 395268674Smav/* 0B */ 396268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 397268674Smav 398268674Smav/* 0C */ 399268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 400268674Smav 401268674Smav/* 0D */ 402268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 403268674Smav 404268674Smav/* 0E */ 405268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 406268674Smav 407268674Smav/* 0F */ 408268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 409268674Smav 410268674Smav/* 10 */ 411268674Smav{ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 412268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 413268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 414268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 415268674Smav CTL_FLAG_DATA_IN | 416268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 417268674Smav CTL_LUN_PAT_READCAP, 418268674Smav 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 419268674Smav 420268674Smav/* 11-1f */ 421268674Smav}; 422268674Smav 423268674Smav/* A3 MAINTENANCE IN */ 424268674Smavconst struct ctl_cmd_entry ctl_cmd_table_a3[32] = 425268674Smav{ 426268674Smav/* 00 */ 427268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 428268674Smav 429268674Smav/* 01 */ 430268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 431268674Smav 432268674Smav/* 02 */ 433268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 434268674Smav 435268674Smav/* 03 */ 436268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 437268674Smav 438268674Smav/* 04 */ 439268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 440268674Smav 441268674Smav/* 05 */ 442268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 443268674Smav 444268674Smav/* 06 */ 445268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 446268674Smav 447268674Smav/* 07 */ 448268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 449268674Smav 450268674Smav/* 08 */ 451268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 452268674Smav 453268674Smav/* 09 */ 454268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 455268674Smav 456268674Smav/* 0A REPORT TARGET PORT GROUPS */ 457269295Smav{ctl_report_tagret_port_groups, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 458269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 459269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 460269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 461269295Smav CTL_FLAG_DATA_IN, 462268674Smav CTL_LUN_PAT_NONE, 463268674Smav 12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 464268674Smav 465268674Smav/* 0B */ 466268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 467268674Smav 468268674Smav/* 0C REPORT SUPPORTED_OPCODES */ 469269295Smav{ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 470269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 471269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 472269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 473269295Smav CTL_FLAG_DATA_IN, 474268674Smav CTL_LUN_PAT_NONE, 475268674Smav 12, {0x0c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 476268674Smav 477268674Smav/* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */ 478269295Smav{ctl_report_supported_tmf, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 479269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 480269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 481269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 482269295Smav CTL_FLAG_DATA_IN, 483268674Smav CTL_LUN_PAT_NONE, 484268674Smav 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 485268674Smav 486268675Smav/* 0E */ 487268675Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 488268675Smav 489268675Smav/* 0F REPORT TIMESTAMP */ 490269295Smav{ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 491269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 492269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 493269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 494269295Smav CTL_FLAG_DATA_IN, 495268675Smav CTL_LUN_PAT_NONE, 496268675Smav 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 497268675Smav 498268675Smav/* 10-1f */ 499268674Smav}; 500268674Smav 501268674Smavconst struct ctl_cmd_entry ctl_cmd_table[256] = 502268674Smav{ 503229997Sken/* 00 TEST UNIT READY */ 504229997Sken{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 505229997Sken CTL_FLAG_DATA_NONE | 506229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 507268674Smav CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}}, 508229997Sken 509229997Sken/* 01 REWIND */ 510229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 511229997Sken 512229997Sken/* 02 */ 513229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 514229997Sken 515229997Sken/* 03 REQUEST SENSE */ 516229997Sken{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 517229997Sken CTL_CMD_FLAG_OK_ON_ALL_LUNS | 518229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 519229997Sken CTL_CMD_FLAG_NO_SENSE | 520229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 521229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 522229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 523229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 524229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 525268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}}, 526229997Sken 527229997Sken/* 04 FORMAT UNIT */ 528229997Sken{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN | 529229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 530229997Sken CTL_FLAG_DATA_OUT, 531268674Smav CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}}, 532229997Sken 533229997Sken/* 05 READ BLOCK LIMITS */ 534229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 535229997Sken 536229997Sken/* 06 */ 537229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 538229997Sken 539229997Sken/* 07 REASSIGN BLOCKS */ 540229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 541229997Sken 542229997Sken/* 08 READ(6) */ 543229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 544229997Sken CTL_FLAG_DATA_IN | 545229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 546268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 547229997Sken 548229997Sken/* 09 */ 549229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 550229997Sken 551229997Sken/* 0A WRITE(6) */ 552229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 553229997Sken CTL_FLAG_DATA_OUT, 554268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 555229997Sken 556229997Sken/* 0B SEEK(6) */ 557229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 558229997Sken 559229997Sken/* 0C */ 560229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 561229997Sken 562229997Sken/* 0D */ 563229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 564229997Sken 565229997Sken/* 0E */ 566229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 567229997Sken 568229997Sken/* 0F READ REVERSE(6) */ 569229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 570229997Sken 571229997Sken/* 10 WRITE FILEMARKS(6) */ 572229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 573229997Sken 574229997Sken/* 11 SPACE(6) */ 575229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 576229997Sken 577229997Sken/* 12 INQUIRY */ 578229997Sken{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 579229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 580229997Sken CTL_CMD_FLAG_NO_SENSE | 581229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 582229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 583229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 584229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 585229997Sken CTL_FLAG_DATA_IN | 586229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 587268674Smav CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}}, 588229997Sken 589229997Sken/* 13 */ 590229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 591229997Sken 592229997Sken/* 14 RECOVER BUFFERED DATA */ 593229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 594229997Sken 595229997Sken/* 15 MODE SELECT(6) */ 596229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 597229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 598229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 599229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 600229997Sken CTL_FLAG_DATA_OUT, 601268674Smav CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}}, 602229997Sken 603229997Sken/* 16 RESERVE(6) */ 604269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 605229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 606229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 607229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 608229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 609229997Sken CTL_FLAG_DATA_OUT, 610268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 611229997Sken 612229997Sken/* 17 RELEASE(6) */ 613269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 614229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 615229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 616229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 617229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 618229997Sken CTL_FLAG_DATA_NONE, 619268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 620229997Sken 621229997Sken/* 18 COPY */ 622229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 623229997Sken 624229997Sken/* 19 ERASE(6) */ 625229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 626229997Sken 627229997Sken/* 1A MODE SENSE(6) */ 628229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 629229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 630229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 631229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 632268551Smav CTL_FLAG_DATA_IN | 633268551Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 634268674Smav CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0, 0xff, 0x07}}, 635229997Sken 636229997Sken/* 1B START STOP UNIT */ 637229997Sken{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 638229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 639229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 640229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 641229997Sken CTL_FLAG_DATA_NONE | 642229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 643268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}}, 644229997Sken 645229997Sken/* 1C RECEIVE DIAGNOSTIC RESULTS */ 646229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 647229997Sken 648229997Sken/* 1D SEND DIAGNOSTIC */ 649229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 650229997Sken 651229997Sken/* 1E PREVENT ALLOW MEDIUM REMOVAL */ 652229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 653229997Sken 654229997Sken/* 1F */ 655229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 656229997Sken 657229997Sken/* 20 */ 658229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 659229997Sken 660229997Sken/* 21 */ 661229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 662229997Sken 663229997Sken/* 22 */ 664229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 665229997Sken 666229997Sken/* 23 */ 667229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 668229997Sken 669229997Sken/* 24 SET WINDOW */ 670229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 671229997Sken 672229997Sken/* 25 READ CAPACITY(10) */ 673229997Sken{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN| 674229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 675229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 676229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 677229997Sken CTL_FLAG_DATA_IN | 678229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 679268674Smav CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 680229997Sken 681229997Sken/* 26 */ 682229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 683229997Sken 684229997Sken/* 27 */ 685229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 686229997Sken 687229997Sken/* 28 READ(10) */ 688229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 689229997Sken CTL_FLAG_DATA_IN | 690229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 691268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 692268674Smav 10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 693229997Sken 694229997Sken/* 29 READ GENERATION */ 695229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 696229997Sken 697229997Sken/* 2A WRITE(10) */ 698229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 699268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 700268674Smav 10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 701229997Sken 702229997Sken/* 2B SEEK(10) */ 703229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 704229997Sken 705229997Sken/* 2C ERASE(10) */ 706229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 707229997Sken 708229997Sken/* 2D READ UPDATED BLOCK */ 709229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 710229997Sken 711229997Sken/* 2E WRITE AND VERIFY(10) */ 712229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 713268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 714268674Smav 10, {0x10, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 715229997Sken 716229997Sken/* 2F VERIFY(10) */ 717268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 718268151Smav CTL_FLAG_DATA_OUT | 719268151Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 720268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 721268674Smav 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 722229997Sken 723229997Sken/* 30 SEARCH DATA HIGH(10) */ 724229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 725229997Sken 726229997Sken/* 31 SEARCH DATA EQUAL(10) */ 727229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 728229997Sken 729229997Sken/* 32 SEARCH DATA LOW(10) */ 730229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 731229997Sken 732229997Sken/* 33 SET LIMITS(10) */ 733229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 734229997Sken 735229997Sken/* 34 PRE-FETCH(10) */ 736229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 737229997Sken 738229997Sken/* 35 SYNCHRONIZE CACHE(10) */ 739229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 740229997Sken CTL_FLAG_DATA_NONE, 741268674Smav CTL_LUN_PAT_NONE, 742268674Smav 10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 743229997Sken 744229997Sken/* 36 LOCK UNLOCK CACHE(10) */ 745229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 746229997Sken 747229997Sken/* 37 READ DEFECT DATA(10) */ 748229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 749229997Sken 750229997Sken/* 38 MEDIUM SCAN */ 751229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 752229997Sken 753229997Sken/* 39 COMPARE */ 754229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 755229997Sken 756229997Sken/* 3A COPY AND VERIFY */ 757229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 758229997Sken 759229997Sken/* 3B WRITE BUFFER */ 760268550Smav{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 761268550Smav CTL_FLAG_DATA_OUT, 762268674Smav CTL_LUN_PAT_NONE, 763268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 764229997Sken 765229997Sken/* 3C READ BUFFER */ 766268550Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 767268550Smav CTL_FLAG_DATA_IN | 768268550Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 769268674Smav CTL_LUN_PAT_NONE, 770268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 771229997Sken 772229997Sken/* 3D UPDATE BLOCK */ 773229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 774229997Sken 775229997Sken/* 3E READ LONG */ 776229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 777229997Sken 778229997Sken/* 3F WRITE LONG */ 779229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 780229997Sken 781229997Sken/* 40 CHANGE DEFINITION */ 782229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 783229997Sken 784229997Sken/* 41 WRITE SAME(10) */ 785265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 786265634Smav CTL_FLAG_DATA_OUT, 787268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 788270108Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 789229997Sken 790265634Smav/* 42 READ SUB-CHANNEL / UNMAP */ 791265634Smav{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT, 792268674Smav CTL_LUN_PAT_WRITE, 793270108Smav 10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 794229997Sken 795229997Sken/* 43 READ TOC/PMA/ATIP */ 796229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 797229997Sken 798229997Sken/* 44 REPORT DENSITY SUPPORT */ 799229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 800229997Sken 801229997Sken/* 45 PLAY AUDIO(10) */ 802229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 803229997Sken 804229997Sken/* 46 GET CONFIGURATION */ 805229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 806229997Sken 807229997Sken/* 47 PLAY AUDIO MSF */ 808229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 809229997Sken 810229997Sken/* 48 PLAY AUDIO TRACK INDEX */ 811229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 812229997Sken 813229997Sken/* 49 PLAY TRACK RELATIVE(10) */ 814229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 815229997Sken 816229997Sken/* 4A GET EVENT STATUS NOTIFICATION */ 817229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 818229997Sken 819229997Sken/* 4B PAUSE/RESUME */ 820229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 821229997Sken 822229997Sken/* 4C LOG SELECT */ 823229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 824229997Sken 825229997Sken/* 4D LOG SENSE */ 826229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 827229997Sken 828229997Sken/* 4E STOP PLAY/SCAN */ 829229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 830229997Sken 831229997Sken/* 4F */ 832229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 833229997Sken 834229997Sken/* 50 XDWRITE(10) */ 835229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 836229997Sken 837229997Sken/* 51 XPWRITE(10) */ 838229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 839229997Sken 840229997Sken/* 52 XDREAD(10) */ 841229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 842229997Sken 843229997Sken/* 53 RESERVE TRACK */ 844229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 845229997Sken 846229997Sken/* 54 SEND OPC INFORMATION */ 847229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 848229997Sken 849229997Sken/* 55 MODE SELECT(10) */ 850229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 851229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 852229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 853229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 854229997Sken CTL_FLAG_DATA_OUT, 855268674Smav CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 856229997Sken 857229997Sken/* 56 RESERVE(10) */ 858269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 859229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 860229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 861229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 862229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 863229997Sken CTL_FLAG_DATA_OUT, 864268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 865229997Sken 866229997Sken/* 57 RELEASE(10) */ 867269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 868229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 869229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 870229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 871229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 872229997Sken CTL_FLAG_DATA_OUT, 873268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 874229997Sken 875229997Sken/* 58 REPAIR TRACK */ 876229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 877229997Sken 878229997Sken/* 59 READ MASTER CUE */ 879229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 880229997Sken 881229997Sken/* 5A MODE SENSE(10) */ 882229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 883229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 884229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 885229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 886268551Smav CTL_FLAG_DATA_IN | 887268551Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 888268674Smav CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 889229997Sken 890229997Sken/* 5B CLOSE TRACK/SESSION */ 891229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 892229997Sken 893229997Sken/* 5C READ BUFFER CAPACITY */ 894229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 895229997Sken 896229997Sken/* 5D SEND CUE SHEET */ 897229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 898229997Sken 899229997Sken/* 5E PERSISTENT RESERVE IN */ 900268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 901229997Sken CTL_LUN_PAT_NONE}, 902229997Sken 903229997Sken/* 5F PERSISTENT RESERVE OUT */ 904268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 905229997Sken CTL_LUN_PAT_NONE}, 906229997Sken 907229997Sken/* 60 */ 908229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 909229997Sken 910229997Sken/* 61 */ 911229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 912229997Sken 913229997Sken/* 62 */ 914229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 915229997Sken 916229997Sken/* 63 */ 917229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 918229997Sken 919229997Sken/* 64 */ 920229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 921229997Sken 922229997Sken/* 65 */ 923229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 924229997Sken 925229997Sken/* 66 */ 926229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 927229997Sken 928229997Sken/* 67 */ 929229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 930229997Sken 931229997Sken/* 68 */ 932229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 933229997Sken 934229997Sken/* 69 */ 935229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 936229997Sken 937229997Sken/* 6A */ 938229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 939229997Sken 940229997Sken/* 6B */ 941229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 942229997Sken 943229997Sken/* 6C */ 944229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 945229997Sken 946229997Sken/* 6D */ 947229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 948229997Sken 949229997Sken/* 6E */ 950229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 951229997Sken 952229997Sken/* 6F */ 953229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 954229997Sken 955229997Sken/* 70 */ 956229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 957229997Sken 958229997Sken/* 71 */ 959229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 960229997Sken 961229997Sken/* 72 */ 962229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 963229997Sken 964229997Sken/* 73 */ 965229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 966229997Sken 967229997Sken/* 74 */ 968229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 969229997Sken 970229997Sken/* 75 */ 971229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 972229997Sken 973229997Sken/* 76 */ 974229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 975229997Sken 976229997Sken/* 77 */ 977229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 978229997Sken 979229997Sken/* 78 */ 980229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 981229997Sken 982229997Sken/* 79 */ 983229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 984229997Sken 985229997Sken/* 7A */ 986229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 987229997Sken 988229997Sken/* 7B */ 989229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 990229997Sken 991229997Sken/* 7C */ 992229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 993229997Sken 994229997Sken/* 7D */ 995229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 996229997Sken 997229997Sken/* 7E */ 998229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 999229997Sken 1000229997Sken/* 7F */ 1001229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1002229997Sken 1003229997Sken/* 80 XDWRITE EXTENDED(16) */ 1004229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1005229997Sken 1006229997Sken/* 81 REBUILD(16) */ 1007229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1008229997Sken 1009229997Sken/* 82 REGENERATE(16) */ 1010229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1011229997Sken 1012229997Sken/* 83 EXTENDED COPY */ 1013269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1014269296Smav CTL_LUN_PAT_NONE}, 1015229997Sken 1016229997Sken/* 84 RECEIVE COPY RESULTS */ 1017269296Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1018269296Smav CTL_LUN_PAT_NONE}, 1019229997Sken 1020229997Sken/* 85 */ 1021229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1022229997Sken 1023229997Sken/* 86 ACCESS CONTROL IN */ 1024229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1025229997Sken 1026229997Sken/* 87 ACCESS CONTROL OUT */ 1027229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1028229997Sken 1029229997Sken/* 88 READ(16) */ 1030229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 1031229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1032268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1033268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1034268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1035229997Sken 1036268151Smav/* 89 COMPARE AND WRITE */ 1037268151Smav{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1038268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1039268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1040268674Smav 0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}}, 1041229997Sken 1042229997Sken/* 8A WRITE(16) */ 1043229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1044268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1045268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1046268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1047229997Sken 1048229997Sken/* 8B */ 1049229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1050229997Sken 1051229997Sken/* 8C READ ATTRIBUTE */ 1052229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1053229997Sken 1054229997Sken/* 8D WRITE ATTRIBUTE */ 1055229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1056229997Sken 1057229997Sken/* 8E WRITE AND VERIFY(16) */ 1058229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1059268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1060268674Smav 16, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1061268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1062229997Sken 1063229997Sken/* 8F VERIFY(16) */ 1064268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 1065268151Smav CTL_FLAG_DATA_OUT | 1066268151Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1067268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1068268674Smav 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1069268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1070229997Sken 1071229997Sken/* 90 PRE-FETCH(16) */ 1072229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1073229997Sken 1074229997Sken/* 91 SYNCHRONIZE CACHE(16) */ 1075229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 1076229997Sken CTL_FLAG_DATA_NONE, 1077268674Smav CTL_LUN_PAT_NONE, 1078268674Smav 16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1079268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1080229997Sken 1081229997Sken/* 92 LOCK UNLOCK CACHE(16) */ 1082229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1083229997Sken 1084229997Sken/* 93 WRITE SAME(16) */ 1085265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 1086265634Smav CTL_FLAG_DATA_OUT, 1087268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1088270108Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1089268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1090229997Sken 1091229997Sken/* 94 */ 1092229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1093229997Sken 1094229997Sken/* 95 */ 1095229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1096229997Sken 1097229997Sken/* 96 */ 1098229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1099229997Sken 1100229997Sken/* 97 */ 1101229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1102229997Sken 1103229997Sken/* 98 */ 1104229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1105229997Sken 1106229997Sken/* 99 */ 1107229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1108229997Sken 1109229997Sken/* 9A */ 1110229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1111229997Sken 1112229997Sken/* 9B */ 1113229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1114229997Sken 1115229997Sken/* 9C */ 1116229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1117229997Sken 1118229997Sken/* 9D */ 1119229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1120229997Sken 1121229997Sken/* 9E SERVICE ACTION IN(16) */ 1122268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1123268674Smav CTL_LUN_PAT_NONE}, 1124229997Sken 1125229997Sken/* 9F SERVICE ACTION OUT(16) */ 1126229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1127229997Sken 1128229997Sken/* A0 REPORT LUNS */ 1129229997Sken{ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 1130229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 1131229997Sken CTL_CMD_FLAG_NO_SENSE | 1132229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 1133229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 1134229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 1135229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 1136229997Sken CTL_FLAG_DATA_IN | 1137229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1138268674Smav CTL_LUN_PAT_NONE, 1139268674Smav 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1140229997Sken 1141229997Sken/* A1 BLANK */ 1142229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1143229997Sken 1144229997Sken/* A2 SEND EVENT */ 1145229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1146229997Sken 1147268674Smav/* A3 MAINTENANCE IN */ 1148268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1149229997Sken CTL_LUN_PAT_NONE}, 1150229997Sken 1151268674Smav/* A4 MAINTENANCE OUT */ 1152229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1153229997Sken 1154229997Sken/* A5 MOVE MEDIUM */ 1155229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1156229997Sken 1157229997Sken/* A6 EXCHANGE MEDIUM */ 1158229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1159229997Sken 1160229997Sken/* A7 MOVE MEDIUM ATTACHED */ 1161229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1162229997Sken 1163229997Sken/* A8 READ(12) */ 1164229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 1165229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1166268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1167268674Smav 12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1168229997Sken 1169229997Sken/* A9 PLAY TRACK RELATIVE(12) */ 1170229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1171229997Sken 1172229997Sken/* AA WRITE(12) */ 1173229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1174268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1175268674Smav 12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1176229997Sken 1177229997Sken/* AB SERVICE ACTION IN(12) */ 1178229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1179229997Sken 1180229997Sken/* AC ERASE(12) */ 1181229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1182229997Sken 1183229997Sken/* AD READ DVD STRUCTURE */ 1184229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1185229997Sken 1186229997Sken/* AE WRITE AND VERIFY(12) */ 1187229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1188268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1189268674Smav 12, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1190229997Sken 1191229997Sken/* AF VERIFY(12) */ 1192268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 1193268151Smav CTL_FLAG_DATA_OUT | 1194268151Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1195268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1196268674Smav 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1197229997Sken 1198229997Sken/* B0 SEARCH DATA HIGH(12) */ 1199229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1200229997Sken 1201229997Sken/* B1 SEARCH DATA EQUAL(12) */ 1202229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1203229997Sken 1204229997Sken/* B2 SEARCH DATA LOW(12) */ 1205229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1206229997Sken 1207229997Sken/* B3 SET LIMITS(12) */ 1208229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1209229997Sken 1210229997Sken/* B4 READ ELEMENT STATUS ATTACHED */ 1211229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1212229997Sken 1213229997Sken/* B5 REQUEST VOLUME ELEMENT ADDRESS */ 1214229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1215229997Sken 1216229997Sken/* B6 SEND VOLUME TAG */ 1217229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1218229997Sken 1219229997Sken/* B7 READ DEFECT DATA(12) */ 1220229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1221229997Sken 1222229997Sken/* B8 READ ELEMENT STATUS */ 1223229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1224229997Sken 1225229997Sken/* B9 READ CD MSF */ 1226229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1227229997Sken 1228268674Smav/* BA REDUNDANCY GROUP IN */ 1229229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1230229997Sken 1231268674Smav/* BB REDUNDANCY GROUP OUT */ 1232229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1233229997Sken 1234268674Smav/* BC SPARE IN */ 1235229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1236229997Sken 1237268674Smav/* BD SPARE OUT */ 1238229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1239229997Sken 1240268674Smav/* BE VOLUME SET IN */ 1241229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1242229997Sken 1243268674Smav/* BF VOLUME SET OUT */ 1244229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1245229997Sken 1246229997Sken/* C0 - ISC_SEND_MSG_SHORT */ 1247229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1248229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE, 1249268674Smav CTL_LUN_PAT_NONE, 1250268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1251268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1252229997Sken 1253229997Sken/* C1 - ISC_SEND_MSG */ 1254229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1255229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1256268674Smav CTL_LUN_PAT_NONE, 1257268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1258268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1259229997Sken 1260229997Sken/* C2 - ISC_WRITE */ 1261229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1262229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1263268674Smav CTL_LUN_PAT_NONE, 1264268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1265268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1266229997Sken 1267229997Sken/* C3 - ISC_READ */ 1268229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1269229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN, 1270268674Smav CTL_LUN_PAT_NONE, 1271268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1272268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1273229997Sken 1274229997Sken/* C4 */ 1275229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1276229997Sken 1277229997Sken/* C5 */ 1278229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1279229997Sken 1280229997Sken/* C6 */ 1281229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1282229997Sken 1283229997Sken/* C7 */ 1284229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1285229997Sken 1286229997Sken/* C8 */ 1287229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1288229997Sken 1289229997Sken/* C9 */ 1290229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1291229997Sken 1292229997Sken/* CA */ 1293229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1294229997Sken 1295229997Sken/* CB */ 1296229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1297229997Sken 1298229997Sken/* CC */ 1299229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1300229997Sken 1301229997Sken/* CD */ 1302229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1303229997Sken 1304229997Sken/* CE */ 1305229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1306229997Sken 1307229997Sken/* CF */ 1308229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1309229997Sken 1310229997Sken/* D0 */ 1311229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1312229997Sken 1313229997Sken/* D1 */ 1314229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1315229997Sken 1316229997Sken/* D2 */ 1317229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1318229997Sken 1319229997Sken/* D3 */ 1320229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1321229997Sken 1322229997Sken/* D4 */ 1323229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1324229997Sken 1325229997Sken/* D5 */ 1326229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1327229997Sken 1328229997Sken/* D6 */ 1329229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1330229997Sken 1331229997Sken/* D7 */ 1332229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1333229997Sken 1334229997Sken/* D8 */ 1335229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1336229997Sken 1337229997Sken/* D9 */ 1338229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1339229997Sken 1340229997Sken/* DA */ 1341229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1342229997Sken 1343229997Sken/* DB */ 1344229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1345229997Sken 1346229997Sken/* DC */ 1347229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1348229997Sken 1349229997Sken/* DD */ 1350229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1351229997Sken 1352229997Sken/* DE */ 1353229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1354229997Sken 1355229997Sken/* DF */ 1356229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1357229997Sken 1358229997Sken/* E0 */ 1359229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1360229997Sken 1361229997Sken/* E1 */ 1362229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1363229997Sken 1364229997Sken/* E2 */ 1365229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1366229997Sken 1367229997Sken/* E3 */ 1368229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1369229997Sken 1370229997Sken/* E4 */ 1371229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1372229997Sken 1373229997Sken/* E5 */ 1374229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1375229997Sken 1376229997Sken/* E6 */ 1377229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1378229997Sken 1379229997Sken/* E7 */ 1380229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1381229997Sken 1382229997Sken/* E8 */ 1383229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1384229997Sken 1385229997Sken/* E9 */ 1386229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1387229997Sken 1388229997Sken/* EA */ 1389229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1390229997Sken 1391229997Sken/* EB */ 1392229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1393229997Sken 1394229997Sken/* EC */ 1395229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1396229997Sken 1397229997Sken/* ED */ 1398229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1399229997Sken 1400229997Sken/* EE */ 1401229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1402229997Sken 1403229997Sken/* EF */ 1404229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1405229997Sken 1406229997Sken/* F0 */ 1407229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1408229997Sken 1409229997Sken/* F1 */ 1410229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1411229997Sken 1412229997Sken/* F2 */ 1413229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1414229997Sken 1415229997Sken/* F3 */ 1416229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1417229997Sken 1418229997Sken/* F4 */ 1419229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1420229997Sken 1421229997Sken/* F5 */ 1422229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1423229997Sken 1424229997Sken/* F6 */ 1425229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1426229997Sken 1427229997Sken/* F7 */ 1428229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1429229997Sken 1430229997Sken/* F8 */ 1431229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1432229997Sken 1433229997Sken/* F9 */ 1434229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1435229997Sken 1436229997Sken/* FA */ 1437229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1438229997Sken 1439229997Sken/* FB */ 1440229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1441229997Sken 1442229997Sken/* FC */ 1443229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1444229997Sken 1445229997Sken/* FD */ 1446229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1447229997Sken 1448229997Sken/* FE */ 1449229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1450229997Sken 1451229997Sken/* FF */ 1452229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 1453229997Sken 1454229997Sken}; 1455