1130f4520SKenneth D. Merry /*- 2130f4520SKenneth D. Merry * Copyright (c) 2003, 2004, 2005, 2009 Silicon Graphics International Corp. 3648dfc1aSAlexander Motin * Copyright (c) 2014-2015 Alexander Motin <mav@FreeBSD.org> 4130f4520SKenneth D. Merry * All rights reserved. 5130f4520SKenneth D. Merry * 6130f4520SKenneth D. Merry * Redistribution and use in source and binary forms, with or without 7130f4520SKenneth D. Merry * modification, are permitted provided that the following conditions 8130f4520SKenneth D. Merry * are met: 9130f4520SKenneth D. Merry * 1. Redistributions of source code must retain the above copyright 10130f4520SKenneth D. Merry * notice, this list of conditions, and the following disclaimer, 11130f4520SKenneth D. Merry * without modification. 12130f4520SKenneth D. Merry * 2. Redistributions in binary form must reproduce at minimum a disclaimer 13130f4520SKenneth D. Merry * substantially similar to the "NO WARRANTY" disclaimer below 14130f4520SKenneth D. Merry * ("Disclaimer") and any redistribution must be conditioned upon 15130f4520SKenneth D. Merry * including a substantially similar Disclaimer requirement for further 16130f4520SKenneth D. Merry * binary redistribution. 17130f4520SKenneth D. Merry * 18130f4520SKenneth D. Merry * NO WARRANTY 19130f4520SKenneth D. Merry * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20130f4520SKenneth D. Merry * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21130f4520SKenneth D. Merry * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 22130f4520SKenneth D. Merry * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23130f4520SKenneth D. Merry * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24130f4520SKenneth D. Merry * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25130f4520SKenneth D. Merry * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26130f4520SKenneth D. Merry * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 27130f4520SKenneth D. Merry * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 28130f4520SKenneth D. Merry * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29130f4520SKenneth D. Merry * POSSIBILITY OF SUCH DAMAGES. 30130f4520SKenneth D. Merry * 31130f4520SKenneth D. Merry * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_cmd_table.c#4 $ 32130f4520SKenneth D. Merry * $FreeBSD$ 33130f4520SKenneth D. Merry */ 34130f4520SKenneth D. Merry /* 35130f4520SKenneth D. Merry * CAM Target Layer command table. 36130f4520SKenneth D. Merry * 37130f4520SKenneth D. Merry * Author: Ken Merry <ken@FreeBSD.org>, Kim Le 38130f4520SKenneth D. Merry */ 39130f4520SKenneth D. Merry 40130f4520SKenneth D. Merry #include <sys/cdefs.h> 41130f4520SKenneth D. Merry #include <sys/param.h> 42130f4520SKenneth D. Merry #include <sys/systm.h> 43130f4520SKenneth D. Merry #include <sys/kernel.h> 44130f4520SKenneth D. Merry #include <sys/types.h> 45130f4520SKenneth D. Merry #include <sys/malloc.h> 46130f4520SKenneth D. Merry #include <sys/condvar.h> 47130f4520SKenneth D. Merry #include <sys/queue.h> 48bf8f8f34SKenneth D. Merry #include <sys/sysctl.h> 49130f4520SKenneth D. Merry 50130f4520SKenneth D. Merry #include <cam/scsi/scsi_all.h> 51130f4520SKenneth D. Merry #include <cam/scsi/scsi_da.h> 52130f4520SKenneth D. Merry #include <cam/ctl/ctl_io.h> 53130f4520SKenneth D. Merry #include <cam/ctl/ctl.h> 54130f4520SKenneth D. Merry #include <cam/ctl/ctl_frontend.h> 55130f4520SKenneth D. Merry #include <cam/ctl/ctl_backend.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 /* 611b08cb4eSAlexander Motin * Whenever support for a new command is added, it should be added to these 621b08cb4eSAlexander Motin * tables. 63130f4520SKenneth D. Merry */ 641b08cb4eSAlexander Motin 65*82029718SAlexander Motin /* 3B WRITE BUFFER */ 66*82029718SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_3b[32] = 67*82029718SAlexander Motin { 68*82029718SAlexander Motin /* 00 WRITE BUFFER HDR DATA */ 69*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 70*82029718SAlexander Motin 71*82029718SAlexander Motin /* 01 WRITE BUFFER VENDOR */ 72*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 73*82029718SAlexander Motin 74*82029718SAlexander Motin /* 02 WRITE BUFFER DATA */ 75*82029718SAlexander Motin {ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 76*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 77*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 78*82029718SAlexander Motin CTL_FLAG_DATA_OUT, 79*82029718SAlexander Motin CTL_LUN_PAT_NONE, 80*82029718SAlexander Motin 10, {0x02, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 81*82029718SAlexander Motin 82*82029718SAlexander Motin /* 03 WRITE BUFFER DESCR */ 83*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 84*82029718SAlexander Motin 85*82029718SAlexander Motin /* 04 WRITE BUFFER DOWNLOAD */ 86*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 87*82029718SAlexander Motin 88*82029718SAlexander Motin /* 05 WRITE BUFFER DOWNLOAD SAVE */ 89*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 90*82029718SAlexander Motin 91*82029718SAlexander Motin /* 06 */ 92*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 93*82029718SAlexander Motin 94*82029718SAlexander Motin /* 07 */ 95*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 96*82029718SAlexander Motin 97*82029718SAlexander Motin /* 08 */ 98*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 99*82029718SAlexander Motin 100*82029718SAlexander Motin /* 09 */ 101*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 102*82029718SAlexander Motin 103*82029718SAlexander Motin /* 0A WRITE BUFFER ECHO */ 104*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 105*82029718SAlexander Motin 106*82029718SAlexander Motin /* 0B WRITE BUFFER ECHO DESCRIPTOR */ 107*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 108*82029718SAlexander Motin 109*82029718SAlexander Motin /* 0C */ 110*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 111*82029718SAlexander Motin 112*82029718SAlexander Motin /* 0D */ 113*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 114*82029718SAlexander Motin 115*82029718SAlexander Motin /* 0E */ 116*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 117*82029718SAlexander Motin 118*82029718SAlexander Motin /* 0F */ 119*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 120*82029718SAlexander Motin 121*82029718SAlexander Motin /* 10 */ 122*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 123*82029718SAlexander Motin 124*82029718SAlexander Motin /* 11 */ 125*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 126*82029718SAlexander Motin 127*82029718SAlexander Motin /* 12 */ 128*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 129*82029718SAlexander Motin 130*82029718SAlexander Motin /* 13 */ 131*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 132*82029718SAlexander Motin 133*82029718SAlexander Motin /* 14 */ 134*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 135*82029718SAlexander Motin 136*82029718SAlexander Motin /* 15 */ 137*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 138*82029718SAlexander Motin 139*82029718SAlexander Motin /* 16 */ 140*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 141*82029718SAlexander Motin 142*82029718SAlexander Motin /* 17 */ 143*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 144*82029718SAlexander Motin 145*82029718SAlexander Motin /* 18 */ 146*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 147*82029718SAlexander Motin 148*82029718SAlexander Motin /* 19 */ 149*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 150*82029718SAlexander Motin 151*82029718SAlexander Motin /* 1A */ 152*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 153*82029718SAlexander Motin 154*82029718SAlexander Motin /* 1B */ 155*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 156*82029718SAlexander Motin 157*82029718SAlexander Motin /* 1C WRITE BUFFER ERROR HISTORY */ 158*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 159*82029718SAlexander Motin 160*82029718SAlexander Motin /* 1d-1f */ 161*82029718SAlexander Motin }; 162*82029718SAlexander Motin 163*82029718SAlexander Motin /* 3C READ BUFFER(10) */ 164*82029718SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_3c[32] = 165*82029718SAlexander Motin { 166*82029718SAlexander Motin /* 00 READ BUFFER(10) HDR DATA */ 167*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 168*82029718SAlexander Motin 169*82029718SAlexander Motin /* 01 READ BUFFER(10) VENDOR */ 170*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 171*82029718SAlexander Motin 172*82029718SAlexander Motin /* 02 READ BUFFER(10) DATA */ 173*82029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 174*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 175*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 176*82029718SAlexander Motin CTL_FLAG_DATA_IN | 177*82029718SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 178*82029718SAlexander Motin CTL_LUN_PAT_NONE, 179*82029718SAlexander Motin 10, {0x02, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 180*82029718SAlexander Motin 181*82029718SAlexander Motin /* 03 READ BUFFER(10) DESCR */ 182*82029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 183*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 184*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 185*82029718SAlexander Motin CTL_FLAG_DATA_IN | 186*82029718SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 187*82029718SAlexander Motin CTL_LUN_PAT_NONE, 188*82029718SAlexander Motin 10, {0x03, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 189*82029718SAlexander Motin 190*82029718SAlexander Motin /* 04 */ 191*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 192*82029718SAlexander Motin 193*82029718SAlexander Motin /* 05 */ 194*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 195*82029718SAlexander Motin 196*82029718SAlexander Motin /* 06 */ 197*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 198*82029718SAlexander Motin 199*82029718SAlexander Motin /* 07 */ 200*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 201*82029718SAlexander Motin 202*82029718SAlexander Motin /* 08 */ 203*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 204*82029718SAlexander Motin 205*82029718SAlexander Motin /* 09 */ 206*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 207*82029718SAlexander Motin 208*82029718SAlexander Motin /* 0A READ BUFFER(10) ECHO */ 209*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 210*82029718SAlexander Motin 211*82029718SAlexander Motin /* 0B READ BUFFER(10) ECHO DESCRIPTOR */ 212*82029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 213*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 214*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 215*82029718SAlexander Motin CTL_FLAG_DATA_IN | 216*82029718SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 217*82029718SAlexander Motin CTL_LUN_PAT_NONE, 218*82029718SAlexander Motin 10, {0x0b, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 219*82029718SAlexander Motin 220*82029718SAlexander Motin /* 0C */ 221*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 222*82029718SAlexander Motin 223*82029718SAlexander Motin /* 0D */ 224*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 225*82029718SAlexander Motin 226*82029718SAlexander Motin /* 0E */ 227*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 228*82029718SAlexander Motin 229*82029718SAlexander Motin /* 0F */ 230*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 231*82029718SAlexander Motin 232*82029718SAlexander Motin /* 10 */ 233*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 234*82029718SAlexander Motin 235*82029718SAlexander Motin /* 11 */ 236*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 237*82029718SAlexander Motin 238*82029718SAlexander Motin /* 12 */ 239*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 240*82029718SAlexander Motin 241*82029718SAlexander Motin /* 13 */ 242*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 243*82029718SAlexander Motin 244*82029718SAlexander Motin /* 14 */ 245*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 246*82029718SAlexander Motin 247*82029718SAlexander Motin /* 15 */ 248*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 249*82029718SAlexander Motin 250*82029718SAlexander Motin /* 16 */ 251*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 252*82029718SAlexander Motin 253*82029718SAlexander Motin /* 17 */ 254*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 255*82029718SAlexander Motin 256*82029718SAlexander Motin /* 18 */ 257*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 258*82029718SAlexander Motin 259*82029718SAlexander Motin /* 19 */ 260*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 261*82029718SAlexander Motin 262*82029718SAlexander Motin /* 1A */ 263*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 264*82029718SAlexander Motin 265*82029718SAlexander Motin /* 1B */ 266*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 267*82029718SAlexander Motin 268*82029718SAlexander Motin /* 1C READ BUFFER(10) ERROR HISTORY */ 269*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 270*82029718SAlexander Motin 271*82029718SAlexander Motin /* 1d-1f */ 272*82029718SAlexander Motin }; 273*82029718SAlexander Motin 2741b08cb4eSAlexander Motin /* 5E PERSISTENT RESERVE IN */ 2751b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_5e[32] = 2761b08cb4eSAlexander Motin { 2771b08cb4eSAlexander Motin /* 00 READ KEYS */ 2784d877c41SAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 2791b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 280648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 2817ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 2821b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 2831b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 2841b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 2851b08cb4eSAlexander Motin 10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 2861b08cb4eSAlexander Motin 2871b08cb4eSAlexander Motin /* 01 READ RESERVATION */ 2884d877c41SAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 2891b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 290648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 2917ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 2921b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 2931b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 2941b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 2951b08cb4eSAlexander Motin 10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 2961b08cb4eSAlexander Motin 2971b08cb4eSAlexander Motin /* 02 REPORT CAPABILITIES */ 2981b08cb4eSAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 2991b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 300648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3017ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3021b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 3031b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3041b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 3051b08cb4eSAlexander Motin 10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 3061b08cb4eSAlexander Motin 3071b08cb4eSAlexander Motin /* 03 READ FULL STATUS */ 3081e5a8b8fSAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 3091e5a8b8fSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 310648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3117ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3121e5a8b8fSAlexander Motin CTL_FLAG_DATA_IN | 3131e5a8b8fSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3141e5a8b8fSAlexander Motin CTL_LUN_PAT_NONE, 3151e5a8b8fSAlexander Motin 10, { 0x03, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 3161b08cb4eSAlexander Motin 3171b08cb4eSAlexander Motin /* 04-1f */ 3181b08cb4eSAlexander Motin }; 3191b08cb4eSAlexander Motin 3201b08cb4eSAlexander Motin /* 5F PERSISTENT RESERVE OUT */ 3211b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_5f[32] = 3221b08cb4eSAlexander Motin { 3231b08cb4eSAlexander Motin /* 00 REGISTER */ 3244d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3251b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 326648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3277ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3281b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3291b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3301b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 3311b08cb4eSAlexander Motin 10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3321b08cb4eSAlexander Motin 3331b08cb4eSAlexander Motin /* 01 RESERVE */ 3344d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3351b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 336648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3377ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3381b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3391b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3401b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 341f44570f6SAlexander Motin 10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3421b08cb4eSAlexander Motin 3431b08cb4eSAlexander Motin /* 02 RELEASE */ 3444d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3451b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 346648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3477ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3481b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3491b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3501b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 351f44570f6SAlexander Motin 10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3521b08cb4eSAlexander Motin 3531b08cb4eSAlexander Motin /* 03 CLEAR */ 3544d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3551b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 356648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3577ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3581b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3591b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3601b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 3610f8de8afSAlexander Motin 10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3621b08cb4eSAlexander Motin 3631b08cb4eSAlexander Motin /* 04 PREEMPT */ 3644d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3651b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 366648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3677ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3681b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3691b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3701b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 3710f8de8afSAlexander Motin 10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3721b08cb4eSAlexander Motin 3731b08cb4eSAlexander Motin /* 05 PREEMPT AND ABORT */ 374fb5780deSAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 375fb5780deSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 376648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3777ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 378fb5780deSAlexander Motin CTL_FLAG_DATA_OUT | 379fb5780deSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 380fb5780deSAlexander Motin CTL_LUN_PAT_NONE, 381fb5780deSAlexander Motin 10, { 0x05, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3821b08cb4eSAlexander Motin 3831b08cb4eSAlexander Motin /* 06 REGISTER AND IGNORE EXISTING KEY */ 3844d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3851b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 386648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3877ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3881b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3891b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3901b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 3910f8de8afSAlexander Motin 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3921b08cb4eSAlexander Motin 3931b08cb4eSAlexander Motin /* 07 REGISTER AND MOVE */ 3941b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 3951b08cb4eSAlexander Motin 3961b08cb4eSAlexander Motin /* 08-1f */ 3971b08cb4eSAlexander Motin }; 3981b08cb4eSAlexander Motin 399984a2ea9SAlexander Motin /* 83 EXTENDED COPY */ 400984a2ea9SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_83[32] = 401984a2ea9SAlexander Motin { 402984a2ea9SAlexander Motin /* 00 EXTENDED COPY (LID1) */ 403984a2ea9SAlexander Motin {ctl_extended_copy_lid1, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 404648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 405984a2ea9SAlexander Motin CTL_FLAG_DATA_OUT, 406984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 407984a2ea9SAlexander Motin 16, { 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 408984a2ea9SAlexander Motin 409984a2ea9SAlexander Motin /* 01 EXTENDED COPY (LID4) */ 410984a2ea9SAlexander Motin {ctl_extended_copy_lid4, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 411648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 412984a2ea9SAlexander Motin CTL_FLAG_DATA_OUT, 413984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 414984a2ea9SAlexander Motin 16, { 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 415984a2ea9SAlexander Motin 416984a2ea9SAlexander Motin /* 02 */ 417984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 418984a2ea9SAlexander Motin 419984a2ea9SAlexander Motin /* 03 */ 420984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 421984a2ea9SAlexander Motin 422984a2ea9SAlexander Motin /* 04 */ 423984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 424984a2ea9SAlexander Motin 425984a2ea9SAlexander Motin /* 05 */ 426984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 427984a2ea9SAlexander Motin 428984a2ea9SAlexander Motin /* 06 */ 429984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 430984a2ea9SAlexander Motin 431984a2ea9SAlexander Motin /* 07 */ 432984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 433984a2ea9SAlexander Motin 434984a2ea9SAlexander Motin /* 08 */ 435984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 436984a2ea9SAlexander Motin 437984a2ea9SAlexander Motin /* 09 */ 438984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 439984a2ea9SAlexander Motin 440984a2ea9SAlexander Motin /* 0A */ 441984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 442984a2ea9SAlexander Motin 443984a2ea9SAlexander Motin /* 0B */ 444984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 445984a2ea9SAlexander Motin 446984a2ea9SAlexander Motin /* 0C */ 447984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 448984a2ea9SAlexander Motin 449984a2ea9SAlexander Motin /* 0D */ 450984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 451984a2ea9SAlexander Motin 452984a2ea9SAlexander Motin /* 0E */ 453984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 454984a2ea9SAlexander Motin 455984a2ea9SAlexander Motin /* 0F */ 456984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 457984a2ea9SAlexander Motin 458984a2ea9SAlexander Motin /* 10 POPULATE TOKEN */ 45991be33dcSAlexander Motin {ctl_populate_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 460115dc0c7SAlexander Motin CTL_FLAG_DATA_OUT | 461115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 46225eee848SAlexander Motin CTL_LUN_PAT_NONE, 46325eee848SAlexander Motin 16, { 0x10, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 46425eee848SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 465984a2ea9SAlexander Motin 466984a2ea9SAlexander Motin /* 11 WRITE USING TOKEN */ 46791be33dcSAlexander Motin {ctl_write_using_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 46825eee848SAlexander Motin CTL_FLAG_DATA_OUT, 46925eee848SAlexander Motin CTL_LUN_PAT_NONE, 47025eee848SAlexander Motin 16, { 0x11, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 47125eee848SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 472984a2ea9SAlexander Motin 473984a2ea9SAlexander Motin /* 12 */ 474984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 475984a2ea9SAlexander Motin 476984a2ea9SAlexander Motin /* 13 */ 477984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 478984a2ea9SAlexander Motin 479984a2ea9SAlexander Motin /* 14 */ 480984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 481984a2ea9SAlexander Motin 482984a2ea9SAlexander Motin /* 15 */ 483984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 484984a2ea9SAlexander Motin 485984a2ea9SAlexander Motin /* 16 */ 486984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 487984a2ea9SAlexander Motin 488984a2ea9SAlexander Motin /* 17 */ 489984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 490984a2ea9SAlexander Motin 491984a2ea9SAlexander Motin /* 18 */ 492984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 493984a2ea9SAlexander Motin 494984a2ea9SAlexander Motin /* 19 */ 495984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 496984a2ea9SAlexander Motin 497984a2ea9SAlexander Motin /* 1A */ 498984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 499984a2ea9SAlexander Motin 500984a2ea9SAlexander Motin /* 1B */ 501984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 502984a2ea9SAlexander Motin 503984a2ea9SAlexander Motin /* 1C COPY OPERATION ABORT */ 504984a2ea9SAlexander Motin {ctl_copy_operation_abort, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 505648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 506984a2ea9SAlexander Motin CTL_FLAG_DATA_NONE, 507984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 508984a2ea9SAlexander Motin 16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 509984a2ea9SAlexander Motin }; 510984a2ea9SAlexander Motin 511984a2ea9SAlexander Motin /* 84 RECEIVE COPY STATUS */ 512984a2ea9SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_84[32] = 513984a2ea9SAlexander Motin { 514984a2ea9SAlexander Motin /* 00 RECEIVE COPY STATUS (LID1) */ 515984a2ea9SAlexander Motin {ctl_receive_copy_status_lid1, CTL_SERIDX_RD_CAP, 516984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 517648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 518fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 519fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 520984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 521984a2ea9SAlexander Motin 16, {0x00, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 522984a2ea9SAlexander Motin 523984a2ea9SAlexander Motin /* 01 RECEIVE COPY DATA (LID1) */ 524984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 525984a2ea9SAlexander Motin 526984a2ea9SAlexander Motin /* 02 */ 527984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 528984a2ea9SAlexander Motin 529984a2ea9SAlexander Motin /* 03 RECEIVE COPY OPERATING PARAMETERS */ 530984a2ea9SAlexander Motin {ctl_receive_copy_operating_parameters, CTL_SERIDX_RD_CAP, 531984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 532648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 5337ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 534fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 535fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 536984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 537984a2ea9SAlexander Motin 16, {0x03, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 538984a2ea9SAlexander Motin 539984a2ea9SAlexander Motin /* 04 RECEIVE COPY FAILURE DETAILS (LID1) */ 540984a2ea9SAlexander Motin {ctl_receive_copy_failure_details, CTL_SERIDX_RD_CAP, 541984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 542648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 543fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 544fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 545984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 546984a2ea9SAlexander Motin 16, {0x04, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 547984a2ea9SAlexander Motin 548984a2ea9SAlexander Motin /* 05 RECEIVE COPY STATUS (LID4) */ 549984a2ea9SAlexander Motin {ctl_receive_copy_status_lid4, CTL_SERIDX_RD_CAP, 550984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 551648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 552115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 553115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 554984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 555984a2ea9SAlexander Motin 16, {0x05, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 556984a2ea9SAlexander Motin 557984a2ea9SAlexander Motin /* 06 RECEIVE COPY DATA (LID4)*/ 558984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 559984a2ea9SAlexander Motin 560984a2ea9SAlexander Motin /* 07 RECEIVE ROD TOKEN INFORMATION */ 56125eee848SAlexander Motin {ctl_receive_rod_token_information, CTL_SERIDX_RD_CAP, 56225eee848SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 563648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 564115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 565115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 56625eee848SAlexander Motin CTL_LUN_PAT_NONE, 56725eee848SAlexander Motin 16, {0x07, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 568984a2ea9SAlexander Motin 569984a2ea9SAlexander Motin /* 08 REPORT ALL ROD TOKENS */ 57025eee848SAlexander Motin {ctl_report_all_rod_tokens, CTL_SERIDX_RD_CAP, 57125eee848SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 572648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 573115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 574115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 57525eee848SAlexander Motin CTL_LUN_PAT_NONE, 57625eee848SAlexander Motin 16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 577984a2ea9SAlexander Motin }; 578984a2ea9SAlexander Motin 579*82029718SAlexander Motin /* 9B READ BUFFER(16) */ 580*82029718SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_9b[32] = 581*82029718SAlexander Motin { 582*82029718SAlexander Motin /* 00 READ BUFFER(16) HDR DATA */ 583*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 584*82029718SAlexander Motin 585*82029718SAlexander Motin /* 01 READ BUFFER(16) VENDOR */ 586*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 587*82029718SAlexander Motin 588*82029718SAlexander Motin /* 02 READ BUFFER(16) DATA */ 589*82029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 590*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 591*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 592*82029718SAlexander Motin CTL_FLAG_DATA_IN, 593*82029718SAlexander Motin CTL_LUN_PAT_NONE, 594*82029718SAlexander Motin 16, {0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 595*82029718SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 596*82029718SAlexander Motin 597*82029718SAlexander Motin /* 03 READ BUFFER(16) DESCR */ 598*82029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 599*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 600*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 601*82029718SAlexander Motin CTL_FLAG_DATA_IN, 602*82029718SAlexander Motin CTL_LUN_PAT_NONE, 603*82029718SAlexander Motin 16, {0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 604*82029718SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 605*82029718SAlexander Motin 606*82029718SAlexander Motin /* 04 READ BUFFER(16) */ 607*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 608*82029718SAlexander Motin 609*82029718SAlexander Motin /* 05 READ BUFFER(16) */ 610*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 611*82029718SAlexander Motin 612*82029718SAlexander Motin /* 06 */ 613*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 614*82029718SAlexander Motin 615*82029718SAlexander Motin /* 07 */ 616*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 617*82029718SAlexander Motin 618*82029718SAlexander Motin /* 08 */ 619*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 620*82029718SAlexander Motin 621*82029718SAlexander Motin /* 09 */ 622*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 623*82029718SAlexander Motin 624*82029718SAlexander Motin /* 0A READ BUFFER(16) ECHO */ 625*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 626*82029718SAlexander Motin 627*82029718SAlexander Motin /* 0B READ BUFFER(16) ECHO DESCRIPTOR */ 628*82029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 629*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 630*82029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 631*82029718SAlexander Motin CTL_FLAG_DATA_IN, 632*82029718SAlexander Motin CTL_LUN_PAT_NONE, 633*82029718SAlexander Motin 16, {0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 634*82029718SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 635*82029718SAlexander Motin 636*82029718SAlexander Motin /* 0C */ 637*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 638*82029718SAlexander Motin 639*82029718SAlexander Motin /* 0D */ 640*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 641*82029718SAlexander Motin 642*82029718SAlexander Motin /* 0E */ 643*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 644*82029718SAlexander Motin 645*82029718SAlexander Motin /* 0F */ 646*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 647*82029718SAlexander Motin 648*82029718SAlexander Motin /* 10 */ 649*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 650*82029718SAlexander Motin 651*82029718SAlexander Motin /* 11 */ 652*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 653*82029718SAlexander Motin 654*82029718SAlexander Motin /* 12 */ 655*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 656*82029718SAlexander Motin 657*82029718SAlexander Motin /* 13 */ 658*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 659*82029718SAlexander Motin 660*82029718SAlexander Motin /* 14 */ 661*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 662*82029718SAlexander Motin 663*82029718SAlexander Motin /* 15 */ 664*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 665*82029718SAlexander Motin 666*82029718SAlexander Motin /* 16 */ 667*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 668*82029718SAlexander Motin 669*82029718SAlexander Motin /* 17 */ 670*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 671*82029718SAlexander Motin 672*82029718SAlexander Motin /* 18 */ 673*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 674*82029718SAlexander Motin 675*82029718SAlexander Motin /* 19 */ 676*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 677*82029718SAlexander Motin 678*82029718SAlexander Motin /* 1A */ 679*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 680*82029718SAlexander Motin 681*82029718SAlexander Motin /* 1B */ 682*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 683*82029718SAlexander Motin 684*82029718SAlexander Motin /* 1C READ BUFFER(16) ERROR HISTORY */ 685*82029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 686*82029718SAlexander Motin 687*82029718SAlexander Motin /* 1d-1f */ 688*82029718SAlexander Motin }; 689*82029718SAlexander Motin 690*82029718SAlexander Motin 6911b08cb4eSAlexander Motin /* 9E SERVICE ACTION IN(16) */ 6921b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_9e[32] = 6931b08cb4eSAlexander Motin { 6941b08cb4eSAlexander Motin /* 00 */ 6951b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 6961b08cb4eSAlexander Motin 6971b08cb4eSAlexander Motin /* 01 */ 6981b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 6991b08cb4eSAlexander Motin 7001b08cb4eSAlexander Motin /* 02 */ 7011b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7021b08cb4eSAlexander Motin 7031b08cb4eSAlexander Motin /* 03 */ 7041b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7051b08cb4eSAlexander Motin 7061b08cb4eSAlexander Motin /* 04 */ 7071b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7081b08cb4eSAlexander Motin 7091b08cb4eSAlexander Motin /* 05 */ 7101b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7111b08cb4eSAlexander Motin 7121b08cb4eSAlexander Motin /* 06 */ 7131b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7141b08cb4eSAlexander Motin 7151b08cb4eSAlexander Motin /* 07 */ 7161b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7171b08cb4eSAlexander Motin 7181b08cb4eSAlexander Motin /* 08 */ 7191b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7201b08cb4eSAlexander Motin 7211b08cb4eSAlexander Motin /* 09 */ 7221b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7231b08cb4eSAlexander Motin 7241b08cb4eSAlexander Motin /* 0A */ 7251b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7261b08cb4eSAlexander Motin 7271b08cb4eSAlexander Motin /* 0B */ 7281b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7291b08cb4eSAlexander Motin 7301b08cb4eSAlexander Motin /* 0C */ 7311b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7321b08cb4eSAlexander Motin 7331b08cb4eSAlexander Motin /* 0D */ 7341b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7351b08cb4eSAlexander Motin 7361b08cb4eSAlexander Motin /* 0E */ 7371b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7381b08cb4eSAlexander Motin 7391b08cb4eSAlexander Motin /* 0F */ 7401b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7411b08cb4eSAlexander Motin 742ef8daf3fSAlexander Motin /* 10 READ CAPACITY(16) */ 74391be33dcSAlexander Motin {ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 7441b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 7451b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 7461b08cb4eSAlexander Motin CTL_LUN_PAT_READCAP, 7471b08cb4eSAlexander Motin 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 7481b08cb4eSAlexander Motin 749ef8daf3fSAlexander Motin /* 11 */ 750ef8daf3fSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 751ef8daf3fSAlexander Motin 752ef8daf3fSAlexander Motin /* 12 GET LBA STATUS */ 75391be33dcSAlexander Motin {ctl_get_lba_status, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 754ef8daf3fSAlexander Motin CTL_FLAG_DATA_IN | 755ef8daf3fSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 756ef8daf3fSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 757ef8daf3fSAlexander Motin 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 758ef8daf3fSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 759ef8daf3fSAlexander Motin 760ef8daf3fSAlexander Motin /* 13-1f */ 7611b08cb4eSAlexander Motin }; 7621b08cb4eSAlexander Motin 7631b08cb4eSAlexander Motin /* A3 MAINTENANCE IN */ 7641b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_a3[32] = 7651b08cb4eSAlexander Motin { 7661b08cb4eSAlexander Motin /* 00 */ 7671b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7681b08cb4eSAlexander Motin 7691b08cb4eSAlexander Motin /* 01 */ 7701b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7711b08cb4eSAlexander Motin 7721b08cb4eSAlexander Motin /* 02 */ 7731b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7741b08cb4eSAlexander Motin 7751b08cb4eSAlexander Motin /* 03 */ 7761b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7771b08cb4eSAlexander Motin 7781b08cb4eSAlexander Motin /* 04 */ 7791b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7801b08cb4eSAlexander Motin 7811b08cb4eSAlexander Motin /* 05 */ 7821b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7831b08cb4eSAlexander Motin 7841b08cb4eSAlexander Motin /* 06 */ 7851b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7861b08cb4eSAlexander Motin 7871b08cb4eSAlexander Motin /* 07 */ 7881b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7891b08cb4eSAlexander Motin 7901b08cb4eSAlexander Motin /* 08 */ 7911b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7921b08cb4eSAlexander Motin 7931b08cb4eSAlexander Motin /* 09 */ 7941b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7951b08cb4eSAlexander Motin 7961b08cb4eSAlexander Motin /* 0A REPORT TARGET PORT GROUPS */ 7974d877c41SAlexander Motin {ctl_report_tagret_port_groups, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 798648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 7997ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 8007ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 801115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 802115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 8031b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 804eed0d596SAlexander Motin 12, {0xea, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 8051b08cb4eSAlexander Motin 8061b08cb4eSAlexander Motin /* 0B */ 8071b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8081b08cb4eSAlexander Motin 8091b08cb4eSAlexander Motin /* 0C REPORT SUPPORTED_OPCODES */ 8104d877c41SAlexander Motin {ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 811648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 8127ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 8137ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 814fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 815fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 8161b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 817cb743034SAlexander Motin 12, {0x0c, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 8181b08cb4eSAlexander Motin 8191b08cb4eSAlexander Motin /* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */ 8204d877c41SAlexander Motin {ctl_report_supported_tmf, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 821648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 8227ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 8237ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 824fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 825fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 8261b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 8271b08cb4eSAlexander Motin 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 8281b08cb4eSAlexander Motin 82925c9d5e5SAlexander Motin /* 0E */ 83025c9d5e5SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 83125c9d5e5SAlexander Motin 83225c9d5e5SAlexander Motin /* 0F REPORT TIMESTAMP */ 8334d877c41SAlexander Motin {ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 834648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 8357ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 8367ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 837115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 838115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 83925c9d5e5SAlexander Motin CTL_LUN_PAT_NONE, 84025c9d5e5SAlexander Motin 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 84125c9d5e5SAlexander Motin 84225c9d5e5SAlexander Motin /* 10-1f */ 8431b08cb4eSAlexander Motin }; 8441b08cb4eSAlexander Motin 8451b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table[256] = 846130f4520SKenneth D. Merry { 847130f4520SKenneth D. Merry /* 00 TEST UNIT READY */ 848130f4520SKenneth D. Merry {ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 849130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE | 850130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 8511b08cb4eSAlexander Motin CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}}, 852130f4520SKenneth D. Merry 853130f4520SKenneth D. Merry /* 01 REWIND */ 854130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 855130f4520SKenneth D. Merry 856130f4520SKenneth D. Merry /* 02 */ 857130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 858130f4520SKenneth D. Merry 859130f4520SKenneth D. Merry /* 03 REQUEST SENSE */ 860130f4520SKenneth D. Merry {ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 861efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_LUN | 862efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 863130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 864130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 865648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 8667ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 8677ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 868921af507SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 869921af507SAlexander Motin CTL_CMD_FLAG_RUN_HERE, 8701b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}}, 871130f4520SKenneth D. Merry 872130f4520SKenneth D. Merry /* 04 FORMAT UNIT */ 87391be33dcSAlexander Motin {ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_DIRECT | 874130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 8751b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}}, 876130f4520SKenneth D. Merry 877130f4520SKenneth D. Merry /* 05 READ BLOCK LIMITS */ 878130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 879130f4520SKenneth D. Merry 880130f4520SKenneth D. Merry /* 06 */ 881130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 882130f4520SKenneth D. Merry 883130f4520SKenneth D. Merry /* 07 REASSIGN BLOCKS */ 884130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 885130f4520SKenneth D. Merry 886130f4520SKenneth D. Merry /* 08 READ(6) */ 88791be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 888130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 889115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 8901b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 891130f4520SKenneth D. Merry 892130f4520SKenneth D. Merry /* 09 */ 893130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 894130f4520SKenneth D. Merry 895130f4520SKenneth D. Merry /* 0A WRITE(6) */ 89691be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 897130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 8981b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 899130f4520SKenneth D. Merry 900130f4520SKenneth D. Merry /* 0B SEEK(6) */ 901130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 902130f4520SKenneth D. Merry 903130f4520SKenneth D. Merry /* 0C */ 904130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 905130f4520SKenneth D. Merry 906130f4520SKenneth D. Merry /* 0D */ 907130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 908130f4520SKenneth D. Merry 909130f4520SKenneth D. Merry /* 0E */ 910130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 911130f4520SKenneth D. Merry 912130f4520SKenneth D. Merry /* 0F READ REVERSE(6) */ 913130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 914130f4520SKenneth D. Merry 915130f4520SKenneth D. Merry /* 10 WRITE FILEMARKS(6) */ 916130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 917130f4520SKenneth D. Merry 918130f4520SKenneth D. Merry /* 11 SPACE(6) */ 919130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 920130f4520SKenneth D. Merry 921130f4520SKenneth D. Merry /* 12 INQUIRY */ 922efbf6139SAlexander Motin {ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_NO_LUN | 923efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 924130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 925130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 926648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 9277ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 9287ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 929130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 930130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 931561764b1SAlexander Motin CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}}, 932130f4520SKenneth D. Merry 933130f4520SKenneth D. Merry /* 13 */ 934130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 935130f4520SKenneth D. Merry 936130f4520SKenneth D. Merry /* 14 RECOVER BUFFERED DATA */ 937130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 938130f4520SKenneth D. Merry 939130f4520SKenneth D. Merry /* 15 MODE SELECT(6) */ 940130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 941648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 9427ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 943130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 9441b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}}, 945130f4520SKenneth D. Merry 946130f4520SKenneth D. Merry /* 16 RESERVE(6) */ 9474d877c41SAlexander Motin {ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 948130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 949648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 9507ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 951130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 9521b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 953130f4520SKenneth D. Merry 954130f4520SKenneth D. Merry /* 17 RELEASE(6) */ 9554d877c41SAlexander Motin {ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 956130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 957648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 9587ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 959130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 9601b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 961130f4520SKenneth D. Merry 962130f4520SKenneth D. Merry /* 18 COPY */ 963130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 964130f4520SKenneth D. Merry 965130f4520SKenneth D. Merry /* 19 ERASE(6) */ 966130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 967130f4520SKenneth D. Merry 968130f4520SKenneth D. Merry /* 1A MODE SENSE(6) */ 969130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 970648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 9717ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 972f82388fdSAlexander Motin CTL_FLAG_DATA_IN | 973115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 974c7a7dbbcSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0xff, 0xff, 0x07}}, 975130f4520SKenneth D. Merry 976130f4520SKenneth D. Merry /* 1B START STOP UNIT */ 97791be33dcSAlexander Motin {ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_DIRECT | 97891be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 979648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 980130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE | 981130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 98266b69676SAlexander Motin CTL_LUN_PAT_NONE, 6, {0x01, 0, 0x0f, 0xf7, 0x07}}, 983130f4520SKenneth D. Merry 984130f4520SKenneth D. Merry /* 1C RECEIVE DIAGNOSTIC RESULTS */ 985130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 986130f4520SKenneth D. Merry 987130f4520SKenneth D. Merry /* 1D SEND DIAGNOSTIC */ 988130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 989130f4520SKenneth D. Merry 990130f4520SKenneth D. Merry /* 1E PREVENT ALLOW MEDIUM REMOVAL */ 99191be33dcSAlexander Motin {ctl_prevent_allow, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_DIRECT | 99291be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 993648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 99491be33dcSAlexander Motin CTL_FLAG_DATA_NONE, 99591be33dcSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}}, 996130f4520SKenneth D. Merry 997130f4520SKenneth D. Merry /* 1F */ 998130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 999130f4520SKenneth D. Merry 1000130f4520SKenneth D. Merry /* 20 */ 1001130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1002130f4520SKenneth D. Merry 1003130f4520SKenneth D. Merry /* 21 */ 1004130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1005130f4520SKenneth D. Merry 1006130f4520SKenneth D. Merry /* 22 */ 1007130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1008130f4520SKenneth D. Merry 1009130f4520SKenneth D. Merry /* 23 */ 1010130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1011130f4520SKenneth D. Merry 1012130f4520SKenneth D. Merry /* 24 SET WINDOW */ 1013130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1014130f4520SKenneth D. Merry 1015130f4520SKenneth D. Merry /* 25 READ CAPACITY(10) */ 101691be33dcSAlexander Motin {ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 101791be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 1018130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 1019130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 10201b08cb4eSAlexander Motin CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 1021130f4520SKenneth D. Merry 1022130f4520SKenneth D. Merry /* 26 */ 1023130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1024130f4520SKenneth D. Merry 1025130f4520SKenneth D. Merry /* 27 */ 1026130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1027130f4520SKenneth D. Merry 1028130f4520SKenneth D. Merry /* 28 READ(10) */ 102991be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 103091be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 1031130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 1032115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 10331b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1034b0737f1aSAlexander Motin 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1035130f4520SKenneth D. Merry 1036130f4520SKenneth D. Merry /* 29 READ GENERATION */ 1037130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1038130f4520SKenneth D. Merry 1039130f4520SKenneth D. Merry /* 2A WRITE(10) */ 104091be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 10411b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1042b0737f1aSAlexander Motin 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1043130f4520SKenneth D. Merry 1044130f4520SKenneth D. Merry /* 2B SEEK(10) */ 1045130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1046130f4520SKenneth D. Merry 1047130f4520SKenneth D. Merry /* 2C ERASE(10) */ 1048130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1049130f4520SKenneth D. Merry 1050130f4520SKenneth D. Merry /* 2D READ UPDATED BLOCK */ 1051130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1052130f4520SKenneth D. Merry 1053130f4520SKenneth D. Merry /* 2E WRITE AND VERIFY(10) */ 105491be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 10551b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 10565b5ad150SAlexander Motin 10, {0x12, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1057130f4520SKenneth D. Merry 1058130f4520SKenneth D. Merry /* 2F VERIFY(10) */ 105991be33dcSAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 106011b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 1061115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 10621b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 10631b08cb4eSAlexander Motin 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1064130f4520SKenneth D. Merry 1065130f4520SKenneth D. Merry /* 30 SEARCH DATA HIGH(10) */ 1066130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1067130f4520SKenneth D. Merry 1068130f4520SKenneth D. Merry /* 31 SEARCH DATA EQUAL(10) */ 1069130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1070130f4520SKenneth D. Merry 1071130f4520SKenneth D. Merry /* 32 SEARCH DATA LOW(10) */ 1072130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1073130f4520SKenneth D. Merry 1074130f4520SKenneth D. Merry /* 33 SET LIMITS(10) */ 1075130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1076130f4520SKenneth D. Merry 1077130f4520SKenneth D. Merry /* 34 PRE-FETCH(10) */ 1078130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1079130f4520SKenneth D. Merry 1080130f4520SKenneth D. Merry /* 35 SYNCHRONIZE CACHE(10) */ 108191be33dcSAlexander Motin {ctl_sync_cache, CTL_SERIDX_SYNC, CTL_CMD_FLAG_OK_ON_DIRECT | 1082130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 10836187d472SAlexander Motin CTL_LUN_PAT_WRITE, 10847f3d6f1fSAlexander Motin 10, {0x06, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1085130f4520SKenneth D. Merry 1086130f4520SKenneth D. Merry /* 36 LOCK UNLOCK CACHE(10) */ 1087130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1088130f4520SKenneth D. Merry 1089130f4520SKenneth D. Merry /* 37 READ DEFECT DATA(10) */ 109091be33dcSAlexander Motin {ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_DIRECT | 1091d70698b3SAlexander Motin CTL_FLAG_DATA_IN | 1092115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1093d70698b3SAlexander Motin CTL_LUN_PAT_NONE, 1094d70698b3SAlexander Motin 10, {0, 0x1f, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 1095130f4520SKenneth D. Merry 1096130f4520SKenneth D. Merry /* 38 MEDIUM SCAN */ 1097130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1098130f4520SKenneth D. Merry 1099130f4520SKenneth D. Merry /* 39 COMPARE */ 1100130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1101130f4520SKenneth D. Merry 1102130f4520SKenneth D. Merry /* 3A COPY AND VERIFY */ 1103130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1104130f4520SKenneth D. Merry 1105130f4520SKenneth D. Merry /* 3B WRITE BUFFER */ 1106*82029718SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_3b), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1107*82029718SAlexander Motin CTL_LUN_PAT_NONE}, 1108130f4520SKenneth D. Merry 1109130f4520SKenneth D. Merry /* 3C READ BUFFER */ 1110*82029718SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_3c), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1111*82029718SAlexander Motin CTL_LUN_PAT_NONE}, 1112130f4520SKenneth D. Merry 1113130f4520SKenneth D. Merry /* 3D UPDATE BLOCK */ 1114130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1115130f4520SKenneth D. Merry 1116130f4520SKenneth D. Merry /* 3E READ LONG */ 1117130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1118130f4520SKenneth D. Merry 1119130f4520SKenneth D. Merry /* 3F WRITE LONG */ 1120130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1121130f4520SKenneth D. Merry 1122130f4520SKenneth D. Merry /* 40 CHANGE DEFINITION */ 1123130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1124130f4520SKenneth D. Merry 1125130f4520SKenneth D. Merry /* 41 WRITE SAME(10) */ 112691be33dcSAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 1127ee7f31c0SAlexander Motin CTL_FLAG_DATA_OUT, 11281b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 11293406a2a0SAlexander Motin 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1130130f4520SKenneth D. Merry 1131ee7f31c0SAlexander Motin /* 42 READ SUB-CHANNEL / UNMAP */ 113291be33dcSAlexander Motin {ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_DIRECT | CTL_FLAG_DATA_OUT, 11331b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE, 11343406a2a0SAlexander Motin 10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 1135130f4520SKenneth D. Merry 1136130f4520SKenneth D. Merry /* 43 READ TOC/PMA/ATIP */ 113791be33dcSAlexander Motin {ctl_read_toc, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 113891be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV | 113991be33dcSAlexander Motin CTL_FLAG_DATA_IN, 114091be33dcSAlexander Motin CTL_LUN_PAT_NONE, 114191be33dcSAlexander Motin 10, {0x02, 0x01, 0, 0, 0, 0xff, 0xff, 0xff, 0x07}}, 1142130f4520SKenneth D. Merry 1143130f4520SKenneth D. Merry /* 44 REPORT DENSITY SUPPORT */ 1144130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1145130f4520SKenneth D. Merry 1146130f4520SKenneth D. Merry /* 45 PLAY AUDIO(10) */ 1147130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1148130f4520SKenneth D. Merry 1149130f4520SKenneth D. Merry /* 46 GET CONFIGURATION */ 115091be33dcSAlexander Motin {ctl_get_config, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_CDROM | 1151648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 115291be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 115391be33dcSAlexander Motin CTL_FLAG_DATA_IN, 115491be33dcSAlexander Motin CTL_LUN_PAT_NONE, 115591be33dcSAlexander Motin 10, {0x03, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07}}, 1156130f4520SKenneth D. Merry 1157130f4520SKenneth D. Merry /* 47 PLAY AUDIO MSF */ 1158130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1159130f4520SKenneth D. Merry 1160130f4520SKenneth D. Merry /* 48 PLAY AUDIO TRACK INDEX */ 1161130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1162130f4520SKenneth D. Merry 1163130f4520SKenneth D. Merry /* 49 PLAY TRACK RELATIVE(10) */ 1164130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1165130f4520SKenneth D. Merry 1166130f4520SKenneth D. Merry /* 4A GET EVENT STATUS NOTIFICATION */ 116791be33dcSAlexander Motin {ctl_get_event_status, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 1168648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 116991be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 117091be33dcSAlexander Motin CTL_FLAG_DATA_IN, 117191be33dcSAlexander Motin CTL_LUN_PAT_NONE, 117291be33dcSAlexander Motin 10, {0x02, 0x01, 0, 0, 0, 0xff, 0xff, 0xff, 0x07}}, 1173130f4520SKenneth D. Merry 1174130f4520SKenneth D. Merry /* 4B PAUSE/RESUME */ 1175130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1176130f4520SKenneth D. Merry 1177130f4520SKenneth D. Merry /* 4C LOG SELECT */ 1178130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1179130f4520SKenneth D. Merry 1180130f4520SKenneth D. Merry /* 4D LOG SENSE */ 11812e33ae99SAlexander Motin {ctl_log_sense, CTL_SERIDX_LOG_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 1182648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 11832e33ae99SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1184523f047eSAlexander Motin CTL_FLAG_DATA_IN | 1185523f047eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1186523f047eSAlexander Motin CTL_LUN_PAT_NONE, 10, {0, 0xff, 0xff, 0, 0xff, 0xff, 0xff, 0xff, 0x07} }, 1187130f4520SKenneth D. Merry 1188130f4520SKenneth D. Merry /* 4E STOP PLAY/SCAN */ 1189130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1190130f4520SKenneth D. Merry 1191130f4520SKenneth D. Merry /* 4F */ 1192130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1193130f4520SKenneth D. Merry 1194130f4520SKenneth D. Merry /* 50 XDWRITE(10) */ 1195130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1196130f4520SKenneth D. Merry 1197130f4520SKenneth D. Merry /* 51 XPWRITE(10) */ 1198130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1199130f4520SKenneth D. Merry 1200130f4520SKenneth D. Merry /* 52 XDREAD(10) */ 1201130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1202130f4520SKenneth D. Merry 1203130f4520SKenneth D. Merry /* 53 RESERVE TRACK */ 1204130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1205130f4520SKenneth D. Merry 1206130f4520SKenneth D. Merry /* 54 SEND OPC INFORMATION */ 1207130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1208130f4520SKenneth D. Merry 1209130f4520SKenneth D. Merry /* 55 MODE SELECT(10) */ 1210130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 1211648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 12127ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1213130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 12141b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 1215130f4520SKenneth D. Merry 1216130f4520SKenneth D. Merry /* 56 RESERVE(10) */ 12174d877c41SAlexander Motin {ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1218130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 1219648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 12207ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1221130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 1222f44570f6SAlexander Motin CTL_LUN_PAT_NONE, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07} }, 1223130f4520SKenneth D. Merry 1224130f4520SKenneth D. Merry /* 57 RELEASE(10) */ 12254d877c41SAlexander Motin {ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1226130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 1227648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 12287ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1229130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 1230f44570f6SAlexander Motin CTL_LUN_PAT_NONE, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 1231130f4520SKenneth D. Merry 1232130f4520SKenneth D. Merry /* 58 REPAIR TRACK */ 1233130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1234130f4520SKenneth D. Merry 1235130f4520SKenneth D. Merry /* 59 READ MASTER CUE */ 1236130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1237130f4520SKenneth D. Merry 1238130f4520SKenneth D. Merry /* 5A MODE SENSE(10) */ 1239130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 1240648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 12417ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1242f82388fdSAlexander Motin CTL_FLAG_DATA_IN | 1243115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1244c7a7dbbcSAlexander Motin CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 1245130f4520SKenneth D. Merry 1246130f4520SKenneth D. Merry /* 5B CLOSE TRACK/SESSION */ 1247130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1248130f4520SKenneth D. Merry 1249130f4520SKenneth D. Merry /* 5C READ BUFFER CAPACITY */ 1250130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1251130f4520SKenneth D. Merry 1252130f4520SKenneth D. Merry /* 5D SEND CUE SHEET */ 1253130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1254130f4520SKenneth D. Merry 1255130f4520SKenneth D. Merry /* 5E PERSISTENT RESERVE IN */ 12561b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1257130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 1258130f4520SKenneth D. Merry 1259130f4520SKenneth D. Merry /* 5F PERSISTENT RESERVE OUT */ 12601b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1261130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 1262130f4520SKenneth D. Merry 1263130f4520SKenneth D. Merry /* 60 */ 1264130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1265130f4520SKenneth D. Merry 1266130f4520SKenneth D. Merry /* 61 */ 1267130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1268130f4520SKenneth D. Merry 1269130f4520SKenneth D. Merry /* 62 */ 1270130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1271130f4520SKenneth D. Merry 1272130f4520SKenneth D. Merry /* 63 */ 1273130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1274130f4520SKenneth D. Merry 1275130f4520SKenneth D. Merry /* 64 */ 1276130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1277130f4520SKenneth D. Merry 1278130f4520SKenneth D. Merry /* 65 */ 1279130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1280130f4520SKenneth D. Merry 1281130f4520SKenneth D. Merry /* 66 */ 1282130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1283130f4520SKenneth D. Merry 1284130f4520SKenneth D. Merry /* 67 */ 1285130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1286130f4520SKenneth D. Merry 1287130f4520SKenneth D. Merry /* 68 */ 1288130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1289130f4520SKenneth D. Merry 1290130f4520SKenneth D. Merry /* 69 */ 1291130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1292130f4520SKenneth D. Merry 1293130f4520SKenneth D. Merry /* 6A */ 1294130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1295130f4520SKenneth D. Merry 1296130f4520SKenneth D. Merry /* 6B */ 1297130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1298130f4520SKenneth D. Merry 1299130f4520SKenneth D. Merry /* 6C */ 1300130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1301130f4520SKenneth D. Merry 1302130f4520SKenneth D. Merry /* 6D */ 1303130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1304130f4520SKenneth D. Merry 1305130f4520SKenneth D. Merry /* 6E */ 1306130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1307130f4520SKenneth D. Merry 1308130f4520SKenneth D. Merry /* 6F */ 1309130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1310130f4520SKenneth D. Merry 1311130f4520SKenneth D. Merry /* 70 */ 1312130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1313130f4520SKenneth D. Merry 1314130f4520SKenneth D. Merry /* 71 */ 1315130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1316130f4520SKenneth D. Merry 1317130f4520SKenneth D. Merry /* 72 */ 1318130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1319130f4520SKenneth D. Merry 1320130f4520SKenneth D. Merry /* 73 */ 1321130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1322130f4520SKenneth D. Merry 1323130f4520SKenneth D. Merry /* 74 */ 1324130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1325130f4520SKenneth D. Merry 1326130f4520SKenneth D. Merry /* 75 */ 1327130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1328130f4520SKenneth D. Merry 1329130f4520SKenneth D. Merry /* 76 */ 1330130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1331130f4520SKenneth D. Merry 1332130f4520SKenneth D. Merry /* 77 */ 1333130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1334130f4520SKenneth D. Merry 1335130f4520SKenneth D. Merry /* 78 */ 1336130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1337130f4520SKenneth D. Merry 1338130f4520SKenneth D. Merry /* 79 */ 1339130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1340130f4520SKenneth D. Merry 1341130f4520SKenneth D. Merry /* 7A */ 1342130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1343130f4520SKenneth D. Merry 1344130f4520SKenneth D. Merry /* 7B */ 1345130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1346130f4520SKenneth D. Merry 1347130f4520SKenneth D. Merry /* 7C */ 1348130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1349130f4520SKenneth D. Merry 1350130f4520SKenneth D. Merry /* 7D */ 1351130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1352130f4520SKenneth D. Merry 1353130f4520SKenneth D. Merry /* 7E */ 1354130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1355130f4520SKenneth D. Merry 1356130f4520SKenneth D. Merry /* 7F */ 1357130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1358130f4520SKenneth D. Merry 1359130f4520SKenneth D. Merry /* 80 XDWRITE EXTENDED(16) */ 1360130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1361130f4520SKenneth D. Merry 1362130f4520SKenneth D. Merry /* 81 REBUILD(16) */ 1363130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1364130f4520SKenneth D. Merry 1365130f4520SKenneth D. Merry /* 82 REGENERATE(16) */ 1366130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1367130f4520SKenneth D. Merry 1368130f4520SKenneth D. Merry /* 83 EXTENDED COPY */ 1369984a2ea9SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1370984a2ea9SAlexander Motin CTL_LUN_PAT_NONE}, 1371130f4520SKenneth D. Merry 1372130f4520SKenneth D. Merry /* 84 RECEIVE COPY RESULTS */ 1373984a2ea9SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1374984a2ea9SAlexander Motin CTL_LUN_PAT_NONE}, 1375130f4520SKenneth D. Merry 1376130f4520SKenneth D. Merry /* 85 */ 1377130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1378130f4520SKenneth D. Merry 1379130f4520SKenneth D. Merry /* 86 ACCESS CONTROL IN */ 1380130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1381130f4520SKenneth D. Merry 1382130f4520SKenneth D. Merry /* 87 ACCESS CONTROL OUT */ 1383130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1384130f4520SKenneth D. Merry 1385130f4520SKenneth D. Merry /* 88 READ(16) */ 138691be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | CTL_FLAG_DATA_IN | 1387115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 13881b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1389b0737f1aSAlexander Motin 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 13901b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1391130f4520SKenneth D. Merry 139211b569f7SAlexander Motin /* 89 COMPARE AND WRITE */ 139391be33dcSAlexander Motin {ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 13941b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 13951b08cb4eSAlexander Motin 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 13961b08cb4eSAlexander Motin 0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}}, 1397130f4520SKenneth D. Merry 1398130f4520SKenneth D. Merry /* 8A WRITE(16) */ 139991be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 14001b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1401b0737f1aSAlexander Motin 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14021b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1403130f4520SKenneth D. Merry 1404130f4520SKenneth D. Merry /* 8B */ 1405130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1406130f4520SKenneth D. Merry 1407130f4520SKenneth D. Merry /* 8C READ ATTRIBUTE */ 1408130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1409130f4520SKenneth D. Merry 1410130f4520SKenneth D. Merry /* 8D WRITE ATTRIBUTE */ 1411130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1412130f4520SKenneth D. Merry 1413130f4520SKenneth D. Merry /* 8E WRITE AND VERIFY(16) */ 141491be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 14151b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 14165b5ad150SAlexander Motin 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14171b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1418130f4520SKenneth D. Merry 1419130f4520SKenneth D. Merry /* 8F VERIFY(16) */ 142091be33dcSAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 142111b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 1422115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 14231b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 14241b08cb4eSAlexander Motin 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14251b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1426130f4520SKenneth D. Merry 1427130f4520SKenneth D. Merry /* 90 PRE-FETCH(16) */ 1428130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1429130f4520SKenneth D. Merry 1430130f4520SKenneth D. Merry /* 91 SYNCHRONIZE CACHE(16) */ 143191be33dcSAlexander Motin {ctl_sync_cache, CTL_SERIDX_SYNC, CTL_CMD_FLAG_OK_ON_DIRECT | 1432130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 14336187d472SAlexander Motin CTL_LUN_PAT_WRITE, 14347f3d6f1fSAlexander Motin 16, {0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14351b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1436130f4520SKenneth D. Merry 1437130f4520SKenneth D. Merry /* 92 LOCK UNLOCK CACHE(16) */ 1438130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1439130f4520SKenneth D. Merry 1440130f4520SKenneth D. Merry /* 93 WRITE SAME(16) */ 144191be33dcSAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 1442ee7f31c0SAlexander Motin CTL_FLAG_DATA_OUT, 14431b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 144464c5167cSAlexander Motin 16, {0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14451b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1446130f4520SKenneth D. Merry 1447130f4520SKenneth D. Merry /* 94 */ 1448130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1449130f4520SKenneth D. Merry 1450130f4520SKenneth D. Merry /* 95 */ 1451130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1452130f4520SKenneth D. Merry 1453130f4520SKenneth D. Merry /* 96 */ 1454130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1455130f4520SKenneth D. Merry 1456130f4520SKenneth D. Merry /* 97 */ 1457130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1458130f4520SKenneth D. Merry 1459130f4520SKenneth D. Merry /* 98 */ 1460130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1461130f4520SKenneth D. Merry 1462130f4520SKenneth D. Merry /* 99 */ 1463130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1464130f4520SKenneth D. Merry 1465130f4520SKenneth D. Merry /* 9A */ 1466130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1467130f4520SKenneth D. Merry 1468de988746SAlexander Motin /* 9B READ BUFFER(16) */ 1469*82029718SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_9b), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1470*82029718SAlexander Motin CTL_LUN_PAT_NONE}, 1471130f4520SKenneth D. Merry 14728a416753SAlexander Motin /* 9C WRITE ATOMIC (16) */ 147391be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 14748a416753SAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 14758a416753SAlexander Motin 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14768a416753SAlexander Motin 0xff, 0xff, 0, 0, 0xff, 0xff, 0, 0x07}}, 1477130f4520SKenneth D. Merry 1478130f4520SKenneth D. Merry /* 9D */ 1479130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1480130f4520SKenneth D. Merry 1481130f4520SKenneth D. Merry /* 9E SERVICE ACTION IN(16) */ 14821b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 14831b08cb4eSAlexander Motin CTL_LUN_PAT_NONE}, 1484130f4520SKenneth D. Merry 1485130f4520SKenneth D. Merry /* 9F SERVICE ACTION OUT(16) */ 1486130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1487130f4520SKenneth D. Merry 1488130f4520SKenneth D. Merry /* A0 REPORT LUNS */ 1489921af507SAlexander Motin {ctl_report_luns, CTL_SERIDX_INQ, CTL_FLAG_DATA_IN | 1490921af507SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_LUN | 1491efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 1492130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 1493130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 1494648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 14957ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 14967ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 1497921af507SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 1498921af507SAlexander Motin CTL_CMD_FLAG_RUN_HERE, 14991b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 15001b08cb4eSAlexander Motin 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1501130f4520SKenneth D. Merry 1502130f4520SKenneth D. Merry /* A1 BLANK */ 1503130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1504130f4520SKenneth D. Merry 1505130f4520SKenneth D. Merry /* A2 SEND EVENT */ 1506130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1507130f4520SKenneth D. Merry 15081b08cb4eSAlexander Motin /* A3 MAINTENANCE IN */ 15091b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1510130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 1511130f4520SKenneth D. Merry 15121b08cb4eSAlexander Motin /* A4 MAINTENANCE OUT */ 1513130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1514130f4520SKenneth D. Merry 1515130f4520SKenneth D. Merry /* A5 MOVE MEDIUM */ 1516130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1517130f4520SKenneth D. Merry 1518130f4520SKenneth D. Merry /* A6 EXCHANGE MEDIUM */ 1519130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1520130f4520SKenneth D. Merry 1521130f4520SKenneth D. Merry /* A7 MOVE MEDIUM ATTACHED */ 1522130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1523130f4520SKenneth D. Merry 1524130f4520SKenneth D. Merry /* A8 READ(12) */ 152591be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 152691be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 152791be33dcSAlexander Motin CTL_FLAG_DATA_IN | 1528115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 15291b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1530b0737f1aSAlexander Motin 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1531130f4520SKenneth D. Merry 1532130f4520SKenneth D. Merry /* A9 PLAY TRACK RELATIVE(12) */ 1533130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1534130f4520SKenneth D. Merry 1535130f4520SKenneth D. Merry /* AA WRITE(12) */ 153691be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 15371b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1538b0737f1aSAlexander Motin 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1539130f4520SKenneth D. Merry 1540130f4520SKenneth D. Merry /* AB SERVICE ACTION IN(12) */ 1541130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1542130f4520SKenneth D. Merry 1543130f4520SKenneth D. Merry /* AC ERASE(12) */ 1544130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1545130f4520SKenneth D. Merry 1546130f4520SKenneth D. Merry /* AD READ DVD STRUCTURE */ 1547130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1548130f4520SKenneth D. Merry 1549130f4520SKenneth D. Merry /* AE WRITE AND VERIFY(12) */ 155091be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 15511b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 15525b5ad150SAlexander Motin 12, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1553130f4520SKenneth D. Merry 1554130f4520SKenneth D. Merry /* AF VERIFY(12) */ 155591be33dcSAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 155611b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 1557115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 15581b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 15591b08cb4eSAlexander Motin 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1560130f4520SKenneth D. Merry 1561130f4520SKenneth D. Merry /* B0 SEARCH DATA HIGH(12) */ 1562130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1563130f4520SKenneth D. Merry 1564130f4520SKenneth D. Merry /* B1 SEARCH DATA EQUAL(12) */ 1565130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1566130f4520SKenneth D. Merry 1567130f4520SKenneth D. Merry /* B2 SEARCH DATA LOW(12) */ 1568130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1569130f4520SKenneth D. Merry 1570130f4520SKenneth D. Merry /* B3 SET LIMITS(12) */ 1571130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1572130f4520SKenneth D. Merry 1573130f4520SKenneth D. Merry /* B4 READ ELEMENT STATUS ATTACHED */ 1574130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1575130f4520SKenneth D. Merry 1576130f4520SKenneth D. Merry /* B5 REQUEST VOLUME ELEMENT ADDRESS */ 1577130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1578130f4520SKenneth D. Merry 1579130f4520SKenneth D. Merry /* B6 SEND VOLUME TAG */ 1580130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1581130f4520SKenneth D. Merry 1582130f4520SKenneth D. Merry /* B7 READ DEFECT DATA(12) */ 158391be33dcSAlexander Motin {ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_DIRECT | 1584d70698b3SAlexander Motin CTL_FLAG_DATA_IN | 1585115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1586d70698b3SAlexander Motin CTL_LUN_PAT_NONE, 1587d70698b3SAlexander Motin 12, {0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1588130f4520SKenneth D. Merry 1589130f4520SKenneth D. Merry /* B8 READ ELEMENT STATUS */ 1590130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1591130f4520SKenneth D. Merry 1592130f4520SKenneth D. Merry /* B9 READ CD MSF */ 1593130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1594130f4520SKenneth D. Merry 15951b08cb4eSAlexander Motin /* BA REDUNDANCY GROUP IN */ 1596130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1597130f4520SKenneth D. Merry 15981b08cb4eSAlexander Motin /* BB REDUNDANCY GROUP OUT */ 1599130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1600130f4520SKenneth D. Merry 16011b08cb4eSAlexander Motin /* BC SPARE IN */ 1602130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1603130f4520SKenneth D. Merry 160491be33dcSAlexander Motin /* BD SPARE OUT / MECHANISM STATUS */ 160591be33dcSAlexander Motin {ctl_mechanism_status, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 1606648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 160791be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 160891be33dcSAlexander Motin CTL_FLAG_DATA_IN, 160991be33dcSAlexander Motin CTL_LUN_PAT_NONE, 161091be33dcSAlexander Motin 12, {0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0, 0x07}}, 1611130f4520SKenneth D. Merry 16121b08cb4eSAlexander Motin /* BE VOLUME SET IN */ 1613130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1614130f4520SKenneth D. Merry 16151b08cb4eSAlexander Motin /* BF VOLUME SET OUT */ 1616130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1617130f4520SKenneth D. Merry 16187ac58230SAlexander Motin /* C0 */ 16197ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1620130f4520SKenneth D. Merry 16217ac58230SAlexander Motin /* C1 */ 16227ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1623130f4520SKenneth D. Merry 16247ac58230SAlexander Motin /* C2 */ 16257ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1626130f4520SKenneth D. Merry 16277ac58230SAlexander Motin /* C3 */ 16287ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1629130f4520SKenneth D. Merry 1630130f4520SKenneth D. Merry /* C4 */ 1631130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1632130f4520SKenneth D. Merry 1633130f4520SKenneth D. Merry /* C5 */ 1634130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1635130f4520SKenneth D. Merry 1636130f4520SKenneth D. Merry /* C6 */ 1637130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1638130f4520SKenneth D. Merry 1639130f4520SKenneth D. Merry /* C7 */ 1640130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1641130f4520SKenneth D. Merry 1642130f4520SKenneth D. Merry /* C8 */ 1643130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1644130f4520SKenneth D. Merry 1645130f4520SKenneth D. Merry /* C9 */ 1646130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1647130f4520SKenneth D. Merry 1648130f4520SKenneth D. Merry /* CA */ 1649130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1650130f4520SKenneth D. Merry 1651130f4520SKenneth D. Merry /* CB */ 1652130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1653130f4520SKenneth D. Merry 1654130f4520SKenneth D. Merry /* CC */ 1655130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1656130f4520SKenneth D. Merry 1657130f4520SKenneth D. Merry /* CD */ 1658130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1659130f4520SKenneth D. Merry 1660130f4520SKenneth D. Merry /* CE */ 1661130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1662130f4520SKenneth D. Merry 1663130f4520SKenneth D. Merry /* CF */ 1664130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1665130f4520SKenneth D. Merry 1666130f4520SKenneth D. Merry /* D0 */ 1667130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1668130f4520SKenneth D. Merry 1669130f4520SKenneth D. Merry /* D1 */ 1670130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1671130f4520SKenneth D. Merry 1672130f4520SKenneth D. Merry /* D2 */ 1673130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1674130f4520SKenneth D. Merry 1675130f4520SKenneth D. Merry /* D3 */ 1676130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1677130f4520SKenneth D. Merry 1678130f4520SKenneth D. Merry /* D4 */ 1679130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1680130f4520SKenneth D. Merry 1681130f4520SKenneth D. Merry /* D5 */ 1682130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1683130f4520SKenneth D. Merry 1684130f4520SKenneth D. Merry /* D6 */ 1685130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1686130f4520SKenneth D. Merry 1687130f4520SKenneth D. Merry /* D7 */ 1688130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1689130f4520SKenneth D. Merry 1690130f4520SKenneth D. Merry /* D8 */ 1691130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1692130f4520SKenneth D. Merry 1693130f4520SKenneth D. Merry /* D9 */ 1694130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1695130f4520SKenneth D. Merry 1696130f4520SKenneth D. Merry /* DA */ 1697130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1698130f4520SKenneth D. Merry 1699130f4520SKenneth D. Merry /* DB */ 1700130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1701130f4520SKenneth D. Merry 1702130f4520SKenneth D. Merry /* DC */ 1703130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1704130f4520SKenneth D. Merry 1705130f4520SKenneth D. Merry /* DD */ 1706130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1707130f4520SKenneth D. Merry 1708130f4520SKenneth D. Merry /* DE */ 1709130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1710130f4520SKenneth D. Merry 1711130f4520SKenneth D. Merry /* DF */ 1712130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1713130f4520SKenneth D. Merry 1714130f4520SKenneth D. Merry /* E0 */ 1715130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1716130f4520SKenneth D. Merry 1717130f4520SKenneth D. Merry /* E1 */ 1718130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1719130f4520SKenneth D. Merry 1720130f4520SKenneth D. Merry /* E2 */ 1721130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1722130f4520SKenneth D. Merry 1723130f4520SKenneth D. Merry /* E3 */ 1724130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1725130f4520SKenneth D. Merry 1726130f4520SKenneth D. Merry /* E4 */ 1727130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1728130f4520SKenneth D. Merry 1729130f4520SKenneth D. Merry /* E5 */ 1730130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1731130f4520SKenneth D. Merry 1732130f4520SKenneth D. Merry /* E6 */ 1733130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1734130f4520SKenneth D. Merry 1735130f4520SKenneth D. Merry /* E7 */ 1736130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1737130f4520SKenneth D. Merry 1738130f4520SKenneth D. Merry /* E8 */ 1739130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1740130f4520SKenneth D. Merry 1741130f4520SKenneth D. Merry /* E9 */ 1742130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1743130f4520SKenneth D. Merry 1744130f4520SKenneth D. Merry /* EA */ 1745130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1746130f4520SKenneth D. Merry 1747130f4520SKenneth D. Merry /* EB */ 1748130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1749130f4520SKenneth D. Merry 1750130f4520SKenneth D. Merry /* EC */ 1751130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1752130f4520SKenneth D. Merry 1753130f4520SKenneth D. Merry /* ED */ 1754130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1755130f4520SKenneth D. Merry 1756130f4520SKenneth D. Merry /* EE */ 1757130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1758130f4520SKenneth D. Merry 1759130f4520SKenneth D. Merry /* EF */ 1760130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1761130f4520SKenneth D. Merry 1762130f4520SKenneth D. Merry /* F0 */ 1763130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1764130f4520SKenneth D. Merry 1765130f4520SKenneth D. Merry /* F1 */ 1766130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1767130f4520SKenneth D. Merry 1768130f4520SKenneth D. Merry /* F2 */ 1769130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1770130f4520SKenneth D. Merry 1771130f4520SKenneth D. Merry /* F3 */ 1772130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1773130f4520SKenneth D. Merry 1774130f4520SKenneth D. Merry /* F4 */ 1775130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1776130f4520SKenneth D. Merry 1777130f4520SKenneth D. Merry /* F5 */ 1778130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1779130f4520SKenneth D. Merry 1780130f4520SKenneth D. Merry /* F6 */ 1781130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1782130f4520SKenneth D. Merry 1783130f4520SKenneth D. Merry /* F7 */ 1784130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1785130f4520SKenneth D. Merry 1786130f4520SKenneth D. Merry /* F8 */ 1787130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1788130f4520SKenneth D. Merry 1789130f4520SKenneth D. Merry /* F9 */ 1790130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1791130f4520SKenneth D. Merry 1792130f4520SKenneth D. Merry /* FA */ 1793130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1794130f4520SKenneth D. Merry 1795130f4520SKenneth D. Merry /* FB */ 1796130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1797130f4520SKenneth D. Merry 1798130f4520SKenneth D. Merry /* FC */ 1799130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1800130f4520SKenneth D. Merry 1801130f4520SKenneth D. Merry /* FD */ 1802130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1803130f4520SKenneth D. Merry 1804130f4520SKenneth D. Merry /* FE */ 1805130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1806130f4520SKenneth D. Merry 1807130f4520SKenneth D. Merry /* FF */ 1808130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 1809130f4520SKenneth D. Merry 1810130f4520SKenneth D. Merry }; 1811