1130f4520SKenneth D. Merry /*- 2130f4520SKenneth D. Merry * Copyright (c) 2003, 2004, 2005, 2009 Silicon Graphics International Corp. 3130f4520SKenneth D. Merry * All rights reserved. 4130f4520SKenneth D. Merry * 5130f4520SKenneth D. Merry * Redistribution and use in source and binary forms, with or without 6130f4520SKenneth D. Merry * modification, are permitted provided that the following conditions 7130f4520SKenneth D. Merry * are met: 8130f4520SKenneth D. Merry * 1. Redistributions of source code must retain the above copyright 9130f4520SKenneth D. Merry * notice, this list of conditions, and the following disclaimer, 10130f4520SKenneth D. Merry * without modification. 11130f4520SKenneth D. Merry * 2. Redistributions in binary form must reproduce at minimum a disclaimer 12130f4520SKenneth D. Merry * substantially similar to the "NO WARRANTY" disclaimer below 13130f4520SKenneth D. Merry * ("Disclaimer") and any redistribution must be conditioned upon 14130f4520SKenneth D. Merry * including a substantially similar Disclaimer requirement for further 15130f4520SKenneth D. Merry * binary redistribution. 16130f4520SKenneth D. Merry * 17130f4520SKenneth D. Merry * NO WARRANTY 18130f4520SKenneth D. Merry * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19130f4520SKenneth D. Merry * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20130f4520SKenneth D. Merry * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 21130f4520SKenneth D. Merry * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22130f4520SKenneth D. Merry * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23130f4520SKenneth D. Merry * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24130f4520SKenneth D. Merry * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25130f4520SKenneth D. Merry * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 26130f4520SKenneth D. Merry * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 27130f4520SKenneth D. Merry * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28130f4520SKenneth D. Merry * POSSIBILITY OF SUCH DAMAGES. 29130f4520SKenneth D. Merry * 30130f4520SKenneth D. Merry * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_cmd_table.c#4 $ 31130f4520SKenneth D. Merry * $FreeBSD$ 32130f4520SKenneth D. Merry */ 33130f4520SKenneth D. Merry /* 34130f4520SKenneth D. Merry * CAM Target Layer command table. 35130f4520SKenneth D. Merry * 36130f4520SKenneth D. Merry * Author: Ken Merry <ken@FreeBSD.org>, Kim Le 37130f4520SKenneth D. Merry */ 38130f4520SKenneth D. Merry 39130f4520SKenneth D. Merry #include <sys/cdefs.h> 40130f4520SKenneth D. Merry #include <sys/param.h> 41130f4520SKenneth D. Merry #include <sys/systm.h> 42130f4520SKenneth D. Merry #include <sys/kernel.h> 43130f4520SKenneth D. Merry #include <sys/types.h> 44130f4520SKenneth D. Merry #include <sys/malloc.h> 45130f4520SKenneth D. Merry #include <sys/condvar.h> 46130f4520SKenneth D. Merry #include <sys/queue.h> 47bf8f8f34SKenneth D. Merry #include <sys/sysctl.h> 48130f4520SKenneth D. Merry 49130f4520SKenneth D. Merry #include <cam/scsi/scsi_all.h> 50130f4520SKenneth D. Merry #include <cam/scsi/scsi_da.h> 51130f4520SKenneth D. Merry #include <cam/ctl/ctl_io.h> 52130f4520SKenneth D. Merry #include <cam/ctl/ctl.h> 53130f4520SKenneth D. Merry #include <cam/ctl/ctl_frontend.h> 54130f4520SKenneth D. Merry #include <cam/ctl/ctl_backend.h> 55130f4520SKenneth D. Merry #include <cam/ctl/ctl_frontend_internal.h> 56130f4520SKenneth D. Merry #include <cam/ctl/ctl_ioctl.h> 57130f4520SKenneth D. Merry #include <cam/ctl/ctl_ha.h> 58130f4520SKenneth D. Merry #include <cam/ctl/ctl_private.h> 59130f4520SKenneth D. Merry 60130f4520SKenneth D. Merry /* 61130f4520SKenneth D. Merry * Whenever support for a new command is added, it should be added to this 62130f4520SKenneth D. Merry * table. 63130f4520SKenneth D. Merry */ 64130f4520SKenneth D. Merry struct ctl_cmd_entry ctl_cmd_table[] = 65130f4520SKenneth D. Merry { 66130f4520SKenneth D. Merry /* 00 TEST UNIT READY */ 67130f4520SKenneth D. Merry {ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 68130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE | 69130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 70130f4520SKenneth D. Merry CTL_LUN_PAT_TUR}, 71130f4520SKenneth D. Merry 72130f4520SKenneth D. Merry /* 01 REWIND */ 73130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 74130f4520SKenneth D. Merry 75130f4520SKenneth D. Merry /* 02 */ 76130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 77130f4520SKenneth D. Merry 78130f4520SKenneth D. Merry /* 03 REQUEST SENSE */ 79130f4520SKenneth D. Merry {ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 80130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_ALL_LUNS | 81130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 82130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 83130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 84130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 85130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_OFFLINE | 86130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 87130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 88130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 89130f4520SKenneth D. Merry 90130f4520SKenneth D. Merry /* 04 FORMAT UNIT */ 91130f4520SKenneth D. Merry {ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN | 92130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 93130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 94130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 95130f4520SKenneth D. Merry 96130f4520SKenneth D. Merry /* 05 READ BLOCK LIMITS */ 97130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 98130f4520SKenneth D. Merry 99130f4520SKenneth D. Merry /* 06 */ 100130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 101130f4520SKenneth D. Merry 102130f4520SKenneth D. Merry /* 07 REASSIGN BLOCKS */ 103130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 104130f4520SKenneth D. Merry 105130f4520SKenneth D. Merry /* 08 READ(6) */ 106130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 107130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 108130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 109130f4520SKenneth D. Merry CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 110130f4520SKenneth D. Merry 111130f4520SKenneth D. Merry /* 09 */ 112130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 113130f4520SKenneth D. Merry 114130f4520SKenneth D. Merry /* 0A WRITE(6) */ 115130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 116130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 117130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 118130f4520SKenneth D. Merry 119130f4520SKenneth D. Merry /* 0B SEEK(6) */ 120130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 121130f4520SKenneth D. Merry 122130f4520SKenneth D. Merry /* 0C */ 123130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 124130f4520SKenneth D. Merry 125130f4520SKenneth D. Merry /* 0D */ 126130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 127130f4520SKenneth D. Merry 128130f4520SKenneth D. Merry /* 0E */ 129130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 130130f4520SKenneth D. Merry 131130f4520SKenneth D. Merry /* 0F READ REVERSE(6) */ 132130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 133130f4520SKenneth D. Merry 134130f4520SKenneth D. Merry /* 10 WRITE FILEMARKS(6) */ 135130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 136130f4520SKenneth D. Merry 137130f4520SKenneth D. Merry /* 11 SPACE(6) */ 138130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 139130f4520SKenneth D. Merry 140130f4520SKenneth D. Merry /* 12 INQUIRY */ 141130f4520SKenneth D. Merry {ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 142130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 143130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 144130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 145130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 146130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_OFFLINE | 147130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 148130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 149130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 150130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 151130f4520SKenneth D. Merry 152130f4520SKenneth D. Merry /* 13 */ 153130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 154130f4520SKenneth D. Merry 155130f4520SKenneth D. Merry /* 14 RECOVER BUFFERED DATA */ 156130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 157130f4520SKenneth D. Merry 158130f4520SKenneth D. Merry /* 15 MODE SELECT(6) */ 159130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 160130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 161130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 162130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 163130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 164130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 165130f4520SKenneth D. Merry 166130f4520SKenneth D. Merry /* 16 RESERVE(6) */ 167130f4520SKenneth D. Merry {ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV | 168130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 169130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 170130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 171130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 172130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 173130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 174130f4520SKenneth D. Merry 175130f4520SKenneth D. Merry /* 17 RELEASE(6) */ 176130f4520SKenneth D. Merry {ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV | 177130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 178130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 179130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 180130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 181130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 182130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 183130f4520SKenneth D. Merry 184130f4520SKenneth D. Merry /* 18 COPY */ 185130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 186130f4520SKenneth D. Merry 187130f4520SKenneth D. Merry /* 19 ERASE(6) */ 188130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 189130f4520SKenneth D. Merry 190130f4520SKenneth D. Merry /* 1A MODE SENSE(6) */ 191130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 192130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 193130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 194130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 195130f4520SKenneth D. Merry CTL_FLAG_DATA_IN, 196130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 197130f4520SKenneth D. Merry 198130f4520SKenneth D. Merry /* 1B START STOP UNIT */ 199130f4520SKenneth D. Merry {ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 200130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 201130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 202130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_OFFLINE | 203130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE | 204130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 205130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 206130f4520SKenneth D. Merry 207130f4520SKenneth D. Merry /* 1C RECEIVE DIAGNOSTIC RESULTS */ 208130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 209130f4520SKenneth D. Merry 210130f4520SKenneth D. Merry /* 1D SEND DIAGNOSTIC */ 211130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 212130f4520SKenneth D. Merry 213130f4520SKenneth D. Merry /* 1E PREVENT ALLOW MEDIUM REMOVAL */ 214130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 215130f4520SKenneth D. Merry 216130f4520SKenneth D. Merry /* 1F */ 217130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 218130f4520SKenneth D. Merry 219130f4520SKenneth D. Merry /* 20 */ 220130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 221130f4520SKenneth D. Merry 222130f4520SKenneth D. Merry /* 21 */ 223130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 224130f4520SKenneth D. Merry 225130f4520SKenneth D. Merry /* 22 */ 226130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 227130f4520SKenneth D. Merry 228130f4520SKenneth D. Merry /* 23 */ 229130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 230130f4520SKenneth D. Merry 231130f4520SKenneth D. Merry /* 24 SET WINDOW */ 232130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 233130f4520SKenneth D. Merry 234130f4520SKenneth D. Merry /* 25 READ CAPACITY(10) */ 235130f4520SKenneth D. Merry {ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN| 236130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 237130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 238130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 239130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 240130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 241130f4520SKenneth D. Merry CTL_LUN_PAT_READCAP}, 242130f4520SKenneth D. Merry 243130f4520SKenneth D. Merry /* 26 */ 244130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 245130f4520SKenneth D. Merry 246130f4520SKenneth D. Merry /* 27 */ 247130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 248130f4520SKenneth D. Merry 249130f4520SKenneth D. Merry /* 28 READ(10) */ 250130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 251130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 252130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 253130f4520SKenneth D. Merry CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 254130f4520SKenneth D. Merry 255130f4520SKenneth D. Merry /* 29 READ GENERATION */ 256130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 257130f4520SKenneth D. Merry 258130f4520SKenneth D. Merry /* 2A WRITE(10) */ 259130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 260130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 261130f4520SKenneth D. Merry 262130f4520SKenneth D. Merry /* 2B SEEK(10) */ 263130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 264130f4520SKenneth D. Merry 265130f4520SKenneth D. Merry /* 2C ERASE(10) */ 266130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 267130f4520SKenneth D. Merry 268130f4520SKenneth D. Merry /* 2D READ UPDATED BLOCK */ 269130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 270130f4520SKenneth D. Merry 271130f4520SKenneth D. Merry /* 2E WRITE AND VERIFY(10) */ 272130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 273130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 274130f4520SKenneth D. Merry 275130f4520SKenneth D. Merry /* 2F VERIFY(10) */ 276*11b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 277*11b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 278*11b569f7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 279*11b569f7SAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 280130f4520SKenneth D. Merry 281130f4520SKenneth D. Merry /* 30 SEARCH DATA HIGH(10) */ 282130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 283130f4520SKenneth D. Merry 284130f4520SKenneth D. Merry /* 31 SEARCH DATA EQUAL(10) */ 285130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 286130f4520SKenneth D. Merry 287130f4520SKenneth D. Merry /* 32 SEARCH DATA LOW(10) */ 288130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 289130f4520SKenneth D. Merry 290130f4520SKenneth D. Merry /* 33 SET LIMITS(10) */ 291130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 292130f4520SKenneth D. Merry 293130f4520SKenneth D. Merry /* 34 PRE-FETCH(10) */ 294130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 295130f4520SKenneth D. Merry 296130f4520SKenneth D. Merry /* 35 SYNCHRONIZE CACHE(10) */ 297130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 298130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 299130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 300130f4520SKenneth D. Merry 301130f4520SKenneth D. Merry /* 36 LOCK UNLOCK CACHE(10) */ 302130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 303130f4520SKenneth D. Merry 304130f4520SKenneth D. Merry /* 37 READ DEFECT DATA(10) */ 305130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 306130f4520SKenneth D. Merry 307130f4520SKenneth D. Merry /* 38 MEDIUM SCAN */ 308130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 309130f4520SKenneth D. Merry 310130f4520SKenneth D. Merry /* 39 COMPARE */ 311130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 312130f4520SKenneth D. Merry 313130f4520SKenneth D. Merry /* 3A COPY AND VERIFY */ 314130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 315130f4520SKenneth D. Merry 316130f4520SKenneth D. Merry /* 3B WRITE BUFFER */ 317130f4520SKenneth D. Merry {ctl_write_buffer, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_PROC | 318130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 319130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 320130f4520SKenneth D. Merry 321130f4520SKenneth D. Merry /* 3C READ BUFFER */ 322130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 323130f4520SKenneth D. Merry 324130f4520SKenneth D. Merry /* 3D UPDATE BLOCK */ 325130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 326130f4520SKenneth D. Merry 327130f4520SKenneth D. Merry /* 3E READ LONG */ 328130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 329130f4520SKenneth D. Merry 330130f4520SKenneth D. Merry /* 3F WRITE LONG */ 331130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 332130f4520SKenneth D. Merry 333130f4520SKenneth D. Merry /* 40 CHANGE DEFINITION */ 334130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 335130f4520SKenneth D. Merry 336130f4520SKenneth D. Merry /* 41 WRITE SAME(10) */ 337ee7f31c0SAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 338ee7f31c0SAlexander Motin CTL_FLAG_DATA_OUT, 339ee7f31c0SAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 340130f4520SKenneth D. Merry 341ee7f31c0SAlexander Motin /* 42 READ SUB-CHANNEL / UNMAP */ 342004008d6SAlexander Motin {ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT, 343ee7f31c0SAlexander Motin CTL_LUN_PAT_WRITE}, 344130f4520SKenneth D. Merry 345130f4520SKenneth D. Merry /* 43 READ TOC/PMA/ATIP */ 346130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 347130f4520SKenneth D. Merry 348130f4520SKenneth D. Merry /* 44 REPORT DENSITY SUPPORT */ 349130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 350130f4520SKenneth D. Merry 351130f4520SKenneth D. Merry /* 45 PLAY AUDIO(10) */ 352130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 353130f4520SKenneth D. Merry 354130f4520SKenneth D. Merry /* 46 GET CONFIGURATION */ 355130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 356130f4520SKenneth D. Merry 357130f4520SKenneth D. Merry /* 47 PLAY AUDIO MSF */ 358130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 359130f4520SKenneth D. Merry 360130f4520SKenneth D. Merry /* 48 PLAY AUDIO TRACK INDEX */ 361130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 362130f4520SKenneth D. Merry 363130f4520SKenneth D. Merry /* 49 PLAY TRACK RELATIVE(10) */ 364130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 365130f4520SKenneth D. Merry 366130f4520SKenneth D. Merry /* 4A GET EVENT STATUS NOTIFICATION */ 367130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 368130f4520SKenneth D. Merry 369130f4520SKenneth D. Merry /* 4B PAUSE/RESUME */ 370130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 371130f4520SKenneth D. Merry 372130f4520SKenneth D. Merry /* 4C LOG SELECT */ 373130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 374130f4520SKenneth D. Merry 375130f4520SKenneth D. Merry /* 4D LOG SENSE */ 376130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 377130f4520SKenneth D. Merry 378130f4520SKenneth D. Merry /* 4E STOP PLAY/SCAN */ 379130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 380130f4520SKenneth D. Merry 381130f4520SKenneth D. Merry /* 4F */ 382130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 383130f4520SKenneth D. Merry 384130f4520SKenneth D. Merry /* 50 XDWRITE(10) */ 385130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 386130f4520SKenneth D. Merry 387130f4520SKenneth D. Merry /* 51 XPWRITE(10) */ 388130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 389130f4520SKenneth D. Merry 390130f4520SKenneth D. Merry /* 52 XDREAD(10) */ 391130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 392130f4520SKenneth D. Merry 393130f4520SKenneth D. Merry /* 53 RESERVE TRACK */ 394130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 395130f4520SKenneth D. Merry 396130f4520SKenneth D. Merry /* 54 SEND OPC INFORMATION */ 397130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 398130f4520SKenneth D. Merry 399130f4520SKenneth D. Merry /* 55 MODE SELECT(10) */ 400130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 401130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 402130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 403130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 404130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 405130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 406130f4520SKenneth D. Merry 407130f4520SKenneth D. Merry /* 56 RESERVE(10) */ 408130f4520SKenneth D. Merry {ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV | 409130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 410130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 411130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 412130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 413130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 414130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 415130f4520SKenneth D. Merry 416130f4520SKenneth D. Merry /* 57 RELEASE(10) */ 417130f4520SKenneth D. Merry {ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV | 418130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 419130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 420130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 421130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 422130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 423130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 424130f4520SKenneth D. Merry 425130f4520SKenneth D. Merry /* 58 REPAIR TRACK */ 426130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 427130f4520SKenneth D. Merry 428130f4520SKenneth D. Merry /* 59 READ MASTER CUE */ 429130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 430130f4520SKenneth D. Merry 431130f4520SKenneth D. Merry /* 5A MODE SENSE(10) */ 432130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 433130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 434130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 435130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 436130f4520SKenneth D. Merry CTL_FLAG_DATA_IN, 437130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 438130f4520SKenneth D. Merry 439130f4520SKenneth D. Merry /* 5B CLOSE TRACK/SESSION */ 440130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 441130f4520SKenneth D. Merry 442130f4520SKenneth D. Merry /* 5C READ BUFFER CAPACITY */ 443130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 444130f4520SKenneth D. Merry 445130f4520SKenneth D. Merry /* 5D SEND CUE SHEET */ 446130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 447130f4520SKenneth D. Merry 448130f4520SKenneth D. Merry /* 5E PERSISTENT RESERVE IN */ 449130f4520SKenneth D. Merry {ctl_persistent_reserve_in, CTL_SERIDX_PRES_IN, CTL_CMD_FLAG_ALLOW_ON_RESV | 450130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 451130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 452130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 453130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 454130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 455130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 456130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 457130f4520SKenneth D. Merry 458130f4520SKenneth D. Merry //{ctl_persistent_reserve_in, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 459130f4520SKenneth D. Merry 460130f4520SKenneth D. Merry /* 5F PERSISTENT RESERVE OUT */ 461130f4520SKenneth D. Merry {ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV | 462130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 463130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 464130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE| 465130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 466130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT | 467130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 468130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 469130f4520SKenneth D. Merry 470130f4520SKenneth D. Merry //{ctl_persistent_reserve_out, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 471130f4520SKenneth D. Merry 472130f4520SKenneth D. Merry /* 60 */ 473130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 474130f4520SKenneth D. Merry 475130f4520SKenneth D. Merry /* 61 */ 476130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 477130f4520SKenneth D. Merry 478130f4520SKenneth D. Merry /* 62 */ 479130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 480130f4520SKenneth D. Merry 481130f4520SKenneth D. Merry /* 63 */ 482130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 483130f4520SKenneth D. Merry 484130f4520SKenneth D. Merry /* 64 */ 485130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 486130f4520SKenneth D. Merry 487130f4520SKenneth D. Merry /* 65 */ 488130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 489130f4520SKenneth D. Merry 490130f4520SKenneth D. Merry /* 66 */ 491130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 492130f4520SKenneth D. Merry 493130f4520SKenneth D. Merry /* 67 */ 494130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 495130f4520SKenneth D. Merry 496130f4520SKenneth D. Merry /* 68 */ 497130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 498130f4520SKenneth D. Merry 499130f4520SKenneth D. Merry /* 69 */ 500130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 501130f4520SKenneth D. Merry 502130f4520SKenneth D. Merry /* 6A */ 503130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 504130f4520SKenneth D. Merry 505130f4520SKenneth D. Merry /* 6B */ 506130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 507130f4520SKenneth D. Merry 508130f4520SKenneth D. Merry /* 6C */ 509130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 510130f4520SKenneth D. Merry 511130f4520SKenneth D. Merry /* 6D */ 512130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 513130f4520SKenneth D. Merry 514130f4520SKenneth D. Merry /* 6E */ 515130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 516130f4520SKenneth D. Merry 517130f4520SKenneth D. Merry /* 6F */ 518130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 519130f4520SKenneth D. Merry 520130f4520SKenneth D. Merry /* 70 */ 521130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 522130f4520SKenneth D. Merry 523130f4520SKenneth D. Merry /* 71 */ 524130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 525130f4520SKenneth D. Merry 526130f4520SKenneth D. Merry /* 72 */ 527130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 528130f4520SKenneth D. Merry 529130f4520SKenneth D. Merry /* 73 */ 530130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 531130f4520SKenneth D. Merry 532130f4520SKenneth D. Merry /* 74 */ 533130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 534130f4520SKenneth D. Merry 535130f4520SKenneth D. Merry /* 75 */ 536130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 537130f4520SKenneth D. Merry 538130f4520SKenneth D. Merry /* 76 */ 539130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 540130f4520SKenneth D. Merry 541130f4520SKenneth D. Merry /* 77 */ 542130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 543130f4520SKenneth D. Merry 544130f4520SKenneth D. Merry /* 78 */ 545130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 546130f4520SKenneth D. Merry 547130f4520SKenneth D. Merry /* 79 */ 548130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 549130f4520SKenneth D. Merry 550130f4520SKenneth D. Merry /* 7A */ 551130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 552130f4520SKenneth D. Merry 553130f4520SKenneth D. Merry /* 7B */ 554130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 555130f4520SKenneth D. Merry 556130f4520SKenneth D. Merry /* 7C */ 557130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 558130f4520SKenneth D. Merry 559130f4520SKenneth D. Merry /* 7D */ 560130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 561130f4520SKenneth D. Merry 562130f4520SKenneth D. Merry /* 7E */ 563130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 564130f4520SKenneth D. Merry 565130f4520SKenneth D. Merry /* 7F */ 566130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 567130f4520SKenneth D. Merry 568130f4520SKenneth D. Merry /* 80 XDWRITE EXTENDED(16) */ 569130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 570130f4520SKenneth D. Merry 571130f4520SKenneth D. Merry /* 81 REBUILD(16) */ 572130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 573130f4520SKenneth D. Merry 574130f4520SKenneth D. Merry /* 82 REGENERATE(16) */ 575130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 576130f4520SKenneth D. Merry 577130f4520SKenneth D. Merry /* 83 EXTENDED COPY */ 578130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 579130f4520SKenneth D. Merry 580130f4520SKenneth D. Merry /* 84 RECEIVE COPY RESULTS */ 581130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 582130f4520SKenneth D. Merry 583130f4520SKenneth D. Merry /* 85 */ 584130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 585130f4520SKenneth D. Merry 586130f4520SKenneth D. Merry /* 86 ACCESS CONTROL IN */ 587130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 588130f4520SKenneth D. Merry 589130f4520SKenneth D. Merry /* 87 ACCESS CONTROL OUT */ 590130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 591130f4520SKenneth D. Merry 592130f4520SKenneth D. Merry /* 88 READ(16) */ 593130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 594130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 595130f4520SKenneth D. Merry CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 596130f4520SKenneth D. Merry 597*11b569f7SAlexander Motin /* 89 COMPARE AND WRITE */ 598*11b569f7SAlexander Motin {ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 599*11b569f7SAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 600130f4520SKenneth D. Merry 601130f4520SKenneth D. Merry /* 8A WRITE(16) */ 602130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 603130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 604130f4520SKenneth D. Merry 605130f4520SKenneth D. Merry /* 8B */ 606130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 607130f4520SKenneth D. Merry 608130f4520SKenneth D. Merry /* 8C READ ATTRIBUTE */ 609130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 610130f4520SKenneth D. Merry 611130f4520SKenneth D. Merry /* 8D WRITE ATTRIBUTE */ 612130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 613130f4520SKenneth D. Merry 614130f4520SKenneth D. Merry /* 8E WRITE AND VERIFY(16) */ 615130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 616130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 617130f4520SKenneth D. Merry 618130f4520SKenneth D. Merry /* 8F VERIFY(16) */ 619*11b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 620*11b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 621*11b569f7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 622*11b569f7SAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 623130f4520SKenneth D. Merry 624130f4520SKenneth D. Merry /* 90 PRE-FETCH(16) */ 625130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 626130f4520SKenneth D. Merry 627130f4520SKenneth D. Merry /* 91 SYNCHRONIZE CACHE(16) */ 628130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 629130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 630130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 631130f4520SKenneth D. Merry 632130f4520SKenneth D. Merry /* 92 LOCK UNLOCK CACHE(16) */ 633130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 634130f4520SKenneth D. Merry 635130f4520SKenneth D. Merry /* 93 WRITE SAME(16) */ 636ee7f31c0SAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 637ee7f31c0SAlexander Motin CTL_FLAG_DATA_OUT, 638ee7f31c0SAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 639130f4520SKenneth D. Merry 640130f4520SKenneth D. Merry /* 94 */ 641130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 642130f4520SKenneth D. Merry 643130f4520SKenneth D. Merry /* 95 */ 644130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 645130f4520SKenneth D. Merry 646130f4520SKenneth D. Merry /* 96 */ 647130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 648130f4520SKenneth D. Merry 649130f4520SKenneth D. Merry /* 97 */ 650130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 651130f4520SKenneth D. Merry 652130f4520SKenneth D. Merry /* 98 */ 653130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 654130f4520SKenneth D. Merry 655130f4520SKenneth D. Merry /* 99 */ 656130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 657130f4520SKenneth D. Merry 658130f4520SKenneth D. Merry /* 9A */ 659130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 660130f4520SKenneth D. Merry 661130f4520SKenneth D. Merry /* 9B */ 662130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 663130f4520SKenneth D. Merry 664130f4520SKenneth D. Merry /* 9C */ 665130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 666130f4520SKenneth D. Merry 667130f4520SKenneth D. Merry /* 9D */ 668130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 669130f4520SKenneth D. Merry 670130f4520SKenneth D. Merry /* 9E SERVICE ACTION IN(16) */ 671130f4520SKenneth D. Merry /* XXX KDM not all service actions will be read capacity!! */ 672130f4520SKenneth D. Merry {ctl_service_action_in, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 673130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 674130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 675130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 676130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 677130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 678130f4520SKenneth D. Merry CTL_LUN_PAT_READCAP}, 679130f4520SKenneth D. Merry 680130f4520SKenneth D. Merry /* 9F SERVICE ACTION OUT(16) */ 681130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 682130f4520SKenneth D. Merry 683130f4520SKenneth D. Merry /* A0 REPORT LUNS */ 684130f4520SKenneth D. Merry {ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 685130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 686130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 687130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 688130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 689130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_OFFLINE | 690130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 691130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 692130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 693130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 694130f4520SKenneth D. Merry 695130f4520SKenneth D. Merry /* A1 BLANK */ 696130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 697130f4520SKenneth D. Merry 698130f4520SKenneth D. Merry /* A2 SEND EVENT */ 699130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 700130f4520SKenneth D. Merry 701130f4520SKenneth D. Merry /* A3 MAINTENANCE (IN) Service Action - (0A) REPORT TARGET PORT GROUP */ 702130f4520SKenneth D. Merry {ctl_maintenance_in, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH | 703130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 704130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 705130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 706130f4520SKenneth D. Merry CTL_FLAG_DATA_IN, 707130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 708130f4520SKenneth D. Merry 709130f4520SKenneth D. Merry /* A4 MAINTENANCE (OUT) */ 710130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 711130f4520SKenneth D. Merry 712130f4520SKenneth D. Merry /* A5 MOVE MEDIUM */ 713130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 714130f4520SKenneth D. Merry 715130f4520SKenneth D. Merry /* A6 EXCHANGE MEDIUM */ 716130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 717130f4520SKenneth D. Merry 718130f4520SKenneth D. Merry /* A7 MOVE MEDIUM ATTACHED */ 719130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 720130f4520SKenneth D. Merry 721130f4520SKenneth D. Merry /* A8 READ(12) */ 722130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 723130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 724130f4520SKenneth D. Merry CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 725130f4520SKenneth D. Merry 726130f4520SKenneth D. Merry /* A9 PLAY TRACK RELATIVE(12) */ 727130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 728130f4520SKenneth D. Merry 729130f4520SKenneth D. Merry /* AA WRITE(12) */ 730130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 731130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 732130f4520SKenneth D. Merry 733130f4520SKenneth D. Merry /* AB SERVICE ACTION IN(12) */ 734130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 735130f4520SKenneth D. Merry 736130f4520SKenneth D. Merry /* AC ERASE(12) */ 737130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 738130f4520SKenneth D. Merry 739130f4520SKenneth D. Merry /* AD READ DVD STRUCTURE */ 740130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 741130f4520SKenneth D. Merry 742130f4520SKenneth D. Merry /* AE WRITE AND VERIFY(12) */ 743130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 744130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 745130f4520SKenneth D. Merry 746130f4520SKenneth D. Merry /* AF VERIFY(12) */ 747*11b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 748*11b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 749*11b569f7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 750*11b569f7SAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 751130f4520SKenneth D. Merry 752130f4520SKenneth D. Merry /* B0 SEARCH DATA HIGH(12) */ 753130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 754130f4520SKenneth D. Merry 755130f4520SKenneth D. Merry /* B1 SEARCH DATA EQUAL(12) */ 756130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 757130f4520SKenneth D. Merry 758130f4520SKenneth D. Merry /* B2 SEARCH DATA LOW(12) */ 759130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 760130f4520SKenneth D. Merry 761130f4520SKenneth D. Merry /* B3 SET LIMITS(12) */ 762130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 763130f4520SKenneth D. Merry 764130f4520SKenneth D. Merry /* B4 READ ELEMENT STATUS ATTACHED */ 765130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 766130f4520SKenneth D. Merry 767130f4520SKenneth D. Merry /* B5 REQUEST VOLUME ELEMENT ADDRESS */ 768130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 769130f4520SKenneth D. Merry 770130f4520SKenneth D. Merry /* B6 SEND VOLUME TAG */ 771130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 772130f4520SKenneth D. Merry 773130f4520SKenneth D. Merry /* B7 READ DEFECT DATA(12) */ 774130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 775130f4520SKenneth D. Merry 776130f4520SKenneth D. Merry /* B8 READ ELEMENT STATUS */ 777130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 778130f4520SKenneth D. Merry 779130f4520SKenneth D. Merry /* B9 READ CD MSF */ 780130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 781130f4520SKenneth D. Merry 782130f4520SKenneth D. Merry /* BA REDUNDANCY GROUP (IN) */ 783130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 784130f4520SKenneth D. Merry 785130f4520SKenneth D. Merry /* BB REDUNDANCY GROUP (OUT) */ 786130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 787130f4520SKenneth D. Merry 788130f4520SKenneth D. Merry /* BC SPARE (IN) */ 789130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 790130f4520SKenneth D. Merry 791130f4520SKenneth D. Merry /* BD SPARE (OUT) */ 792130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 793130f4520SKenneth D. Merry 794130f4520SKenneth D. Merry /* BE VOLUME SET (IN) */ 795130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 796130f4520SKenneth D. Merry 797130f4520SKenneth D. Merry /* BF VOLUME SET (OUT) */ 798130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 799130f4520SKenneth D. Merry 800130f4520SKenneth D. Merry /* C0 - ISC_SEND_MSG_SHORT */ 801130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 802130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE, 803130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 804130f4520SKenneth D. Merry 805130f4520SKenneth D. Merry /* C1 - ISC_SEND_MSG */ 806130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 807130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 808130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 809130f4520SKenneth D. Merry 810130f4520SKenneth D. Merry /* C2 - ISC_WRITE */ 811130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 812130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 813130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 814130f4520SKenneth D. Merry 815130f4520SKenneth D. Merry /* C3 - ISC_READ */ 816130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 817130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN, 818130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 819130f4520SKenneth D. Merry 820130f4520SKenneth D. Merry /* C4 */ 821130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 822130f4520SKenneth D. Merry 823130f4520SKenneth D. Merry /* C5 */ 824130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 825130f4520SKenneth D. Merry 826130f4520SKenneth D. Merry /* C6 */ 827130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 828130f4520SKenneth D. Merry 829130f4520SKenneth D. Merry /* C7 */ 830130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 831130f4520SKenneth D. Merry 832130f4520SKenneth D. Merry /* C8 */ 833130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 834130f4520SKenneth D. Merry 835130f4520SKenneth D. Merry /* C9 */ 836130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 837130f4520SKenneth D. Merry 838130f4520SKenneth D. Merry /* CA */ 839130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 840130f4520SKenneth D. Merry 841130f4520SKenneth D. Merry /* CB */ 842130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 843130f4520SKenneth D. Merry 844130f4520SKenneth D. Merry /* CC */ 845130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 846130f4520SKenneth D. Merry 847130f4520SKenneth D. Merry /* CD */ 848130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 849130f4520SKenneth D. Merry 850130f4520SKenneth D. Merry /* CE */ 851130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 852130f4520SKenneth D. Merry 853130f4520SKenneth D. Merry /* CF */ 854130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 855130f4520SKenneth D. Merry 856130f4520SKenneth D. Merry /* D0 */ 857130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 858130f4520SKenneth D. Merry 859130f4520SKenneth D. Merry /* D1 */ 860130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 861130f4520SKenneth D. Merry 862130f4520SKenneth D. Merry /* D2 */ 863130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 864130f4520SKenneth D. Merry 865130f4520SKenneth D. Merry /* D3 */ 866130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 867130f4520SKenneth D. Merry 868130f4520SKenneth D. Merry /* D4 */ 869130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 870130f4520SKenneth D. Merry 871130f4520SKenneth D. Merry /* D5 */ 872130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 873130f4520SKenneth D. Merry 874130f4520SKenneth D. Merry /* D6 */ 875130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 876130f4520SKenneth D. Merry 877130f4520SKenneth D. Merry /* D7 */ 878130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 879130f4520SKenneth D. Merry 880130f4520SKenneth D. Merry /* D8 */ 881130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 882130f4520SKenneth D. Merry 883130f4520SKenneth D. Merry /* D9 */ 884130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 885130f4520SKenneth D. Merry 886130f4520SKenneth D. Merry /* DA */ 887130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 888130f4520SKenneth D. Merry 889130f4520SKenneth D. Merry /* DB */ 890130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 891130f4520SKenneth D. Merry 892130f4520SKenneth D. Merry /* DC */ 893130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 894130f4520SKenneth D. Merry 895130f4520SKenneth D. Merry /* DD */ 896130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 897130f4520SKenneth D. Merry 898130f4520SKenneth D. Merry /* DE */ 899130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 900130f4520SKenneth D. Merry 901130f4520SKenneth D. Merry /* DF */ 902130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 903130f4520SKenneth D. Merry 904130f4520SKenneth D. Merry /* E0 */ 905130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 906130f4520SKenneth D. Merry 907130f4520SKenneth D. Merry /* E1 */ 908130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 909130f4520SKenneth D. Merry 910130f4520SKenneth D. Merry /* E2 */ 911130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 912130f4520SKenneth D. Merry 913130f4520SKenneth D. Merry /* E3 */ 914130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 915130f4520SKenneth D. Merry 916130f4520SKenneth D. Merry /* E4 */ 917130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 918130f4520SKenneth D. Merry 919130f4520SKenneth D. Merry /* E5 */ 920130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 921130f4520SKenneth D. Merry 922130f4520SKenneth D. Merry /* E6 */ 923130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 924130f4520SKenneth D. Merry 925130f4520SKenneth D. Merry /* E7 */ 926130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 927130f4520SKenneth D. Merry 928130f4520SKenneth D. Merry /* E8 */ 929130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 930130f4520SKenneth D. Merry 931130f4520SKenneth D. Merry /* E9 */ 932130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 933130f4520SKenneth D. Merry 934130f4520SKenneth D. Merry /* EA */ 935130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 936130f4520SKenneth D. Merry 937130f4520SKenneth D. Merry /* EB */ 938130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 939130f4520SKenneth D. Merry 940130f4520SKenneth D. Merry /* EC */ 941130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 942130f4520SKenneth D. Merry 943130f4520SKenneth D. Merry /* ED */ 944130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 945130f4520SKenneth D. Merry 946130f4520SKenneth D. Merry /* EE */ 947130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 948130f4520SKenneth D. Merry 949130f4520SKenneth D. Merry /* EF */ 950130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 951130f4520SKenneth D. Merry 952130f4520SKenneth D. Merry /* F0 */ 953130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 954130f4520SKenneth D. Merry 955130f4520SKenneth D. Merry /* F1 */ 956130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 957130f4520SKenneth D. Merry 958130f4520SKenneth D. Merry /* F2 */ 959130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 960130f4520SKenneth D. Merry 961130f4520SKenneth D. Merry /* F3 */ 962130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 963130f4520SKenneth D. Merry 964130f4520SKenneth D. Merry /* F4 */ 965130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 966130f4520SKenneth D. Merry 967130f4520SKenneth D. Merry /* F5 */ 968130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 969130f4520SKenneth D. Merry 970130f4520SKenneth D. Merry /* F6 */ 971130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 972130f4520SKenneth D. Merry 973130f4520SKenneth D. Merry /* F7 */ 974130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 975130f4520SKenneth D. Merry 976130f4520SKenneth D. Merry /* F8 */ 977130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 978130f4520SKenneth D. Merry 979130f4520SKenneth D. Merry /* F9 */ 980130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 981130f4520SKenneth D. Merry 982130f4520SKenneth D. Merry /* FA */ 983130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 984130f4520SKenneth D. Merry 985130f4520SKenneth D. Merry /* FB */ 986130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 987130f4520SKenneth D. Merry 988130f4520SKenneth D. Merry /* FC */ 989130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 990130f4520SKenneth D. Merry 991130f4520SKenneth D. Merry /* FD */ 992130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 993130f4520SKenneth D. Merry 994130f4520SKenneth D. Merry /* FE */ 995130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 996130f4520SKenneth D. Merry 997130f4520SKenneth D. Merry /* FF */ 998130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 999130f4520SKenneth D. Merry 1000130f4520SKenneth D. Merry }; 1001