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 | 195*f82388fdSAlexander Motin CTL_FLAG_DATA_IN | 196*f82388fdSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 197130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 198130f4520SKenneth D. Merry 199130f4520SKenneth D. Merry /* 1B START STOP UNIT */ 200130f4520SKenneth D. Merry {ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 201130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 202130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 203130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_OFFLINE | 204130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE | 205130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 206130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 207130f4520SKenneth D. Merry 208130f4520SKenneth D. Merry /* 1C RECEIVE DIAGNOSTIC RESULTS */ 209130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 210130f4520SKenneth D. Merry 211130f4520SKenneth D. Merry /* 1D SEND DIAGNOSTIC */ 212130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 213130f4520SKenneth D. Merry 214130f4520SKenneth D. Merry /* 1E PREVENT ALLOW MEDIUM REMOVAL */ 215130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 216130f4520SKenneth D. Merry 217130f4520SKenneth D. Merry /* 1F */ 218130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 219130f4520SKenneth D. Merry 220130f4520SKenneth D. Merry /* 20 */ 221130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 222130f4520SKenneth D. Merry 223130f4520SKenneth D. Merry /* 21 */ 224130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 225130f4520SKenneth D. Merry 226130f4520SKenneth D. Merry /* 22 */ 227130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 228130f4520SKenneth D. Merry 229130f4520SKenneth D. Merry /* 23 */ 230130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 231130f4520SKenneth D. Merry 232130f4520SKenneth D. Merry /* 24 SET WINDOW */ 233130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 234130f4520SKenneth D. Merry 235130f4520SKenneth D. Merry /* 25 READ CAPACITY(10) */ 236130f4520SKenneth D. Merry {ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN| 237130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 238130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 239130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 240130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 241130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 242130f4520SKenneth D. Merry CTL_LUN_PAT_READCAP}, 243130f4520SKenneth D. Merry 244130f4520SKenneth D. Merry /* 26 */ 245130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 246130f4520SKenneth D. Merry 247130f4520SKenneth D. Merry /* 27 */ 248130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 249130f4520SKenneth D. Merry 250130f4520SKenneth D. Merry /* 28 READ(10) */ 251130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 252130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 253130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 254130f4520SKenneth D. Merry CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 255130f4520SKenneth D. Merry 256130f4520SKenneth D. Merry /* 29 READ GENERATION */ 257130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 258130f4520SKenneth D. Merry 259130f4520SKenneth D. Merry /* 2A WRITE(10) */ 260130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 261130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 262130f4520SKenneth D. Merry 263130f4520SKenneth D. Merry /* 2B SEEK(10) */ 264130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 265130f4520SKenneth D. Merry 266130f4520SKenneth D. Merry /* 2C ERASE(10) */ 267130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 268130f4520SKenneth D. Merry 269130f4520SKenneth D. Merry /* 2D READ UPDATED BLOCK */ 270130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 271130f4520SKenneth D. Merry 272130f4520SKenneth D. Merry /* 2E WRITE AND VERIFY(10) */ 273130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 274130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 275130f4520SKenneth D. Merry 276130f4520SKenneth D. Merry /* 2F VERIFY(10) */ 27711b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 27811b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 27911b569f7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 28011b569f7SAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 281130f4520SKenneth D. Merry 282130f4520SKenneth D. Merry /* 30 SEARCH DATA HIGH(10) */ 283130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 284130f4520SKenneth D. Merry 285130f4520SKenneth D. Merry /* 31 SEARCH DATA EQUAL(10) */ 286130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 287130f4520SKenneth D. Merry 288130f4520SKenneth D. Merry /* 32 SEARCH DATA LOW(10) */ 289130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 290130f4520SKenneth D. Merry 291130f4520SKenneth D. Merry /* 33 SET LIMITS(10) */ 292130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 293130f4520SKenneth D. Merry 294130f4520SKenneth D. Merry /* 34 PRE-FETCH(10) */ 295130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 296130f4520SKenneth D. Merry 297130f4520SKenneth D. Merry /* 35 SYNCHRONIZE CACHE(10) */ 298130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 299130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 300130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 301130f4520SKenneth D. Merry 302130f4520SKenneth D. Merry /* 36 LOCK UNLOCK CACHE(10) */ 303130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 304130f4520SKenneth D. Merry 305130f4520SKenneth D. Merry /* 37 READ DEFECT DATA(10) */ 306130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 307130f4520SKenneth D. Merry 308130f4520SKenneth D. Merry /* 38 MEDIUM SCAN */ 309130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 310130f4520SKenneth D. Merry 311130f4520SKenneth D. Merry /* 39 COMPARE */ 312130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 313130f4520SKenneth D. Merry 314130f4520SKenneth D. Merry /* 3A COPY AND VERIFY */ 315130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 316130f4520SKenneth D. Merry 317130f4520SKenneth D. Merry /* 3B WRITE BUFFER */ 31885165a3fSAlexander Motin {ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 319130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 320130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 321130f4520SKenneth D. Merry 322130f4520SKenneth D. Merry /* 3C READ BUFFER */ 32385165a3fSAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 32485165a3fSAlexander Motin CTL_FLAG_DATA_IN | 32585165a3fSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 32685165a3fSAlexander Motin CTL_LUN_PAT_NONE}, 327130f4520SKenneth D. Merry 328130f4520SKenneth D. Merry /* 3D UPDATE BLOCK */ 329130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 330130f4520SKenneth D. Merry 331130f4520SKenneth D. Merry /* 3E READ LONG */ 332130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 333130f4520SKenneth D. Merry 334130f4520SKenneth D. Merry /* 3F WRITE LONG */ 335130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 336130f4520SKenneth D. Merry 337130f4520SKenneth D. Merry /* 40 CHANGE DEFINITION */ 338130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 339130f4520SKenneth D. Merry 340130f4520SKenneth D. Merry /* 41 WRITE SAME(10) */ 341ee7f31c0SAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 342ee7f31c0SAlexander Motin CTL_FLAG_DATA_OUT, 343ee7f31c0SAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 344130f4520SKenneth D. Merry 345ee7f31c0SAlexander Motin /* 42 READ SUB-CHANNEL / UNMAP */ 346004008d6SAlexander Motin {ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT, 347ee7f31c0SAlexander Motin CTL_LUN_PAT_WRITE}, 348130f4520SKenneth D. Merry 349130f4520SKenneth D. Merry /* 43 READ TOC/PMA/ATIP */ 350130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 351130f4520SKenneth D. Merry 352130f4520SKenneth D. Merry /* 44 REPORT DENSITY SUPPORT */ 353130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 354130f4520SKenneth D. Merry 355130f4520SKenneth D. Merry /* 45 PLAY AUDIO(10) */ 356130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 357130f4520SKenneth D. Merry 358130f4520SKenneth D. Merry /* 46 GET CONFIGURATION */ 359130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 360130f4520SKenneth D. Merry 361130f4520SKenneth D. Merry /* 47 PLAY AUDIO MSF */ 362130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 363130f4520SKenneth D. Merry 364130f4520SKenneth D. Merry /* 48 PLAY AUDIO TRACK INDEX */ 365130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 366130f4520SKenneth D. Merry 367130f4520SKenneth D. Merry /* 49 PLAY TRACK RELATIVE(10) */ 368130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 369130f4520SKenneth D. Merry 370130f4520SKenneth D. Merry /* 4A GET EVENT STATUS NOTIFICATION */ 371130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 372130f4520SKenneth D. Merry 373130f4520SKenneth D. Merry /* 4B PAUSE/RESUME */ 374130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 375130f4520SKenneth D. Merry 376130f4520SKenneth D. Merry /* 4C LOG SELECT */ 377130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 378130f4520SKenneth D. Merry 379130f4520SKenneth D. Merry /* 4D LOG SENSE */ 380130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 381130f4520SKenneth D. Merry 382130f4520SKenneth D. Merry /* 4E STOP PLAY/SCAN */ 383130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 384130f4520SKenneth D. Merry 385130f4520SKenneth D. Merry /* 4F */ 386130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 387130f4520SKenneth D. Merry 388130f4520SKenneth D. Merry /* 50 XDWRITE(10) */ 389130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 390130f4520SKenneth D. Merry 391130f4520SKenneth D. Merry /* 51 XPWRITE(10) */ 392130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 393130f4520SKenneth D. Merry 394130f4520SKenneth D. Merry /* 52 XDREAD(10) */ 395130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 396130f4520SKenneth D. Merry 397130f4520SKenneth D. Merry /* 53 RESERVE TRACK */ 398130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 399130f4520SKenneth D. Merry 400130f4520SKenneth D. Merry /* 54 SEND OPC INFORMATION */ 401130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 402130f4520SKenneth D. Merry 403130f4520SKenneth D. Merry /* 55 MODE SELECT(10) */ 404130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 405130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 406130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 407130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 408130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 409130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 410130f4520SKenneth D. Merry 411130f4520SKenneth D. Merry /* 56 RESERVE(10) */ 412130f4520SKenneth D. Merry {ctl_scsi_reserve, CTL_SERIDX_RESV, CTL_CMD_FLAG_ALLOW_ON_RESV | 413130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 414130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 415130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 416130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 417130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 418130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 419130f4520SKenneth D. Merry 420130f4520SKenneth D. Merry /* 57 RELEASE(10) */ 421130f4520SKenneth D. Merry {ctl_scsi_release, CTL_SERIDX_REL, CTL_CMD_FLAG_ALLOW_ON_RESV | 422130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 423130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 424130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 425130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 426130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 427130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 428130f4520SKenneth D. Merry 429130f4520SKenneth D. Merry /* 58 REPAIR TRACK */ 430130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 431130f4520SKenneth D. Merry 432130f4520SKenneth D. Merry /* 59 READ MASTER CUE */ 433130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 434130f4520SKenneth D. Merry 435130f4520SKenneth D. Merry /* 5A MODE SENSE(10) */ 436130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 437130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 438130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 439130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 440*f82388fdSAlexander Motin CTL_FLAG_DATA_IN | 441*f82388fdSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 442130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 443130f4520SKenneth D. Merry 444130f4520SKenneth D. Merry /* 5B CLOSE TRACK/SESSION */ 445130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 446130f4520SKenneth D. Merry 447130f4520SKenneth D. Merry /* 5C READ BUFFER CAPACITY */ 448130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 449130f4520SKenneth D. Merry 450130f4520SKenneth D. Merry /* 5D SEND CUE SHEET */ 451130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 452130f4520SKenneth D. Merry 453130f4520SKenneth D. Merry /* 5E PERSISTENT RESERVE IN */ 454130f4520SKenneth D. Merry {ctl_persistent_reserve_in, CTL_SERIDX_PRES_IN, CTL_CMD_FLAG_ALLOW_ON_RESV | 455130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 456130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 457130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 458130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 459130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 460130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 461130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 462130f4520SKenneth D. Merry 463130f4520SKenneth D. Merry //{ctl_persistent_reserve_in, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 464130f4520SKenneth D. Merry 465130f4520SKenneth D. Merry /* 5F PERSISTENT RESERVE OUT */ 466130f4520SKenneth D. Merry {ctl_persistent_reserve_out, CTL_SERIDX_PRES_OUT, CTL_CMD_FLAG_ALLOW_ON_RESV | 467130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 468130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 469130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE| 470130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 471130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT | 472130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 473130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 474130f4520SKenneth D. Merry 475130f4520SKenneth D. Merry //{ctl_persistent_reserve_out, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 476130f4520SKenneth D. Merry 477130f4520SKenneth D. Merry /* 60 */ 478130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 479130f4520SKenneth D. Merry 480130f4520SKenneth D. Merry /* 61 */ 481130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 482130f4520SKenneth D. Merry 483130f4520SKenneth D. Merry /* 62 */ 484130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 485130f4520SKenneth D. Merry 486130f4520SKenneth D. Merry /* 63 */ 487130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 488130f4520SKenneth D. Merry 489130f4520SKenneth D. Merry /* 64 */ 490130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 491130f4520SKenneth D. Merry 492130f4520SKenneth D. Merry /* 65 */ 493130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 494130f4520SKenneth D. Merry 495130f4520SKenneth D. Merry /* 66 */ 496130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 497130f4520SKenneth D. Merry 498130f4520SKenneth D. Merry /* 67 */ 499130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 500130f4520SKenneth D. Merry 501130f4520SKenneth D. Merry /* 68 */ 502130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 503130f4520SKenneth D. Merry 504130f4520SKenneth D. Merry /* 69 */ 505130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 506130f4520SKenneth D. Merry 507130f4520SKenneth D. Merry /* 6A */ 508130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 509130f4520SKenneth D. Merry 510130f4520SKenneth D. Merry /* 6B */ 511130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 512130f4520SKenneth D. Merry 513130f4520SKenneth D. Merry /* 6C */ 514130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 515130f4520SKenneth D. Merry 516130f4520SKenneth D. Merry /* 6D */ 517130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 518130f4520SKenneth D. Merry 519130f4520SKenneth D. Merry /* 6E */ 520130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 521130f4520SKenneth D. Merry 522130f4520SKenneth D. Merry /* 6F */ 523130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 524130f4520SKenneth D. Merry 525130f4520SKenneth D. Merry /* 70 */ 526130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 527130f4520SKenneth D. Merry 528130f4520SKenneth D. Merry /* 71 */ 529130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 530130f4520SKenneth D. Merry 531130f4520SKenneth D. Merry /* 72 */ 532130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 533130f4520SKenneth D. Merry 534130f4520SKenneth D. Merry /* 73 */ 535130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 536130f4520SKenneth D. Merry 537130f4520SKenneth D. Merry /* 74 */ 538130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 539130f4520SKenneth D. Merry 540130f4520SKenneth D. Merry /* 75 */ 541130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 542130f4520SKenneth D. Merry 543130f4520SKenneth D. Merry /* 76 */ 544130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 545130f4520SKenneth D. Merry 546130f4520SKenneth D. Merry /* 77 */ 547130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 548130f4520SKenneth D. Merry 549130f4520SKenneth D. Merry /* 78 */ 550130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 551130f4520SKenneth D. Merry 552130f4520SKenneth D. Merry /* 79 */ 553130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 554130f4520SKenneth D. Merry 555130f4520SKenneth D. Merry /* 7A */ 556130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 557130f4520SKenneth D. Merry 558130f4520SKenneth D. Merry /* 7B */ 559130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 560130f4520SKenneth D. Merry 561130f4520SKenneth D. Merry /* 7C */ 562130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 563130f4520SKenneth D. Merry 564130f4520SKenneth D. Merry /* 7D */ 565130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 566130f4520SKenneth D. Merry 567130f4520SKenneth D. Merry /* 7E */ 568130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 569130f4520SKenneth D. Merry 570130f4520SKenneth D. Merry /* 7F */ 571130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 572130f4520SKenneth D. Merry 573130f4520SKenneth D. Merry /* 80 XDWRITE EXTENDED(16) */ 574130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 575130f4520SKenneth D. Merry 576130f4520SKenneth D. Merry /* 81 REBUILD(16) */ 577130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 578130f4520SKenneth D. Merry 579130f4520SKenneth D. Merry /* 82 REGENERATE(16) */ 580130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 581130f4520SKenneth D. Merry 582130f4520SKenneth D. Merry /* 83 EXTENDED COPY */ 583130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 584130f4520SKenneth D. Merry 585130f4520SKenneth D. Merry /* 84 RECEIVE COPY RESULTS */ 586130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 587130f4520SKenneth D. Merry 588130f4520SKenneth D. Merry /* 85 */ 589130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 590130f4520SKenneth D. Merry 591130f4520SKenneth D. Merry /* 86 ACCESS CONTROL IN */ 592130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 593130f4520SKenneth D. Merry 594130f4520SKenneth D. Merry /* 87 ACCESS CONTROL OUT */ 595130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 596130f4520SKenneth D. Merry 597130f4520SKenneth D. Merry /* 88 READ(16) */ 598130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 599130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 600130f4520SKenneth D. Merry CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 601130f4520SKenneth D. Merry 60211b569f7SAlexander Motin /* 89 COMPARE AND WRITE */ 60311b569f7SAlexander Motin {ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 60411b569f7SAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 605130f4520SKenneth D. Merry 606130f4520SKenneth D. Merry /* 8A WRITE(16) */ 607130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 608130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 609130f4520SKenneth D. Merry 610130f4520SKenneth D. Merry /* 8B */ 611130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 612130f4520SKenneth D. Merry 613130f4520SKenneth D. Merry /* 8C READ ATTRIBUTE */ 614130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 615130f4520SKenneth D. Merry 616130f4520SKenneth D. Merry /* 8D WRITE ATTRIBUTE */ 617130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 618130f4520SKenneth D. Merry 619130f4520SKenneth D. Merry /* 8E WRITE AND VERIFY(16) */ 620130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 621130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 622130f4520SKenneth D. Merry 623130f4520SKenneth D. Merry /* 8F VERIFY(16) */ 62411b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 62511b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 62611b569f7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 62711b569f7SAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 628130f4520SKenneth D. Merry 629130f4520SKenneth D. Merry /* 90 PRE-FETCH(16) */ 630130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 631130f4520SKenneth D. Merry 632130f4520SKenneth D. Merry /* 91 SYNCHRONIZE CACHE(16) */ 633130f4520SKenneth D. Merry {ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 634130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 635130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 636130f4520SKenneth D. Merry 637130f4520SKenneth D. Merry /* 92 LOCK UNLOCK CACHE(16) */ 638130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 639130f4520SKenneth D. Merry 640130f4520SKenneth D. Merry /* 93 WRITE SAME(16) */ 641ee7f31c0SAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 642ee7f31c0SAlexander Motin CTL_FLAG_DATA_OUT, 643ee7f31c0SAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 644130f4520SKenneth D. Merry 645130f4520SKenneth D. Merry /* 94 */ 646130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 647130f4520SKenneth D. Merry 648130f4520SKenneth D. Merry /* 95 */ 649130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 650130f4520SKenneth D. Merry 651130f4520SKenneth D. Merry /* 96 */ 652130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 653130f4520SKenneth D. Merry 654130f4520SKenneth D. Merry /* 97 */ 655130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 656130f4520SKenneth D. Merry 657130f4520SKenneth D. Merry /* 98 */ 658130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 659130f4520SKenneth D. Merry 660130f4520SKenneth D. Merry /* 99 */ 661130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 662130f4520SKenneth D. Merry 663130f4520SKenneth D. Merry /* 9A */ 664130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 665130f4520SKenneth D. Merry 666130f4520SKenneth D. Merry /* 9B */ 667130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 668130f4520SKenneth D. Merry 669130f4520SKenneth D. Merry /* 9C */ 670130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 671130f4520SKenneth D. Merry 672130f4520SKenneth D. Merry /* 9D */ 673130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 674130f4520SKenneth D. Merry 675130f4520SKenneth D. Merry /* 9E SERVICE ACTION IN(16) */ 676130f4520SKenneth D. Merry /* XXX KDM not all service actions will be read capacity!! */ 677130f4520SKenneth D. Merry {ctl_service_action_in, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 678130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 679130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 680130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 681130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 682130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 683130f4520SKenneth D. Merry CTL_LUN_PAT_READCAP}, 684130f4520SKenneth D. Merry 685130f4520SKenneth D. Merry /* 9F SERVICE ACTION OUT(16) */ 686130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 687130f4520SKenneth D. Merry 688130f4520SKenneth D. Merry /* A0 REPORT LUNS */ 689130f4520SKenneth D. Merry {ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 690130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 691130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 692130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 693130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 694130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_OFFLINE | 695130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 696130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 697130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 698130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 699130f4520SKenneth D. Merry 700130f4520SKenneth D. Merry /* A1 BLANK */ 701130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 702130f4520SKenneth D. Merry 703130f4520SKenneth D. Merry /* A2 SEND EVENT */ 704130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 705130f4520SKenneth D. Merry 706130f4520SKenneth D. Merry /* A3 MAINTENANCE (IN) Service Action - (0A) REPORT TARGET PORT GROUP */ 707130f4520SKenneth D. Merry {ctl_maintenance_in, CTL_SERIDX_MAIN_IN, CTL_CMD_FLAG_OK_ON_BOTH | 708130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_STOPPED | 709130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_INOPERABLE | 710130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_SECONDARY | 711130f4520SKenneth D. Merry CTL_FLAG_DATA_IN, 712130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 713130f4520SKenneth D. Merry 714130f4520SKenneth D. Merry /* A4 MAINTENANCE (OUT) */ 715130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 716130f4520SKenneth D. Merry 717130f4520SKenneth D. Merry /* A5 MOVE MEDIUM */ 718130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 719130f4520SKenneth D. Merry 720130f4520SKenneth D. Merry /* A6 EXCHANGE MEDIUM */ 721130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 722130f4520SKenneth D. Merry 723130f4520SKenneth D. Merry /* A7 MOVE MEDIUM ATTACHED */ 724130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 725130f4520SKenneth D. Merry 726130f4520SKenneth D. Merry /* A8 READ(12) */ 727130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 728130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 729130f4520SKenneth D. Merry CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 730130f4520SKenneth D. Merry 731130f4520SKenneth D. Merry /* A9 PLAY TRACK RELATIVE(12) */ 732130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 733130f4520SKenneth D. Merry 734130f4520SKenneth D. Merry /* AA WRITE(12) */ 735130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 736130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 737130f4520SKenneth D. Merry 738130f4520SKenneth D. Merry /* AB SERVICE ACTION IN(12) */ 739130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 740130f4520SKenneth D. Merry 741130f4520SKenneth D. Merry /* AC ERASE(12) */ 742130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 743130f4520SKenneth D. Merry 744130f4520SKenneth D. Merry /* AD READ DVD STRUCTURE */ 745130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 746130f4520SKenneth D. Merry 747130f4520SKenneth D. Merry /* AE WRITE AND VERIFY(12) */ 748130f4520SKenneth D. Merry {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 749130f4520SKenneth D. Merry CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE}, 750130f4520SKenneth D. Merry 751130f4520SKenneth D. Merry /* AF VERIFY(12) */ 75211b569f7SAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 75311b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 75411b569f7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 75511b569f7SAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE}, 756130f4520SKenneth D. Merry 757130f4520SKenneth D. Merry /* B0 SEARCH DATA HIGH(12) */ 758130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 759130f4520SKenneth D. Merry 760130f4520SKenneth D. Merry /* B1 SEARCH DATA EQUAL(12) */ 761130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 762130f4520SKenneth D. Merry 763130f4520SKenneth D. Merry /* B2 SEARCH DATA LOW(12) */ 764130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 765130f4520SKenneth D. Merry 766130f4520SKenneth D. Merry /* B3 SET LIMITS(12) */ 767130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 768130f4520SKenneth D. Merry 769130f4520SKenneth D. Merry /* B4 READ ELEMENT STATUS ATTACHED */ 770130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 771130f4520SKenneth D. Merry 772130f4520SKenneth D. Merry /* B5 REQUEST VOLUME ELEMENT ADDRESS */ 773130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 774130f4520SKenneth D. Merry 775130f4520SKenneth D. Merry /* B6 SEND VOLUME TAG */ 776130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 777130f4520SKenneth D. Merry 778130f4520SKenneth D. Merry /* B7 READ DEFECT DATA(12) */ 779130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 780130f4520SKenneth D. Merry 781130f4520SKenneth D. Merry /* B8 READ ELEMENT STATUS */ 782130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 783130f4520SKenneth D. Merry 784130f4520SKenneth D. Merry /* B9 READ CD MSF */ 785130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 786130f4520SKenneth D. Merry 787130f4520SKenneth D. Merry /* BA REDUNDANCY GROUP (IN) */ 788130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 789130f4520SKenneth D. Merry 790130f4520SKenneth D. Merry /* BB REDUNDANCY GROUP (OUT) */ 791130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 792130f4520SKenneth D. Merry 793130f4520SKenneth D. Merry /* BC SPARE (IN) */ 794130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 795130f4520SKenneth D. Merry 796130f4520SKenneth D. Merry /* BD SPARE (OUT) */ 797130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 798130f4520SKenneth D. Merry 799130f4520SKenneth D. Merry /* BE VOLUME SET (IN) */ 800130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 801130f4520SKenneth D. Merry 802130f4520SKenneth D. Merry /* BF VOLUME SET (OUT) */ 803130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 804130f4520SKenneth D. Merry 805130f4520SKenneth D. Merry /* C0 - ISC_SEND_MSG_SHORT */ 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_NONE, 808130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 809130f4520SKenneth D. Merry 810130f4520SKenneth D. Merry /* C1 - ISC_SEND_MSG */ 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 /* C2 - ISC_WRITE */ 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_OUT, 818130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 819130f4520SKenneth D. Merry 820130f4520SKenneth D. Merry /* C3 - ISC_READ */ 821130f4520SKenneth D. Merry //{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 822130f4520SKenneth D. Merry {ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN, 823130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 824130f4520SKenneth D. Merry 825130f4520SKenneth D. Merry /* C4 */ 826130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 827130f4520SKenneth D. Merry 828130f4520SKenneth D. Merry /* C5 */ 829130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 830130f4520SKenneth D. Merry 831130f4520SKenneth D. Merry /* C6 */ 832130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 833130f4520SKenneth D. Merry 834130f4520SKenneth D. Merry /* C7 */ 835130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 836130f4520SKenneth D. Merry 837130f4520SKenneth D. Merry /* C8 */ 838130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 839130f4520SKenneth D. Merry 840130f4520SKenneth D. Merry /* C9 */ 841130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 842130f4520SKenneth D. Merry 843130f4520SKenneth D. Merry /* CA */ 844130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 845130f4520SKenneth D. Merry 846130f4520SKenneth D. Merry /* CB */ 847130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 848130f4520SKenneth D. Merry 849130f4520SKenneth D. Merry /* CC */ 850130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 851130f4520SKenneth D. Merry 852130f4520SKenneth D. Merry /* CD */ 853130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 854130f4520SKenneth D. Merry 855130f4520SKenneth D. Merry /* CE */ 856130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 857130f4520SKenneth D. Merry 858130f4520SKenneth D. Merry /* CF */ 859130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 860130f4520SKenneth D. Merry 861130f4520SKenneth D. Merry /* D0 */ 862130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 863130f4520SKenneth D. Merry 864130f4520SKenneth D. Merry /* D1 */ 865130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 866130f4520SKenneth D. Merry 867130f4520SKenneth D. Merry /* D2 */ 868130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 869130f4520SKenneth D. Merry 870130f4520SKenneth D. Merry /* D3 */ 871130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 872130f4520SKenneth D. Merry 873130f4520SKenneth D. Merry /* D4 */ 874130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 875130f4520SKenneth D. Merry 876130f4520SKenneth D. Merry /* D5 */ 877130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 878130f4520SKenneth D. Merry 879130f4520SKenneth D. Merry /* D6 */ 880130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 881130f4520SKenneth D. Merry 882130f4520SKenneth D. Merry /* D7 */ 883130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 884130f4520SKenneth D. Merry 885130f4520SKenneth D. Merry /* D8 */ 886130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 887130f4520SKenneth D. Merry 888130f4520SKenneth D. Merry /* D9 */ 889130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 890130f4520SKenneth D. Merry 891130f4520SKenneth D. Merry /* DA */ 892130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 893130f4520SKenneth D. Merry 894130f4520SKenneth D. Merry /* DB */ 895130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 896130f4520SKenneth D. Merry 897130f4520SKenneth D. Merry /* DC */ 898130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 899130f4520SKenneth D. Merry 900130f4520SKenneth D. Merry /* DD */ 901130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 902130f4520SKenneth D. Merry 903130f4520SKenneth D. Merry /* DE */ 904130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 905130f4520SKenneth D. Merry 906130f4520SKenneth D. Merry /* DF */ 907130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 908130f4520SKenneth D. Merry 909130f4520SKenneth D. Merry /* E0 */ 910130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 911130f4520SKenneth D. Merry 912130f4520SKenneth D. Merry /* E1 */ 913130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 914130f4520SKenneth D. Merry 915130f4520SKenneth D. Merry /* E2 */ 916130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 917130f4520SKenneth D. Merry 918130f4520SKenneth D. Merry /* E3 */ 919130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 920130f4520SKenneth D. Merry 921130f4520SKenneth D. Merry /* E4 */ 922130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 923130f4520SKenneth D. Merry 924130f4520SKenneth D. Merry /* E5 */ 925130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 926130f4520SKenneth D. Merry 927130f4520SKenneth D. Merry /* E6 */ 928130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 929130f4520SKenneth D. Merry 930130f4520SKenneth D. Merry /* E7 */ 931130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 932130f4520SKenneth D. Merry 933130f4520SKenneth D. Merry /* E8 */ 934130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 935130f4520SKenneth D. Merry 936130f4520SKenneth D. Merry /* E9 */ 937130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 938130f4520SKenneth D. Merry 939130f4520SKenneth D. Merry /* EA */ 940130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 941130f4520SKenneth D. Merry 942130f4520SKenneth D. Merry /* EB */ 943130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 944130f4520SKenneth D. Merry 945130f4520SKenneth D. Merry /* EC */ 946130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 947130f4520SKenneth D. Merry 948130f4520SKenneth D. Merry /* ED */ 949130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 950130f4520SKenneth D. Merry 951130f4520SKenneth D. Merry /* EE */ 952130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 953130f4520SKenneth D. Merry 954130f4520SKenneth D. Merry /* EF */ 955130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 956130f4520SKenneth D. Merry 957130f4520SKenneth D. Merry /* F0 */ 958130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 959130f4520SKenneth D. Merry 960130f4520SKenneth D. Merry /* F1 */ 961130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 962130f4520SKenneth D. Merry 963130f4520SKenneth D. Merry /* F2 */ 964130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 965130f4520SKenneth D. Merry 966130f4520SKenneth D. Merry /* F3 */ 967130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 968130f4520SKenneth D. Merry 969130f4520SKenneth D. Merry /* F4 */ 970130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 971130f4520SKenneth D. Merry 972130f4520SKenneth D. Merry /* F5 */ 973130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 974130f4520SKenneth D. Merry 975130f4520SKenneth D. Merry /* F6 */ 976130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 977130f4520SKenneth D. Merry 978130f4520SKenneth D. Merry /* F7 */ 979130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 980130f4520SKenneth D. Merry 981130f4520SKenneth D. Merry /* F8 */ 982130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 983130f4520SKenneth D. Merry 984130f4520SKenneth D. Merry /* F9 */ 985130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 986130f4520SKenneth D. Merry 987130f4520SKenneth D. Merry /* FA */ 988130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 989130f4520SKenneth D. Merry 990130f4520SKenneth D. Merry /* FB */ 991130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 992130f4520SKenneth D. Merry 993130f4520SKenneth D. Merry /* FC */ 994130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 995130f4520SKenneth D. Merry 996130f4520SKenneth D. Merry /* FD */ 997130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 998130f4520SKenneth D. Merry 999130f4520SKenneth D. Merry /* FE */ 1000130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1001130f4520SKenneth D. Merry 1002130f4520SKenneth D. Merry /* FF */ 1003130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 1004130f4520SKenneth D. Merry 1005130f4520SKenneth D. Merry }; 1006