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