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: head/sys/cam/ctl/ctl_cmd_table.c 264297 2014-04-09 10:58:52Z mav $
|
31 * $FreeBSD: head/sys/cam/ctl/ctl_cmd_table.c 267537 2014-06-16 11:00:14Z 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 this 62 * table. 63 */ 64struct ctl_cmd_entry ctl_cmd_table[] = 65{ 66/* 00 TEST UNIT READY */ 67{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 68 CTL_FLAG_DATA_NONE | 69 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 70 CTL_LUN_PAT_TUR}, 71 72/* 01 REWIND */ 73{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 74 75/* 02 */ 76{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 77 78/* 03 REQUEST SENSE */ 79{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 80 CTL_CMD_FLAG_OK_ON_ALL_LUNS | 81 CTL_CMD_FLAG_ALLOW_ON_RESV | 82 CTL_CMD_FLAG_NO_SENSE | 83 CTL_CMD_FLAG_OK_ON_STOPPED | 84 CTL_CMD_FLAG_OK_ON_INOPERABLE | 85 CTL_CMD_FLAG_OK_ON_OFFLINE | 86 CTL_CMD_FLAG_OK_ON_SECONDARY | 87 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 88 CTL_LUN_PAT_NONE}, 89 90/* 04 FORMAT UNIT */ 91{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN | 92 CTL_CMD_FLAG_OK_ON_INOPERABLE | 93 CTL_FLAG_DATA_OUT, 94 CTL_LUN_PAT_NONE}, 95 96/* 05 READ BLOCK LIMITS */ 97{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 98 99/* 06 */ 100{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 101 102/* 07 REASSIGN BLOCKS */ 103{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 104 105/* 08 READ(6) */ 106{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 107 CTL_FLAG_DATA_IN | 108 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 109 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 110 111/* 09 */ 112{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 113 114/* 0A WRITE(6) */ 115{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 116 CTL_FLAG_DATA_OUT, 117 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 118 119/* 0B SEEK(6) */ 120{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 121 122/* 0C */ 123{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 124 125/* 0D */ 126{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 127 128/* 0E */ 129{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 130 131/* 0F READ REVERSE(6) */ 132{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 133 134/* 10 WRITE FILEMARKS(6) */ 135{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 136 137/* 11 SPACE(6) */ 138{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 139 140/* 12 INQUIRY */ 141{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 142 CTL_CMD_FLAG_ALLOW_ON_RESV | 143 CTL_CMD_FLAG_NO_SENSE | 144 CTL_CMD_FLAG_OK_ON_STOPPED | 145 CTL_CMD_FLAG_OK_ON_INOPERABLE | 146 CTL_CMD_FLAG_OK_ON_OFFLINE | 147 CTL_CMD_FLAG_OK_ON_SECONDARY | 148 CTL_FLAG_DATA_IN | 149 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 150 CTL_LUN_PAT_NONE}, 151 152/* 13 */ 153{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 154 155/* 14 RECOVER BUFFERED DATA */ 156{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 157 158/* 15 MODE SELECT(6) */ 159{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 160 CTL_CMD_FLAG_OK_ON_STOPPED | 161 CTL_CMD_FLAG_OK_ON_INOPERABLE | 162 CTL_CMD_FLAG_OK_ON_SECONDARY | 163 CTL_FLAG_DATA_OUT, 164 CTL_LUN_PAT_NONE}, 165 166/* 16 RESERVE(6) */ 167{ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV | 168 CTL_CMD_FLAG_OK_ON_BOTH | 169 CTL_CMD_FLAG_OK_ON_STOPPED | 170 CTL_CMD_FLAG_OK_ON_INOPERABLE | 171 CTL_CMD_FLAG_OK_ON_SECONDARY | 172 CTL_FLAG_DATA_OUT, 173 CTL_LUN_PAT_NONE}, 174 175/* 17 RELEASE(6) */ 176{ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV | 177 CTL_CMD_FLAG_OK_ON_BOTH | 178 CTL_CMD_FLAG_OK_ON_STOPPED | 179 CTL_CMD_FLAG_OK_ON_INOPERABLE | 180 CTL_CMD_FLAG_OK_ON_SECONDARY | 181 CTL_FLAG_DATA_NONE, 182 CTL_LUN_PAT_NONE}, 183 184/* 18 COPY */ 185{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 186 187/* 19 ERASE(6) */ 188{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 189 190/* 1A MODE SENSE(6) */ 191{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 192 CTL_CMD_FLAG_OK_ON_STOPPED | 193 CTL_CMD_FLAG_OK_ON_INOPERABLE | 194 CTL_CMD_FLAG_OK_ON_SECONDARY | 195 CTL_FLAG_DATA_IN, 196 CTL_LUN_PAT_NONE}, 197 198/* 1B START STOP UNIT */ 199{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 200 CTL_CMD_FLAG_OK_ON_STOPPED | 201 CTL_CMD_FLAG_OK_ON_INOPERABLE | 202 CTL_CMD_FLAG_OK_ON_OFFLINE | 203 CTL_FLAG_DATA_NONE | 204 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 205 CTL_LUN_PAT_NONE}, 206 207/* 1C RECEIVE DIAGNOSTIC RESULTS */ 208{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 209 210/* 1D SEND DIAGNOSTIC */ 211{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 212 213/* 1E PREVENT ALLOW MEDIUM REMOVAL */ 214{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 215 216/* 1F */ 217{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 218 219/* 20 */ 220{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 221 222/* 21 */ 223{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 224 225/* 22 */ 226{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 227 228/* 23 */ 229{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 230 231/* 24 SET WINDOW */ 232{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 233 234/* 25 READ CAPACITY(10) */ 235{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN| 236 CTL_CMD_FLAG_OK_ON_STOPPED | 237 CTL_CMD_FLAG_OK_ON_INOPERABLE | 238 CTL_CMD_FLAG_OK_ON_SECONDARY | 239 CTL_FLAG_DATA_IN | 240 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 241 CTL_LUN_PAT_READCAP}, 242 243/* 26 */ 244{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 245 246/* 27 */ 247{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 248 249/* 28 READ(10) */ 250{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 251 CTL_FLAG_DATA_IN | 252 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 253 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 254 255/* 29 READ GENERATION */ 256{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 257 258/* 2A WRITE(10) */ 259{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 260 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 261 262/* 2B SEEK(10) */ 263{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 264 265/* 2C ERASE(10) */ 266{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 267 268/* 2D READ UPDATED BLOCK */ 269{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 270 271/* 2E WRITE AND VERIFY(10) */ 272{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 273 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 274 275/* 2F VERIFY(10) */
|
276{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
|
276{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 277 CTL_FLAG_DATA_OUT | 278 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 279 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, |
280 281/* 30 SEARCH DATA HIGH(10) */ 282{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 283 284/* 31 SEARCH DATA EQUAL(10) */ 285{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 286 287/* 32 SEARCH DATA LOW(10) */ 288{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 289 290/* 33 SET LIMITS(10) */ 291{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 292 293/* 34 PRE-FETCH(10) */ 294{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 295 296/* 35 SYNCHRONIZE CACHE(10) */ 297{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 298 CTL_FLAG_DATA_NONE, 299 CTL_LUN_PAT_NONE}, 300 301/* 36 LOCK UNLOCK CACHE(10) */ 302{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 303 304/* 37 READ DEFECT DATA(10) */ 305{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 306 307/* 38 MEDIUM SCAN */ 308{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 309 310/* 39 COMPARE */ 311{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 312 313/* 3A COPY AND VERIFY */ 314{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 315 316/* 3B WRITE BUFFER */ 317{ctl_write_buffer, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_PROC | 318 CTL_FLAG_DATA_OUT, 319 CTL_LUN_PAT_NONE}, 320 321/* 3C READ BUFFER */ 322{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 323 324/* 3D UPDATE BLOCK */ 325{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 326 327/* 3E READ LONG */ 328{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 329 330/* 3F WRITE LONG */ 331{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 332 333/* 40 CHANGE DEFINITION */ 334{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 335 336/* 41 WRITE SAME(10) */ 337{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 338 CTL_FLAG_DATA_OUT, 339 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 340 341/* 42 READ SUB-CHANNEL / UNMAP */ 342{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT, 343 CTL_LUN_PAT_WRITE}, 344 345/* 43 READ TOC/PMA/ATIP */ 346{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 347 348/* 44 REPORT DENSITY SUPPORT */ 349{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 350 351/* 45 PLAY AUDIO(10) */ 352{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 353 354/* 46 GET CONFIGURATION */ 355{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 356 357/* 47 PLAY AUDIO MSF */ 358{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 359 360/* 48 PLAY AUDIO TRACK INDEX */ 361{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 362 363/* 49 PLAY TRACK RELATIVE(10) */ 364{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 365 366/* 4A GET EVENT STATUS NOTIFICATION */ 367{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 368 369/* 4B PAUSE/RESUME */ 370{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 371 372/* 4C LOG SELECT */ 373{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 374 375/* 4D LOG SENSE */ 376{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 377 378/* 4E STOP PLAY/SCAN */ 379{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 380 381/* 4F */ 382{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 383 384/* 50 XDWRITE(10) */ 385{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 386 387/* 51 XPWRITE(10) */ 388{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 389 390/* 52 XDREAD(10) */ 391{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 392 393/* 53 RESERVE TRACK */ 394{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 395 396/* 54 SEND OPC INFORMATION */ 397{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 398 399/* 55 MODE SELECT(10) */ 400{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 401 CTL_CMD_FLAG_OK_ON_STOPPED | 402 CTL_CMD_FLAG_OK_ON_INOPERABLE | 403 CTL_CMD_FLAG_OK_ON_SECONDARY | 404 CTL_FLAG_DATA_OUT, 405 CTL_LUN_PAT_NONE}, 406 407/* 56 RESERVE(10) */ 408{ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV | 409 CTL_CMD_FLAG_OK_ON_BOTH | 410 CTL_CMD_FLAG_OK_ON_STOPPED | 411 CTL_CMD_FLAG_OK_ON_INOPERABLE | 412 CTL_CMD_FLAG_OK_ON_SECONDARY | 413 CTL_FLAG_DATA_OUT, 414 CTL_LUN_PAT_NONE}, 415 416/* 57 RELEASE(10) */ 417{ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV | 418 CTL_CMD_FLAG_OK_ON_BOTH | 419 CTL_CMD_FLAG_OK_ON_STOPPED | 420 CTL_CMD_FLAG_OK_ON_INOPERABLE | 421 CTL_CMD_FLAG_OK_ON_SECONDARY | 422 CTL_FLAG_DATA_OUT, 423 CTL_LUN_PAT_NONE}, 424 425/* 58 REPAIR TRACK */ 426{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 427 428/* 59 READ MASTER CUE */ 429{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 430 431/* 5A MODE SENSE(10) */ 432{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 433 CTL_CMD_FLAG_OK_ON_STOPPED | 434 CTL_CMD_FLAG_OK_ON_INOPERABLE | 435 CTL_CMD_FLAG_OK_ON_SECONDARY | 436 CTL_FLAG_DATA_IN, 437 CTL_LUN_PAT_NONE}, 438 439/* 5B CLOSE TRACK/SESSION */ 440{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 441 442/* 5C READ BUFFER CAPACITY */ 443{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 444 445/* 5D SEND CUE SHEET */ 446{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 447 448/* 5E PERSISTENT RESERVE IN */ 449{ctl_persistent_reserve_in, CTL_SERIDX_PRES_IN, CTL_CMD_FLAG_ALLOW_ON_RESV | 450 CTL_CMD_FLAG_OK_ON_BOTH | 451 CTL_CMD_FLAG_OK_ON_STOPPED | 452 CTL_CMD_FLAG_OK_ON_INOPERABLE | 453 CTL_CMD_FLAG_OK_ON_SECONDARY | 454 CTL_FLAG_DATA_IN | 455 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 456 CTL_LUN_PAT_NONE}, 457 458//{ctl_persistent_reserve_in, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 459 460/* 5F PERSISTENT RESERVE OUT */ 461{ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV | 462 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_OUT | 467 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 468 CTL_LUN_PAT_NONE}, 469 470//{ctl_persistent_reserve_out, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 471 472/* 60 */ 473{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 474 475/* 61 */ 476{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 477 478/* 62 */ 479{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 480 481/* 63 */ 482{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 483 484/* 64 */ 485{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 486 487/* 65 */ 488{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 489 490/* 66 */ 491{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 492 493/* 67 */ 494{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 495 496/* 68 */ 497{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 498 499/* 69 */ 500{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 501 502/* 6A */ 503{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 504 505/* 6B */ 506{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 507 508/* 6C */ 509{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 510 511/* 6D */ 512{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 513 514/* 6E */ 515{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 516 517/* 6F */ 518{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 519 520/* 70 */ 521{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 522 523/* 71 */ 524{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 525 526/* 72 */ 527{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 528 529/* 73 */ 530{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 531 532/* 74 */ 533{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 534 535/* 75 */ 536{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 537 538/* 76 */ 539{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 540 541/* 77 */ 542{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 543 544/* 78 */ 545{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 546 547/* 79 */ 548{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 549 550/* 7A */ 551{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 552 553/* 7B */ 554{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 555 556/* 7C */ 557{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 558 559/* 7D */ 560{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 561 562/* 7E */ 563{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 564 565/* 7F */ 566{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 567 568/* 80 XDWRITE EXTENDED(16) */ 569{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 570 571/* 81 REBUILD(16) */ 572{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 573 574/* 82 REGENERATE(16) */ 575{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 576 577/* 83 EXTENDED COPY */ 578{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 579 580/* 84 RECEIVE COPY RESULTS */ 581{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 582 583/* 85 */ 584{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 585 586/* 86 ACCESS CONTROL IN */ 587{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 588 589/* 87 ACCESS CONTROL OUT */ 590{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 591 592/* 88 READ(16) */ 593{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 594 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 595 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 596
|
594/* 89 */
595{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
|
597/* 89 COMPARE AND WRITE */ 598{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 599 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, |
600 601/* 8A WRITE(16) */ 602{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 603 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 604 605/* 8B */ 606{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 607 608/* 8C READ ATTRIBUTE */ 609{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 610 611/* 8D WRITE ATTRIBUTE */ 612{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 613 614/* 8E WRITE AND VERIFY(16) */ 615{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 616 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 617 618/* 8F VERIFY(16) */
|
615{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
|
619{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 620 CTL_FLAG_DATA_OUT | 621 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 622 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, |
623 624/* 90 PRE-FETCH(16) */ 625{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 626 627/* 91 SYNCHRONIZE CACHE(16) */ 628{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 629 CTL_FLAG_DATA_NONE, 630 CTL_LUN_PAT_NONE}, 631 632/* 92 LOCK UNLOCK CACHE(16) */ 633{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 634 635/* 93 WRITE SAME(16) */ 636{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 637 CTL_FLAG_DATA_OUT, 638 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 639 640/* 94 */ 641{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 642 643/* 95 */ 644{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 645 646/* 96 */ 647{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 648 649/* 97 */ 650{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 651 652/* 98 */ 653{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 654 655/* 99 */ 656{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 657 658/* 9A */ 659{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 660 661/* 9B */ 662{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 663 664/* 9C */ 665{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 666 667/* 9D */ 668{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 669 670/* 9E SERVICE ACTION IN(16) */ 671/* XXX KDM not all service actions will be read capacity!! */ 672{ctl_service_action_in, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 673 CTL_CMD_FLAG_OK_ON_STOPPED | 674 CTL_CMD_FLAG_OK_ON_INOPERABLE | 675 CTL_CMD_FLAG_OK_ON_SECONDARY | 676 CTL_FLAG_DATA_IN | 677 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 678 CTL_LUN_PAT_READCAP}, 679 680/* 9F SERVICE ACTION OUT(16) */ 681{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 682 683/* A0 REPORT LUNS */ 684{ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 685 CTL_CMD_FLAG_ALLOW_ON_RESV | 686 CTL_CMD_FLAG_NO_SENSE | 687 CTL_CMD_FLAG_OK_ON_STOPPED | 688 CTL_CMD_FLAG_OK_ON_INOPERABLE | 689 CTL_CMD_FLAG_OK_ON_OFFLINE | 690 CTL_CMD_FLAG_OK_ON_SECONDARY | 691 CTL_FLAG_DATA_IN | 692 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 693 CTL_LUN_PAT_NONE}, 694 695/* A1 BLANK */ 696{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 697 698/* A2 SEND EVENT */ 699{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 700 701/* A3 MAINTENANCE (IN) Service Action - (0A) REPORT TARGET PORT GROUP */ 702{ctl_maintenance_in, CTL_SERIDX_MAIN_IN, 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_IN, 707 CTL_LUN_PAT_NONE}, 708 709/* A4 MAINTENANCE (OUT) */ 710{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 711 712/* A5 MOVE MEDIUM */ 713{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 714 715/* A6 EXCHANGE MEDIUM */ 716{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 717 718/* A7 MOVE MEDIUM ATTACHED */ 719{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 720 721/* A8 READ(12) */ 722{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 723 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 724 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 725 726/* A9 PLAY TRACK RELATIVE(12) */ 727{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 728 729/* AA WRITE(12) */ 730{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 731 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 732 733/* AB SERVICE ACTION IN(12) */ 734{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 735 736/* AC ERASE(12) */ 737{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 738 739/* AD READ DVD STRUCTURE */ 740{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 741 742/* AE WRITE AND VERIFY(12) */ 743{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 744 CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 745 746/* AF VERIFY(12) */
|
740{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
|
747{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 748 CTL_FLAG_DATA_OUT | 749 CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 750 CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, |
751 752/* B0 SEARCH DATA HIGH(12) */ 753{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 754 755/* B1 SEARCH DATA EQUAL(12) */ 756{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 757 758/* B2 SEARCH DATA LOW(12) */ 759{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 760 761/* B3 SET LIMITS(12) */ 762{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 763 764/* B4 READ ELEMENT STATUS ATTACHED */ 765{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 766 767/* B5 REQUEST VOLUME ELEMENT ADDRESS */ 768{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 769 770/* B6 SEND VOLUME TAG */ 771{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 772 773/* B7 READ DEFECT DATA(12) */ 774{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 775 776/* B8 READ ELEMENT STATUS */ 777{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 778 779/* B9 READ CD MSF */ 780{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 781 782/* BA REDUNDANCY GROUP (IN) */ 783{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 784 785/* BB REDUNDANCY GROUP (OUT) */ 786{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 787 788/* BC SPARE (IN) */ 789{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 790 791/* BD SPARE (OUT) */ 792{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 793 794/* BE VOLUME SET (IN) */ 795{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 796 797/* BF VOLUME SET (OUT) */ 798{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 799 800/* C0 - ISC_SEND_MSG_SHORT */ 801//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 802{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE, 803 CTL_LUN_PAT_NONE}, 804 805/* C1 - ISC_SEND_MSG */ 806//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 807{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 808 CTL_LUN_PAT_NONE}, 809 810/* C2 - ISC_WRITE */ 811//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 812{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 813 CTL_LUN_PAT_NONE}, 814 815/* C3 - ISC_READ */ 816//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 817{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN, 818 CTL_LUN_PAT_NONE}, 819 820/* C4 */ 821{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 822 823/* C5 */ 824{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 825 826/* C6 */ 827{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 828 829/* C7 */ 830{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 831 832/* C8 */ 833{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 834 835/* C9 */ 836{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 837 838/* CA */ 839{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 840 841/* CB */ 842{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 843 844/* CC */ 845{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 846 847/* CD */ 848{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 849 850/* CE */ 851{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 852 853/* CF */ 854{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 855 856/* D0 */ 857{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 858 859/* D1 */ 860{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 861 862/* D2 */ 863{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 864 865/* D3 */ 866{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 867 868/* D4 */ 869{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 870 871/* D5 */ 872{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 873 874/* D6 */ 875{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 876 877/* D7 */ 878{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 879 880/* D8 */ 881{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 882 883/* D9 */ 884{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 885 886/* DA */ 887{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 888 889/* DB */ 890{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 891 892/* DC */ 893{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 894 895/* DD */ 896{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 897 898/* DE */ 899{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 900 901/* DF */ 902{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 903 904/* E0 */ 905{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 906 907/* E1 */ 908{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 909 910/* E2 */ 911{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 912 913/* E3 */ 914{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 915 916/* E4 */ 917{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 918 919/* E5 */ 920{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 921 922/* E6 */ 923{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 924 925/* E7 */ 926{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 927 928/* E8 */ 929{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 930 931/* E9 */ 932{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 933 934/* EA */ 935{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 936 937/* EB */ 938{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 939 940/* EC */ 941{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 942 943/* ED */ 944{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 945 946/* EE */ 947{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 948 949/* EF */ 950{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 951 952/* F0 */ 953{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 954 955/* F1 */ 956{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 957 958/* F2 */ 959{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 960 961/* F3 */ 962{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 963 964/* F4 */ 965{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 966 967/* F5 */ 968{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 969 970/* F6 */ 971{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 972 973/* F7 */ 974{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 975 976/* F8 */ 977{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 978 979/* F9 */ 980{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 981 982/* FA */ 983{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 984 985/* FB */ 986{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 987 988/* FC */ 989{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 990 991/* FD */ 992{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 993 994/* FE */ 995{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 996 997/* FF */ 998{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 999 1000};
|