ctl_cmd_table.c revision 268675
1/*- 2 * Copyright (c) 2003, 2004, 2005, 2009 Silicon Graphics International Corp. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions, and the following disclaimer, 10 * without modification. 11 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 12 * substantially similar to the "NO WARRANTY" disclaimer below 13 * ("Disclaimer") and any redistribution must be conditioned upon 14 * including a substantially similar Disclaimer requirement for further 15 * binary redistribution. 16 * 17 * NO WARRANTY 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 26 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 27 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 * POSSIBILITY OF SUCH DAMAGES. 29 * 30 * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_cmd_table.c#4 $ 31 * $FreeBSD: stable/10/sys/cam/ctl/ctl_cmd_table.c 268675 2014-07-15 16:54:04Z mav $ 32 */ 33/* 34 * CAM Target Layer command table. 35 * 36 * Author: Ken Merry <ken@FreeBSD.org>, Kim Le 37 */ 38 39#include <sys/cdefs.h> 40#include <sys/param.h> 41#include <sys/systm.h> 42#include <sys/kernel.h> 43#include <sys/types.h> 44#include <sys/malloc.h> 45#include <sys/condvar.h> 46#include <sys/queue.h> 47#include <sys/sysctl.h> 48 49#include <cam/scsi/scsi_all.h> 50#include <cam/scsi/scsi_da.h> 51#include <cam/ctl/ctl_io.h> 52#include <cam/ctl/ctl.h> 53#include <cam/ctl/ctl_frontend.h> 54#include <cam/ctl/ctl_backend.h> 55#include <cam/ctl/ctl_frontend_internal.h> 56#include <cam/ctl/ctl_ioctl.h> 57#include <cam/ctl/ctl_ha.h> 58#include <cam/ctl/ctl_private.h> 59 60/* 61 * Whenever support for a new command is added, it should be added to these 62 * tables. 63 */ 64 65/* 5E PERSISTENT RESERVE IN */ 66const struct ctl_cmd_entry ctl_cmd_table_5e[32] = 67{ 68/* 00 READ KEYS */ 69{ctl_persistent_reserve_in, CTL_SERIDX_PRES_IN, CTL_CMD_FLAG_ALLOW_ON_RESV | 70 CTL_CMD_FLAG_OK_ON_BOTH | 71 CTL_CMD_FLAG_OK_ON_STOPPED | 72 CTL_CMD_FLAG_OK_ON_INOPERABLE | 73 CTL_CMD_FLAG_OK_ON_SECONDARY | 74 CTL_FLAG_DATA_IN | 75 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 76 CTL_LUN_PAT_NONE, 77 10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 78 79/* 01 READ RESERVATION */ 80{ctl_persistent_reserve_in, CTL_SERIDX_PRES_IN, CTL_CMD_FLAG_ALLOW_ON_RESV | 81 CTL_CMD_FLAG_OK_ON_BOTH | 82 CTL_CMD_FLAG_OK_ON_STOPPED | 83 CTL_CMD_FLAG_OK_ON_INOPERABLE | 84 CTL_CMD_FLAG_OK_ON_SECONDARY | 85 CTL_FLAG_DATA_IN | 86 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 87 CTL_LUN_PAT_NONE, 88 10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 89 90/* 02 REPORT CAPABILITIES */ 91{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 92 CTL_CMD_FLAG_OK_ON_BOTH | 93 CTL_CMD_FLAG_OK_ON_STOPPED | 94 CTL_CMD_FLAG_OK_ON_INOPERABLE | 95 CTL_CMD_FLAG_OK_ON_SECONDARY | 96 CTL_FLAG_DATA_IN | 97 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 98 CTL_LUN_PAT_NONE, 99 10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 100 101/* 03 READ FULL STATUS */ 102{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 103 104/* 04-1f */ 105}; 106 107/* 5F PERSISTENT RESERVE OUT */ 108const struct ctl_cmd_entry ctl_cmd_table_5f[32] = 109{ 110/* 00 REGISTER */ 111{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV | 112 CTL_CMD_FLAG_OK_ON_BOTH | 113 CTL_CMD_FLAG_OK_ON_STOPPED | 114 CTL_CMD_FLAG_OK_ON_INOPERABLE | 115 CTL_CMD_FLAG_OK_ON_SECONDARY | 116 CTL_FLAG_DATA_OUT | 117 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 118 CTL_LUN_PAT_NONE, 119 10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 120 121/* 01 RESERVE */ 122{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV | 123 CTL_CMD_FLAG_OK_ON_BOTH | 124 CTL_CMD_FLAG_OK_ON_STOPPED | 125 CTL_CMD_FLAG_OK_ON_INOPERABLE | 126 CTL_CMD_FLAG_OK_ON_SECONDARY | 127 CTL_FLAG_DATA_OUT | 128 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 129 CTL_LUN_PAT_NONE, 130 10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 131 132/* 02 RELEASE */ 133{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV | 134 CTL_CMD_FLAG_OK_ON_BOTH | 135 CTL_CMD_FLAG_OK_ON_STOPPED | 136 CTL_CMD_FLAG_OK_ON_INOPERABLE | 137 CTL_CMD_FLAG_OK_ON_SECONDARY | 138 CTL_FLAG_DATA_OUT | 139 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 140 CTL_LUN_PAT_NONE, 141 10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 142 143/* 03 CLEAR */ 144{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV | 145 CTL_CMD_FLAG_OK_ON_BOTH | 146 CTL_CMD_FLAG_OK_ON_STOPPED | 147 CTL_CMD_FLAG_OK_ON_INOPERABLE | 148 CTL_CMD_FLAG_OK_ON_SECONDARY | 149 CTL_FLAG_DATA_OUT | 150 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 151 CTL_LUN_PAT_NONE, 152 10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 153 154/* 04 PREEMPT */ 155{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV | 156 CTL_CMD_FLAG_OK_ON_BOTH | 157 CTL_CMD_FLAG_OK_ON_STOPPED | 158 CTL_CMD_FLAG_OK_ON_INOPERABLE | 159 CTL_CMD_FLAG_OK_ON_SECONDARY | 160 CTL_FLAG_DATA_OUT | 161 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 162 CTL_LUN_PAT_NONE, 163 10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 164 165/* 05 PREEMPT AND ABORT */ 166{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 167 168/* 06 REGISTER AND IGNORE EXISTING KEY */ 169{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV | 170 CTL_CMD_FLAG_OK_ON_BOTH | 171 CTL_CMD_FLAG_OK_ON_STOPPED | 172 CTL_CMD_FLAG_OK_ON_INOPERABLE | 173 CTL_CMD_FLAG_OK_ON_SECONDARY | 174 CTL_FLAG_DATA_OUT | 175 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 176 CTL_LUN_PAT_NONE, 177 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 178 179/* 07 REGISTER AND MOVE */ 180{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 181 182/* 08-1f */ 183}; 184 185/* 9E SERVICE ACTION IN(16) */ 186const struct ctl_cmd_entry ctl_cmd_table_9e[32] = 187{ 188/* 00 */ 189{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 190 191/* 01 */ 192{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 193 194/* 02 */ 195{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 196 197/* 03 */ 198{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 199 200/* 04 */ 201{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 202 203/* 05 */ 204{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 205 206/* 06 */ 207{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 208 209/* 07 */ 210{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 211 212/* 08 */ 213{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 214 215/* 09 */ 216{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 217 218/* 0A */ 219{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 220 221/* 0B */ 222{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 223 224/* 0C */ 225{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 226 227/* 0D */ 228{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 229 230/* 0E */ 231{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 232 233/* 0F */ 234{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 235 236/* 10 */ 237{ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 238 CTL_CMD_FLAG_OK_ON_STOPPED | 239 CTL_CMD_FLAG_OK_ON_INOPERABLE | 240 CTL_CMD_FLAG_OK_ON_SECONDARY | 241 CTL_FLAG_DATA_IN | 242 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 243 CTL_LUN_PAT_READCAP, 244 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 245 246/* 11-1f */ 247}; 248 249/* A3 MAINTENANCE IN */ 250const struct ctl_cmd_entry ctl_cmd_table_a3[32] = 251{ 252/* 00 */ 253{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 254 255/* 01 */ 256{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 257 258/* 02 */ 259{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 260 261/* 03 */ 262{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 263 264/* 04 */ 265{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 266 267/* 05 */ 268{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 269 270/* 06 */ 271{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 272 273/* 07 */ 274{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 275 276/* 08 */ 277{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 278 279/* 09 */ 280{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 281 282/* 0A REPORT TARGET PORT GROUPS */ 283{ctl_report_tagret_port_groups, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH | 284 CTL_CMD_FLAG_OK_ON_STOPPED | 285 CTL_CMD_FLAG_OK_ON_INOPERABLE | 286 CTL_CMD_FLAG_OK_ON_SECONDARY | 287 CTL_FLAG_DATA_IN, 288 CTL_LUN_PAT_NONE, 289 12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 290 291/* 0B */ 292{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 293 294/* 0C REPORT SUPPORTED_OPCODES */ 295{ctl_report_supported_opcodes, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH | 296 CTL_CMD_FLAG_OK_ON_STOPPED | 297 CTL_CMD_FLAG_OK_ON_INOPERABLE | 298 CTL_CMD_FLAG_OK_ON_SECONDARY | 299 CTL_FLAG_DATA_IN, 300 CTL_LUN_PAT_NONE, 301 12, {0x0c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 302 303/* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */ 304{ctl_report_supported_tmf, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH | 305 CTL_CMD_FLAG_OK_ON_STOPPED | 306 CTL_CMD_FLAG_OK_ON_INOPERABLE | 307 CTL_CMD_FLAG_OK_ON_SECONDARY | 308 CTL_FLAG_DATA_IN, 309 CTL_LUN_PAT_NONE, 310 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 311 312/* 0E */ 313{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 314 315/* 0F REPORT TIMESTAMP */ 316{ctl_report_timestamp, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH | 317 CTL_CMD_FLAG_OK_ON_STOPPED | 318 CTL_CMD_FLAG_OK_ON_INOPERABLE | 319 CTL_CMD_FLAG_OK_ON_SECONDARY | 320 CTL_FLAG_DATA_IN, 321 CTL_LUN_PAT_NONE, 322 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 323 324/* 10-1f */ 325}; 326 327const struct ctl_cmd_entry ctl_cmd_table[256] = 328{ 329/* 00 TEST UNIT READY */ 330{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 331 CTL_FLAG_DATA_NONE | 332 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 333 CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}}, 334 335/* 01 REWIND */ 336{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 337 338/* 02 */ 339{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 340 341/* 03 REQUEST SENSE */ 342{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 343 CTL_CMD_FLAG_OK_ON_ALL_LUNS | 344 CTL_CMD_FLAG_ALLOW_ON_RESV | 345 CTL_CMD_FLAG_NO_SENSE | 346 CTL_CMD_FLAG_OK_ON_STOPPED | 347 CTL_CMD_FLAG_OK_ON_INOPERABLE | 348 CTL_CMD_FLAG_OK_ON_OFFLINE | 349 CTL_CMD_FLAG_OK_ON_SECONDARY | 350 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 351 CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}}, 352 353/* 04 FORMAT UNIT */ 354{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN | 355 CTL_CMD_FLAG_OK_ON_INOPERABLE | 356 CTL_FLAG_DATA_OUT, 357 CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}}, 358 359/* 05 READ BLOCK LIMITS */ 360{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 361 362/* 06 */ 363{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 364 365/* 07 REASSIGN BLOCKS */ 366{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 367 368/* 08 READ(6) */ 369{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 370 CTL_FLAG_DATA_IN | 371 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 372 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 373 374/* 09 */ 375{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 376 377/* 0A WRITE(6) */ 378{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 379 CTL_FLAG_DATA_OUT, 380 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 381 382/* 0B SEEK(6) */ 383{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 384 385/* 0C */ 386{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 387 388/* 0D */ 389{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 390 391/* 0E */ 392{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 393 394/* 0F READ REVERSE(6) */ 395{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 396 397/* 10 WRITE FILEMARKS(6) */ 398{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 399 400/* 11 SPACE(6) */ 401{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 402 403/* 12 INQUIRY */ 404{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 405 CTL_CMD_FLAG_ALLOW_ON_RESV | 406 CTL_CMD_FLAG_NO_SENSE | 407 CTL_CMD_FLAG_OK_ON_STOPPED | 408 CTL_CMD_FLAG_OK_ON_INOPERABLE | 409 CTL_CMD_FLAG_OK_ON_OFFLINE | 410 CTL_CMD_FLAG_OK_ON_SECONDARY | 411 CTL_FLAG_DATA_IN | 412 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 413 CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}}, 414 415/* 13 */ 416{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 417 418/* 14 RECOVER BUFFERED DATA */ 419{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 420 421/* 15 MODE SELECT(6) */ 422{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 423 CTL_CMD_FLAG_OK_ON_STOPPED | 424 CTL_CMD_FLAG_OK_ON_INOPERABLE | 425 CTL_CMD_FLAG_OK_ON_SECONDARY | 426 CTL_FLAG_DATA_OUT, 427 CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}}, 428 429/* 16 RESERVE(6) */ 430{ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV | 431 CTL_CMD_FLAG_OK_ON_BOTH | 432 CTL_CMD_FLAG_OK_ON_STOPPED | 433 CTL_CMD_FLAG_OK_ON_INOPERABLE | 434 CTL_CMD_FLAG_OK_ON_SECONDARY | 435 CTL_FLAG_DATA_OUT, 436 CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 437 438/* 17 RELEASE(6) */ 439{ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV | 440 CTL_CMD_FLAG_OK_ON_BOTH | 441 CTL_CMD_FLAG_OK_ON_STOPPED | 442 CTL_CMD_FLAG_OK_ON_INOPERABLE | 443 CTL_CMD_FLAG_OK_ON_SECONDARY | 444 CTL_FLAG_DATA_NONE, 445 CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 446 447/* 18 COPY */ 448{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 449 450/* 19 ERASE(6) */ 451{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 452 453/* 1A MODE SENSE(6) */ 454{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 455 CTL_CMD_FLAG_OK_ON_STOPPED | 456 CTL_CMD_FLAG_OK_ON_INOPERABLE | 457 CTL_CMD_FLAG_OK_ON_SECONDARY | 458 CTL_FLAG_DATA_IN | 459 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 460 CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0, 0xff, 0x07}}, 461 462/* 1B START STOP UNIT */ 463{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 464 CTL_CMD_FLAG_OK_ON_STOPPED | 465 CTL_CMD_FLAG_OK_ON_INOPERABLE | 466 CTL_CMD_FLAG_OK_ON_OFFLINE | 467 CTL_FLAG_DATA_NONE | 468 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 469 CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}}, 470 471/* 1C RECEIVE DIAGNOSTIC RESULTS */ 472{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 473 474/* 1D SEND DIAGNOSTIC */ 475{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 476 477/* 1E PREVENT ALLOW MEDIUM REMOVAL */ 478{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 479 480/* 1F */ 481{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 482 483/* 20 */ 484{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 485 486/* 21 */ 487{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 488 489/* 22 */ 490{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 491 492/* 23 */ 493{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 494 495/* 24 SET WINDOW */ 496{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 497 498/* 25 READ CAPACITY(10) */ 499{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN| 500 CTL_CMD_FLAG_OK_ON_STOPPED | 501 CTL_CMD_FLAG_OK_ON_INOPERABLE | 502 CTL_CMD_FLAG_OK_ON_SECONDARY | 503 CTL_FLAG_DATA_IN | 504 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 505 CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 506 507/* 26 */ 508{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 509 510/* 27 */ 511{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 512 513/* 28 READ(10) */ 514{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 515 CTL_FLAG_DATA_IN | 516 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 517 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 518 10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 519 520/* 29 READ GENERATION */ 521{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 522 523/* 2A WRITE(10) */ 524{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 525 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 526 10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 527 528/* 2B SEEK(10) */ 529{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 530 531/* 2C ERASE(10) */ 532{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 533 534/* 2D READ UPDATED BLOCK */ 535{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 536 537/* 2E WRITE AND VERIFY(10) */ 538{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 539 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 540 10, {0x10, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 541 542/* 2F VERIFY(10) */ 543{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 544 CTL_FLAG_DATA_OUT | 545 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 546 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 547 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 548 549/* 30 SEARCH DATA HIGH(10) */ 550{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 551 552/* 31 SEARCH DATA EQUAL(10) */ 553{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 554 555/* 32 SEARCH DATA LOW(10) */ 556{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 557 558/* 33 SET LIMITS(10) */ 559{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 560 561/* 34 PRE-FETCH(10) */ 562{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 563 564/* 35 SYNCHRONIZE CACHE(10) */ 565{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 566 CTL_FLAG_DATA_NONE, 567 CTL_LUN_PAT_NONE, 568 10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 569 570/* 36 LOCK UNLOCK CACHE(10) */ 571{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 572 573/* 37 READ DEFECT DATA(10) */ 574{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 575 576/* 38 MEDIUM SCAN */ 577{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 578 579/* 39 COMPARE */ 580{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 581 582/* 3A COPY AND VERIFY */ 583{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 584 585/* 3B WRITE BUFFER */ 586{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 587 CTL_FLAG_DATA_OUT, 588 CTL_LUN_PAT_NONE, 589 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 590 591/* 3C READ BUFFER */ 592{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 593 CTL_FLAG_DATA_IN | 594 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 595 CTL_LUN_PAT_NONE, 596 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 597 598/* 3D UPDATE BLOCK */ 599{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 600 601/* 3E READ LONG */ 602{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 603 604/* 3F WRITE LONG */ 605{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 606 607/* 40 CHANGE DEFINITION */ 608{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 609 610/* 41 WRITE SAME(10) */ 611{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 612 CTL_FLAG_DATA_OUT, 613 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 614 10, {0x0a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 615 616/* 42 READ SUB-CHANNEL / UNMAP */ 617{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT, 618 CTL_LUN_PAT_WRITE, 619 10, {0, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 620 621/* 43 READ TOC/PMA/ATIP */ 622{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 623 624/* 44 REPORT DENSITY SUPPORT */ 625{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 626 627/* 45 PLAY AUDIO(10) */ 628{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 629 630/* 46 GET CONFIGURATION */ 631{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 632 633/* 47 PLAY AUDIO MSF */ 634{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 635 636/* 48 PLAY AUDIO TRACK INDEX */ 637{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 638 639/* 49 PLAY TRACK RELATIVE(10) */ 640{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 641 642/* 4A GET EVENT STATUS NOTIFICATION */ 643{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 644 645/* 4B PAUSE/RESUME */ 646{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 647 648/* 4C LOG SELECT */ 649{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 650 651/* 4D LOG SENSE */ 652{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 653 654/* 4E STOP PLAY/SCAN */ 655{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 656 657/* 4F */ 658{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 659 660/* 50 XDWRITE(10) */ 661{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 662 663/* 51 XPWRITE(10) */ 664{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 665 666/* 52 XDREAD(10) */ 667{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 668 669/* 53 RESERVE TRACK */ 670{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 671 672/* 54 SEND OPC INFORMATION */ 673{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 674 675/* 55 MODE SELECT(10) */ 676{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 677 CTL_CMD_FLAG_OK_ON_STOPPED | 678 CTL_CMD_FLAG_OK_ON_INOPERABLE | 679 CTL_CMD_FLAG_OK_ON_SECONDARY | 680 CTL_FLAG_DATA_OUT, 681 CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 682 683/* 56 RESERVE(10) */ 684{ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV | 685 CTL_CMD_FLAG_OK_ON_BOTH | 686 CTL_CMD_FLAG_OK_ON_STOPPED | 687 CTL_CMD_FLAG_OK_ON_INOPERABLE | 688 CTL_CMD_FLAG_OK_ON_SECONDARY | 689 CTL_FLAG_DATA_OUT, 690 CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 691 692/* 57 RELEASE(10) */ 693{ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV | 694 CTL_CMD_FLAG_OK_ON_BOTH | 695 CTL_CMD_FLAG_OK_ON_STOPPED | 696 CTL_CMD_FLAG_OK_ON_INOPERABLE | 697 CTL_CMD_FLAG_OK_ON_SECONDARY | 698 CTL_FLAG_DATA_OUT, 699 CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 700 701/* 58 REPAIR TRACK */ 702{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 703 704/* 59 READ MASTER CUE */ 705{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 706 707/* 5A MODE SENSE(10) */ 708{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 709 CTL_CMD_FLAG_OK_ON_STOPPED | 710 CTL_CMD_FLAG_OK_ON_INOPERABLE | 711 CTL_CMD_FLAG_OK_ON_SECONDARY | 712 CTL_FLAG_DATA_IN | 713 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 714 CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 715 716/* 5B CLOSE TRACK/SESSION */ 717{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 718 719/* 5C READ BUFFER CAPACITY */ 720{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 721 722/* 5D SEND CUE SHEET */ 723{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 724 725/* 5E PERSISTENT RESERVE IN */ 726{__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 727 CTL_LUN_PAT_NONE}, 728 729/* 5F PERSISTENT RESERVE OUT */ 730{__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 731 CTL_LUN_PAT_NONE}, 732 733/* 60 */ 734{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 735 736/* 61 */ 737{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 738 739/* 62 */ 740{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 741 742/* 63 */ 743{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 744 745/* 64 */ 746{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 747 748/* 65 */ 749{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 750 751/* 66 */ 752{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 753 754/* 67 */ 755{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 756 757/* 68 */ 758{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 759 760/* 69 */ 761{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 762 763/* 6A */ 764{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 765 766/* 6B */ 767{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 768 769/* 6C */ 770{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 771 772/* 6D */ 773{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 774 775/* 6E */ 776{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 777 778/* 6F */ 779{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 780 781/* 70 */ 782{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 783 784/* 71 */ 785{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 786 787/* 72 */ 788{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 789 790/* 73 */ 791{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 792 793/* 74 */ 794{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 795 796/* 75 */ 797{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 798 799/* 76 */ 800{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 801 802/* 77 */ 803{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 804 805/* 78 */ 806{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 807 808/* 79 */ 809{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 810 811/* 7A */ 812{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 813 814/* 7B */ 815{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 816 817/* 7C */ 818{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 819 820/* 7D */ 821{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 822 823/* 7E */ 824{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 825 826/* 7F */ 827{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 828 829/* 80 XDWRITE EXTENDED(16) */ 830{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 831 832/* 81 REBUILD(16) */ 833{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 834 835/* 82 REGENERATE(16) */ 836{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 837 838/* 83 EXTENDED COPY */ 839{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 840 841/* 84 RECEIVE COPY RESULTS */ 842{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 843 844/* 85 */ 845{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 846 847/* 86 ACCESS CONTROL IN */ 848{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 849 850/* 87 ACCESS CONTROL OUT */ 851{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 852 853/* 88 READ(16) */ 854{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 855 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 856 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 857 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 858 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 859 860/* 89 COMPARE AND WRITE */ 861{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 862 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 863 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 864 0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}}, 865 866/* 8A WRITE(16) */ 867{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 868 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 869 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 870 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 871 872/* 8B */ 873{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 874 875/* 8C READ ATTRIBUTE */ 876{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 877 878/* 8D WRITE ATTRIBUTE */ 879{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 880 881/* 8E WRITE AND VERIFY(16) */ 882{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 883 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 884 16, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 885 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 886 887/* 8F VERIFY(16) */ 888{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 889 CTL_FLAG_DATA_OUT | 890 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 891 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 892 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 893 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 894 895/* 90 PRE-FETCH(16) */ 896{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 897 898/* 91 SYNCHRONIZE CACHE(16) */ 899{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 900 CTL_FLAG_DATA_NONE, 901 CTL_LUN_PAT_NONE, 902 16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 903 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 904 905/* 92 LOCK UNLOCK CACHE(16) */ 906{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 907 908/* 93 WRITE SAME(16) */ 909{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 910 CTL_FLAG_DATA_OUT, 911 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 912 16, {0x0a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 913 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 914 915/* 94 */ 916{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 917 918/* 95 */ 919{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 920 921/* 96 */ 922{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 923 924/* 97 */ 925{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 926 927/* 98 */ 928{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 929 930/* 99 */ 931{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 932 933/* 9A */ 934{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 935 936/* 9B */ 937{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 938 939/* 9C */ 940{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 941 942/* 9D */ 943{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 944 945/* 9E SERVICE ACTION IN(16) */ 946{__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 947 CTL_LUN_PAT_NONE}, 948 949/* 9F SERVICE ACTION OUT(16) */ 950{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 951 952/* A0 REPORT LUNS */ 953{ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 954 CTL_CMD_FLAG_ALLOW_ON_RESV | 955 CTL_CMD_FLAG_NO_SENSE | 956 CTL_CMD_FLAG_OK_ON_STOPPED | 957 CTL_CMD_FLAG_OK_ON_INOPERABLE | 958 CTL_CMD_FLAG_OK_ON_OFFLINE | 959 CTL_CMD_FLAG_OK_ON_SECONDARY | 960 CTL_FLAG_DATA_IN | 961 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 962 CTL_LUN_PAT_NONE, 963 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 964 965/* A1 BLANK */ 966{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 967 968/* A2 SEND EVENT */ 969{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 970 971/* A3 MAINTENANCE IN */ 972{__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 973 CTL_LUN_PAT_NONE}, 974 975/* A4 MAINTENANCE OUT */ 976{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 977 978/* A5 MOVE MEDIUM */ 979{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 980 981/* A6 EXCHANGE MEDIUM */ 982{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 983 984/* A7 MOVE MEDIUM ATTACHED */ 985{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 986 987/* A8 READ(12) */ 988{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 989 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 990 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 991 12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 992 993/* A9 PLAY TRACK RELATIVE(12) */ 994{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 995 996/* AA WRITE(12) */ 997{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 998 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 999 12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1000 1001/* AB SERVICE ACTION IN(12) */ 1002{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1003 1004/* AC ERASE(12) */ 1005{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1006 1007/* AD READ DVD STRUCTURE */ 1008{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1009 1010/* AE WRITE AND VERIFY(12) */ 1011{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1012 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1013 12, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1014 1015/* AF VERIFY(12) */ 1016{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 1017 CTL_FLAG_DATA_OUT | 1018 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1019 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1020 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1021 1022/* B0 SEARCH DATA HIGH(12) */ 1023{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1024 1025/* B1 SEARCH DATA EQUAL(12) */ 1026{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1027 1028/* B2 SEARCH DATA LOW(12) */ 1029{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1030 1031/* B3 SET LIMITS(12) */ 1032{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1033 1034/* B4 READ ELEMENT STATUS ATTACHED */ 1035{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1036 1037/* B5 REQUEST VOLUME ELEMENT ADDRESS */ 1038{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1039 1040/* B6 SEND VOLUME TAG */ 1041{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1042 1043/* B7 READ DEFECT DATA(12) */ 1044{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1045 1046/* B8 READ ELEMENT STATUS */ 1047{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1048 1049/* B9 READ CD MSF */ 1050{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1051 1052/* BA REDUNDANCY GROUP IN */ 1053{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1054 1055/* BB REDUNDANCY GROUP OUT */ 1056{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1057 1058/* BC SPARE IN */ 1059{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1060 1061/* BD SPARE OUT */ 1062{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1063 1064/* BE VOLUME SET IN */ 1065{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1066 1067/* BF VOLUME SET OUT */ 1068{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1069 1070/* C0 - ISC_SEND_MSG_SHORT */ 1071//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1072{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE, 1073 CTL_LUN_PAT_NONE, 1074 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1075 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1076 1077/* C1 - ISC_SEND_MSG */ 1078//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1079{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1080 CTL_LUN_PAT_NONE, 1081 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1082 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1083 1084/* C2 - ISC_WRITE */ 1085//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1086{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1087 CTL_LUN_PAT_NONE, 1088 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1089 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1090 1091/* C3 - ISC_READ */ 1092//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1093{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN, 1094 CTL_LUN_PAT_NONE, 1095 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1096 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1097 1098/* C4 */ 1099{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1100 1101/* C5 */ 1102{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1103 1104/* C6 */ 1105{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1106 1107/* C7 */ 1108{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1109 1110/* C8 */ 1111{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1112 1113/* C9 */ 1114{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1115 1116/* CA */ 1117{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1118 1119/* CB */ 1120{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1121 1122/* CC */ 1123{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1124 1125/* CD */ 1126{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1127 1128/* CE */ 1129{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1130 1131/* CF */ 1132{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1133 1134/* D0 */ 1135{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1136 1137/* D1 */ 1138{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1139 1140/* D2 */ 1141{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1142 1143/* D3 */ 1144{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1145 1146/* D4 */ 1147{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1148 1149/* D5 */ 1150{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1151 1152/* D6 */ 1153{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1154 1155/* D7 */ 1156{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1157 1158/* D8 */ 1159{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1160 1161/* D9 */ 1162{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1163 1164/* DA */ 1165{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1166 1167/* DB */ 1168{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1169 1170/* DC */ 1171{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1172 1173/* DD */ 1174{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1175 1176/* DE */ 1177{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1178 1179/* DF */ 1180{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1181 1182/* E0 */ 1183{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1184 1185/* E1 */ 1186{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1187 1188/* E2 */ 1189{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1190 1191/* E3 */ 1192{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1193 1194/* E4 */ 1195{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1196 1197/* E5 */ 1198{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1199 1200/* E6 */ 1201{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1202 1203/* E7 */ 1204{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1205 1206/* E8 */ 1207{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1208 1209/* E9 */ 1210{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1211 1212/* EA */ 1213{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1214 1215/* EB */ 1216{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1217 1218/* EC */ 1219{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1220 1221/* ED */ 1222{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1223 1224/* EE */ 1225{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1226 1227/* EF */ 1228{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1229 1230/* F0 */ 1231{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1232 1233/* F1 */ 1234{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1235 1236/* F2 */ 1237{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1238 1239/* F3 */ 1240{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1241 1242/* F4 */ 1243{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1244 1245/* F5 */ 1246{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1247 1248/* F6 */ 1249{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1250 1251/* F7 */ 1252{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1253 1254/* F8 */ 1255{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1256 1257/* F9 */ 1258{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1259 1260/* FA */ 1261{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1262 1263/* FB */ 1264{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1265 1266/* FC */ 1267{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1268 1269/* FD */ 1270{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1271 1272/* FE */ 1273{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1274 1275/* FF */ 1276{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 1277 1278}; 1279