1229997Sken/*- 2229997Sken * Copyright (c) 2003, 2004, 2005, 2009 Silicon Graphics International Corp. 3288348Smav * Copyright (c) 2014-2015 Alexander Motin <mav@FreeBSD.org> 4229997Sken * All rights reserved. 5229997Sken * 6229997Sken * Redistribution and use in source and binary forms, with or without 7229997Sken * modification, are permitted provided that the following conditions 8229997Sken * are met: 9229997Sken * 1. Redistributions of source code must retain the above copyright 10229997Sken * notice, this list of conditions, and the following disclaimer, 11229997Sken * without modification. 12229997Sken * 2. Redistributions in binary form must reproduce at minimum a disclaimer 13229997Sken * substantially similar to the "NO WARRANTY" disclaimer below 14229997Sken * ("Disclaimer") and any redistribution must be conditioned upon 15229997Sken * including a substantially similar Disclaimer requirement for further 16229997Sken * binary redistribution. 17229997Sken * 18229997Sken * NO WARRANTY 19229997Sken * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20229997Sken * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21229997Sken * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 22229997Sken * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23229997Sken * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24229997Sken * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25229997Sken * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26229997Sken * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 27229997Sken * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 28229997Sken * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29229997Sken * POSSIBILITY OF SUCH DAMAGES. 30229997Sken * 31229997Sken * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_cmd_table.c#4 $ 32229997Sken * $FreeBSD: stable/11/sys/cam/ctl/ctl_cmd_table.c 312578 2017-01-21 08:35:28Z mav $ 33229997Sken */ 34229997Sken/* 35229997Sken * CAM Target Layer command table. 36229997Sken * 37229997Sken * Author: Ken Merry <ken@FreeBSD.org>, Kim Le 38229997Sken */ 39229997Sken 40229997Sken#include <sys/cdefs.h> 41229997Sken#include <sys/param.h> 42229997Sken#include <sys/systm.h> 43229997Sken#include <sys/kernel.h> 44229997Sken#include <sys/types.h> 45229997Sken#include <sys/malloc.h> 46229997Sken#include <sys/condvar.h> 47229997Sken#include <sys/queue.h> 48233963Sken#include <sys/sysctl.h> 49229997Sken 50229997Sken#include <cam/scsi/scsi_all.h> 51229997Sken#include <cam/scsi/scsi_da.h> 52229997Sken#include <cam/ctl/ctl_io.h> 53229997Sken#include <cam/ctl/ctl.h> 54229997Sken#include <cam/ctl/ctl_frontend.h> 55229997Sken#include <cam/ctl/ctl_backend.h> 56229997Sken#include <cam/ctl/ctl_ioctl.h> 57229997Sken#include <cam/ctl/ctl_ha.h> 58229997Sken#include <cam/ctl/ctl_private.h> 59229997Sken 60229997Sken/* 61268096Smav * Whenever support for a new command is added, it should be added to these 62268096Smav * tables. 63229997Sken */ 64268096Smav 65311431Smav/* 3B WRITE BUFFER */ 66311431Smavconst struct ctl_cmd_entry ctl_cmd_table_3b[32] = 67311431Smav{ 68311431Smav/* 00 WRITE BUFFER HDR DATA */ 69311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 70311431Smav 71311431Smav/* 01 WRITE BUFFER VENDOR */ 72311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 73311431Smav 74311431Smav/* 02 WRITE BUFFER DATA */ 75311431Smav{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 76311431Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 77311431Smav CTL_CMD_FLAG_OK_ON_STANDBY | 78311431Smav CTL_FLAG_DATA_OUT, 79311431Smav CTL_LUN_PAT_NONE, 80311431Smav 10, {0x02, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 81311431Smav 82311431Smav/* 03 WRITE BUFFER DESCR */ 83311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 84311431Smav 85311431Smav/* 04 WRITE BUFFER DOWNLOAD */ 86311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 87311431Smav 88311431Smav/* 05 WRITE BUFFER DOWNLOAD SAVE */ 89311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 90311431Smav 91311431Smav/* 06 */ 92311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 93311431Smav 94311431Smav/* 07 */ 95311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 96311431Smav 97311431Smav/* 08 */ 98311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 99311431Smav 100311431Smav/* 09 */ 101311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 102311431Smav 103311431Smav/* 0A WRITE BUFFER ECHO */ 104311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 105311431Smav 106311431Smav/* 0B WRITE BUFFER ECHO DESCRIPTOR */ 107311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 108311431Smav 109311431Smav/* 0C */ 110311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 111311431Smav 112311431Smav/* 0D */ 113311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 114311431Smav 115311431Smav/* 0E */ 116311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 117311431Smav 118311431Smav/* 0F */ 119311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 120311431Smav 121311431Smav/* 10 */ 122311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 123311431Smav 124311431Smav/* 11 */ 125311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 126311431Smav 127311431Smav/* 12 */ 128311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 129311431Smav 130311431Smav/* 13 */ 131311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 132311431Smav 133311431Smav/* 14 */ 134311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 135311431Smav 136311431Smav/* 15 */ 137311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 138311431Smav 139311431Smav/* 16 */ 140311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 141311431Smav 142311431Smav/* 17 */ 143311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 144311431Smav 145311431Smav/* 18 */ 146311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 147311431Smav 148311431Smav/* 19 */ 149311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 150311431Smav 151311431Smav/* 1A */ 152311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 153311431Smav 154311431Smav/* 1B */ 155311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 156311431Smav 157311431Smav/* 1C WRITE BUFFER ERROR HISTORY */ 158311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 159311431Smav 160311431Smav/* 1d-1f */ 161311431Smav}; 162311431Smav 163311431Smav/* 3C READ BUFFER(10) */ 164311431Smavconst struct ctl_cmd_entry ctl_cmd_table_3c[32] = 165311431Smav{ 166311431Smav/* 00 READ BUFFER(10) HDR DATA */ 167311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 168311431Smav 169311431Smav/* 01 READ BUFFER(10) VENDOR */ 170311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 171311431Smav 172311431Smav/* 02 READ BUFFER(10) DATA */ 173311431Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 174311431Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 175311431Smav CTL_CMD_FLAG_OK_ON_STANDBY | 176311431Smav CTL_FLAG_DATA_IN | 177311431Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 178311431Smav CTL_LUN_PAT_NONE, 179311431Smav 10, {0x02, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 180311431Smav 181311431Smav/* 03 READ BUFFER(10) DESCR */ 182311431Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 183311431Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 184311431Smav CTL_CMD_FLAG_OK_ON_STANDBY | 185311431Smav CTL_FLAG_DATA_IN | 186311431Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 187311431Smav CTL_LUN_PAT_NONE, 188311431Smav 10, {0x03, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 189311431Smav 190311431Smav/* 04 */ 191311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 192311431Smav 193311431Smav/* 05 */ 194311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 195311431Smav 196311431Smav/* 06 */ 197311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 198311431Smav 199311431Smav/* 07 */ 200311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 201311431Smav 202311431Smav/* 08 */ 203311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 204311431Smav 205311431Smav/* 09 */ 206311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 207311431Smav 208311431Smav/* 0A READ BUFFER(10) ECHO */ 209311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 210311431Smav 211311431Smav/* 0B READ BUFFER(10) ECHO DESCRIPTOR */ 212311431Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 213311431Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 214311431Smav CTL_CMD_FLAG_OK_ON_STANDBY | 215311431Smav CTL_FLAG_DATA_IN | 216311431Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 217311431Smav CTL_LUN_PAT_NONE, 218311431Smav 10, {0x0b, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 219311431Smav 220311431Smav/* 0C */ 221311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 222311431Smav 223311431Smav/* 0D */ 224311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 225311431Smav 226311431Smav/* 0E */ 227311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 228311431Smav 229311431Smav/* 0F */ 230311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 231311431Smav 232311431Smav/* 10 */ 233311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 234311431Smav 235311431Smav/* 11 */ 236311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 237311431Smav 238311431Smav/* 12 */ 239311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 240311431Smav 241311431Smav/* 13 */ 242311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 243311431Smav 244311431Smav/* 14 */ 245311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 246311431Smav 247311431Smav/* 15 */ 248311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 249311431Smav 250311431Smav/* 16 */ 251311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 252311431Smav 253311431Smav/* 17 */ 254311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 255311431Smav 256311431Smav/* 18 */ 257311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 258311431Smav 259311431Smav/* 19 */ 260311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 261311431Smav 262311431Smav/* 1A */ 263311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 264311431Smav 265311431Smav/* 1B */ 266311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 267311431Smav 268311431Smav/* 1C READ BUFFER(10) ERROR HISTORY */ 269311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 270311431Smav 271311431Smav/* 1d-1f */ 272311431Smav}; 273311431Smav 274268096Smav/* 5E PERSISTENT RESERVE IN */ 275268096Smavconst struct ctl_cmd_entry ctl_cmd_table_5e[32] = 276229997Sken{ 277268096Smav/* 00 READ KEYS */ 278268581Smav{ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 279268096Smav CTL_CMD_FLAG_OK_ON_BOTH | 280288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 281287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 282268096Smav CTL_FLAG_DATA_IN | 283268096Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 284268096Smav CTL_LUN_PAT_NONE, 285268096Smav 10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 286268096Smav 287268096Smav/* 01 READ RESERVATION */ 288268581Smav{ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 289268096Smav CTL_CMD_FLAG_OK_ON_BOTH | 290288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 291287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 292268096Smav CTL_FLAG_DATA_IN | 293268096Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 294268096Smav CTL_LUN_PAT_NONE, 295268096Smav 10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 296268096Smav 297268096Smav/* 02 REPORT CAPABILITIES */ 298268096Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 299268096Smav CTL_CMD_FLAG_OK_ON_BOTH | 300288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 301287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 302268096Smav CTL_FLAG_DATA_IN | 303268096Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 304268096Smav CTL_LUN_PAT_NONE, 305268096Smav 10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 306268096Smav 307268096Smav/* 03 READ FULL STATUS */ 308268363Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 309268363Smav CTL_CMD_FLAG_OK_ON_BOTH | 310288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 311287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 312268363Smav CTL_FLAG_DATA_IN | 313268363Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 314268363Smav CTL_LUN_PAT_NONE, 315268363Smav 10, { 0x03, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 316268096Smav 317268096Smav/* 04-1f */ 318268096Smav}; 319268096Smav 320268096Smav/* 5F PERSISTENT RESERVE OUT */ 321268096Smavconst struct ctl_cmd_entry ctl_cmd_table_5f[32] = 322268096Smav{ 323268096Smav/* 00 REGISTER */ 324268581Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 325268581Smav CTL_CMD_FLAG_OK_ON_BOTH | 326288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 327287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 328268581Smav CTL_FLAG_DATA_OUT | 329268581Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 330268096Smav CTL_LUN_PAT_NONE, 331268096Smav 10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 332268096Smav 333268096Smav/* 01 RESERVE */ 334268581Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 335268581Smav CTL_CMD_FLAG_OK_ON_BOTH | 336288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 337287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 338268581Smav CTL_FLAG_DATA_OUT | 339268581Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 340268096Smav CTL_LUN_PAT_NONE, 341288229Smav 10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 342268096Smav 343268096Smav/* 02 RELEASE */ 344268581Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 345268581Smav CTL_CMD_FLAG_OK_ON_BOTH | 346288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 347287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 348268581Smav CTL_FLAG_DATA_OUT | 349268581Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 350268096Smav CTL_LUN_PAT_NONE, 351288229Smav 10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 352268096Smav 353268096Smav/* 03 CLEAR */ 354268581Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 355268581Smav CTL_CMD_FLAG_OK_ON_BOTH | 356288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 357287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 358268581Smav CTL_FLAG_DATA_OUT | 359268581Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 360268096Smav CTL_LUN_PAT_NONE, 361268361Smav 10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 362268096Smav 363268096Smav/* 04 PREEMPT */ 364268581Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 365268581Smav CTL_CMD_FLAG_OK_ON_BOTH | 366288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 367287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 368268581Smav CTL_FLAG_DATA_OUT | 369268581Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 370268096Smav CTL_LUN_PAT_NONE, 371268361Smav 10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 372268096Smav 373268096Smav/* 05 PREEMPT AND ABORT */ 374274333Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 375274333Smav CTL_CMD_FLAG_OK_ON_BOTH | 376288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 377287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 378274333Smav CTL_FLAG_DATA_OUT | 379274333Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 380274333Smav CTL_LUN_PAT_NONE, 381274333Smav 10, { 0x05, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 382268096Smav 383268096Smav/* 06 REGISTER AND IGNORE EXISTING KEY */ 384268581Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 385268581Smav CTL_CMD_FLAG_OK_ON_BOTH | 386288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 387287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 388268581Smav CTL_FLAG_DATA_OUT | 389268581Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 390268096Smav CTL_LUN_PAT_NONE, 391268361Smav 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 392268096Smav 393268096Smav/* 07 REGISTER AND MOVE */ 394268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 395268096Smav 396268096Smav/* 08-1f */ 397268096Smav}; 398268096Smav 399268767Smav/* 83 EXTENDED COPY */ 400268767Smavconst struct ctl_cmd_entry ctl_cmd_table_83[32] = 401268767Smav{ 402268767Smav/* 00 EXTENDED COPY (LID1) */ 403268767Smav{ctl_extended_copy_lid1, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 404288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 405268767Smav CTL_FLAG_DATA_OUT, 406268767Smav CTL_LUN_PAT_NONE, 407268767Smav 16, { 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 408268767Smav 409268767Smav/* 01 EXTENDED COPY (LID4) */ 410268767Smav{ctl_extended_copy_lid4, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 411288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 412268767Smav CTL_FLAG_DATA_OUT, 413268767Smav CTL_LUN_PAT_NONE, 414268767Smav 16, { 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 415268767Smav 416268767Smav/* 02 */ 417268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 418268767Smav 419268767Smav/* 03 */ 420268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 421268767Smav 422268767Smav/* 04 */ 423268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 424268767Smav 425268767Smav/* 05 */ 426268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 427268767Smav 428268767Smav/* 06 */ 429268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 430268767Smav 431268767Smav/* 07 */ 432268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 433268767Smav 434268767Smav/* 08 */ 435268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 436268767Smav 437268767Smav/* 09 */ 438268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 439268767Smav 440268767Smav/* 0A */ 441268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 442268767Smav 443268767Smav/* 0B */ 444268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 445268767Smav 446268767Smav/* 0C */ 447268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 448268767Smav 449268767Smav/* 0D */ 450268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 451268767Smav 452268767Smav/* 0E */ 453268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 454268767Smav 455268767Smav/* 0F */ 456268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 457268767Smav 458268767Smav/* 10 POPULATE TOKEN */ 459288310Smav{ctl_populate_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 460273730Smav CTL_FLAG_DATA_OUT | 461273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 462269497Smav CTL_LUN_PAT_NONE, 463269497Smav 16, { 0x10, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 464269497Smav 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 465268767Smav 466268767Smav/* 11 WRITE USING TOKEN */ 467288310Smav{ctl_write_using_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 468269497Smav CTL_FLAG_DATA_OUT, 469269497Smav CTL_LUN_PAT_NONE, 470269497Smav 16, { 0x11, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 471269497Smav 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 472268767Smav 473268767Smav/* 12 */ 474268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 475268767Smav 476268767Smav/* 13 */ 477268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 478268767Smav 479268767Smav/* 14 */ 480268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 481268767Smav 482268767Smav/* 15 */ 483268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 484268767Smav 485311435Smav/* 16 SET TAPE STREAM MIRRORING */ 486268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 487268767Smav 488268767Smav/* 17 */ 489268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 490268767Smav 491268767Smav/* 18 */ 492268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 493268767Smav 494268767Smav/* 19 */ 495268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 496268767Smav 497268767Smav/* 1A */ 498268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 499268767Smav 500268767Smav/* 1B */ 501268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 502268767Smav 503268767Smav/* 1C COPY OPERATION ABORT */ 504268767Smav{ctl_copy_operation_abort, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 505288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 506268767Smav CTL_FLAG_DATA_NONE, 507268767Smav CTL_LUN_PAT_NONE, 508268767Smav 16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 509311435Smav 510311435Smav/* 1D COPY OPERATION CLOSE */ 511311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 512311435Smav 513311435Smav/* 1e-1f */ 514268767Smav}; 515268767Smav 516268767Smav/* 84 RECEIVE COPY STATUS */ 517268767Smavconst struct ctl_cmd_entry ctl_cmd_table_84[32] = 518268767Smav{ 519268767Smav/* 00 RECEIVE COPY STATUS (LID1) */ 520268767Smav{ctl_receive_copy_status_lid1, CTL_SERIDX_RD_CAP, 521268767Smav CTL_CMD_FLAG_OK_ON_BOTH | 522288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 523271845Smav CTL_FLAG_DATA_IN | 524271845Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 525268767Smav CTL_LUN_PAT_NONE, 526268767Smav 16, {0x00, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 527268767Smav 528268767Smav/* 01 RECEIVE COPY DATA (LID1) */ 529268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 530268767Smav 531268767Smav/* 02 */ 532268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 533268767Smav 534268767Smav/* 03 RECEIVE COPY OPERATING PARAMETERS */ 535268767Smav{ctl_receive_copy_operating_parameters, CTL_SERIDX_RD_CAP, 536268767Smav CTL_CMD_FLAG_OK_ON_BOTH | 537288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 538287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 539271845Smav CTL_FLAG_DATA_IN | 540271845Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 541268767Smav CTL_LUN_PAT_NONE, 542268767Smav 16, {0x03, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 543268767Smav 544268767Smav/* 04 RECEIVE COPY FAILURE DETAILS (LID1) */ 545268767Smav{ctl_receive_copy_failure_details, CTL_SERIDX_RD_CAP, 546268767Smav CTL_CMD_FLAG_OK_ON_BOTH | 547288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 548271845Smav CTL_FLAG_DATA_IN | 549271845Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 550268767Smav CTL_LUN_PAT_NONE, 551268767Smav 16, {0x04, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 552268767Smav 553268767Smav/* 05 RECEIVE COPY STATUS (LID4) */ 554268767Smav{ctl_receive_copy_status_lid4, CTL_SERIDX_RD_CAP, 555268767Smav CTL_CMD_FLAG_OK_ON_BOTH | 556288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 557273730Smav CTL_FLAG_DATA_IN | 558273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 559268767Smav CTL_LUN_PAT_NONE, 560268767Smav 16, {0x05, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 561268767Smav 562268767Smav/* 06 RECEIVE COPY DATA (LID4)*/ 563268767Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 564268767Smav 565268767Smav/* 07 RECEIVE ROD TOKEN INFORMATION */ 566269497Smav{ctl_receive_rod_token_information, CTL_SERIDX_RD_CAP, 567269497Smav CTL_CMD_FLAG_OK_ON_BOTH | 568288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 569273730Smav CTL_FLAG_DATA_IN | 570273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 571269497Smav CTL_LUN_PAT_NONE, 572269497Smav 16, {0x07, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 573268767Smav 574268767Smav/* 08 REPORT ALL ROD TOKENS */ 575269497Smav{ctl_report_all_rod_tokens, CTL_SERIDX_RD_CAP, 576269497Smav CTL_CMD_FLAG_OK_ON_BOTH | 577288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 578273730Smav CTL_FLAG_DATA_IN | 579273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 580269497Smav CTL_LUN_PAT_NONE, 581269497Smav 16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 582311435Smav 583311435Smav/* 09 */ 584311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 585311435Smav 586311435Smav/* 0A */ 587311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 588311435Smav 589311435Smav/* 0B */ 590311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 591311435Smav 592311435Smav/* 0C */ 593311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 594311435Smav 595311435Smav/* 0D */ 596311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 597311435Smav 598311435Smav/* 0E */ 599311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 600311435Smav 601311435Smav/* 0F */ 602311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 603311435Smav 604311435Smav/* 10 */ 605311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 606311435Smav 607311435Smav/* 11 */ 608311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 609311435Smav 610311435Smav/* 12 */ 611311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 612311435Smav 613311435Smav/* 13 */ 614311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 615311435Smav 616311435Smav/* 14 */ 617311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 618311435Smav 619311435Smav/* 15 */ 620311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 621311435Smav 622311435Smav/* 16 REPORT TAPE STREAM MIRRORING */ 623311435Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 624311435Smav 625311435Smav/* 17-1f */ 626268767Smav}; 627268767Smav 628311431Smav/* 9B READ BUFFER(16) */ 629311431Smavconst struct ctl_cmd_entry ctl_cmd_table_9b[32] = 630311431Smav{ 631311431Smav/* 00 READ BUFFER(16) HDR DATA */ 632311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 633311431Smav 634311431Smav/* 01 READ BUFFER(16) VENDOR */ 635311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 636311431Smav 637311431Smav/* 02 READ BUFFER(16) DATA */ 638311431Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 639311431Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 640311431Smav CTL_CMD_FLAG_OK_ON_STANDBY | 641311431Smav CTL_FLAG_DATA_IN, 642311431Smav CTL_LUN_PAT_NONE, 643311431Smav 16, {0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 644311431Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 645311431Smav 646311431Smav/* 03 READ BUFFER(16) DESCR */ 647311431Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 648311431Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 649311431Smav CTL_CMD_FLAG_OK_ON_STANDBY | 650311431Smav CTL_FLAG_DATA_IN, 651311431Smav CTL_LUN_PAT_NONE, 652311431Smav 16, {0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 653311431Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 654311431Smav 655311431Smav/* 04 READ BUFFER(16) */ 656311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 657311431Smav 658311431Smav/* 05 READ BUFFER(16) */ 659311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 660311431Smav 661311431Smav/* 06 */ 662311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 663311431Smav 664311431Smav/* 07 */ 665311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 666311431Smav 667311431Smav/* 08 */ 668311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 669311431Smav 670311431Smav/* 09 */ 671311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 672311431Smav 673311431Smav/* 0A READ BUFFER(16) ECHO */ 674311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 675311431Smav 676311431Smav/* 0B READ BUFFER(16) ECHO DESCRIPTOR */ 677311431Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 678311431Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 679311431Smav CTL_CMD_FLAG_OK_ON_STANDBY | 680311431Smav CTL_FLAG_DATA_IN, 681311431Smav CTL_LUN_PAT_NONE, 682311431Smav 16, {0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 683311431Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 684311431Smav 685311431Smav/* 0C */ 686311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 687311431Smav 688311431Smav/* 0D */ 689311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 690311431Smav 691311431Smav/* 0E */ 692311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 693311431Smav 694311431Smav/* 0F */ 695311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 696311431Smav 697311431Smav/* 10 */ 698311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 699311431Smav 700311431Smav/* 11 */ 701311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 702311431Smav 703311431Smav/* 12 */ 704311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 705311431Smav 706311431Smav/* 13 */ 707311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 708311431Smav 709311431Smav/* 14 */ 710311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 711311431Smav 712311431Smav/* 15 */ 713311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 714311431Smav 715311431Smav/* 16 */ 716311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 717311431Smav 718311431Smav/* 17 */ 719311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 720311431Smav 721311431Smav/* 18 */ 722311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 723311431Smav 724311431Smav/* 19 */ 725311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 726311431Smav 727311431Smav/* 1A */ 728311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 729311431Smav 730311431Smav/* 1B */ 731311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 732311431Smav 733311431Smav/* 1C READ BUFFER(16) ERROR HISTORY */ 734311431Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 735311431Smav 736311431Smav/* 1d-1f */ 737311431Smav}; 738311431Smav 739311431Smav 740268096Smav/* 9E SERVICE ACTION IN(16) */ 741268096Smavconst struct ctl_cmd_entry ctl_cmd_table_9e[32] = 742268096Smav{ 743268096Smav/* 00 */ 744268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 745268096Smav 746268096Smav/* 01 */ 747268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 748268096Smav 749268096Smav/* 02 */ 750268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 751268096Smav 752268096Smav/* 03 */ 753268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 754268096Smav 755268096Smav/* 04 */ 756268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 757268096Smav 758268096Smav/* 05 */ 759268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 760268096Smav 761268096Smav/* 06 */ 762268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 763268096Smav 764268096Smav/* 07 */ 765268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 766268096Smav 767268096Smav/* 08 */ 768268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 769268096Smav 770268096Smav/* 09 */ 771268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 772268096Smav 773268096Smav/* 0A */ 774268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 775268096Smav 776268096Smav/* 0B */ 777268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 778268096Smav 779268096Smav/* 0C */ 780268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 781268096Smav 782268096Smav/* 0D */ 783268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 784268096Smav 785268096Smav/* 0E */ 786268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 787268096Smav 788268096Smav/* 0F */ 789268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 790268096Smav 791275474Smav/* 10 READ CAPACITY(16) */ 792288310Smav{ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 793268096Smav CTL_FLAG_DATA_IN | 794268096Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 795268096Smav CTL_LUN_PAT_READCAP, 796268096Smav 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 797268096Smav 798275474Smav/* 11 */ 799275474Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 800275474Smav 801275474Smav/* 12 GET LBA STATUS */ 802288310Smav{ctl_get_lba_status, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 803275474Smav CTL_FLAG_DATA_IN | 804275474Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 805275474Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 806275474Smav 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 807275474Smav 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 808275474Smav 809275474Smav/* 13-1f */ 810268096Smav}; 811268096Smav 812268096Smav/* A3 MAINTENANCE IN */ 813268096Smavconst struct ctl_cmd_entry ctl_cmd_table_a3[32] = 814268096Smav{ 815268096Smav/* 00 */ 816268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 817268096Smav 818268096Smav/* 01 */ 819268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 820268096Smav 821268096Smav/* 02 */ 822268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 823268096Smav 824268096Smav/* 03 */ 825268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 826268096Smav 827268096Smav/* 04 */ 828268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 829268096Smav 830268096Smav/* 05 */ 831268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 832268096Smav 833268096Smav/* 06 */ 834268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 835268096Smav 836268096Smav/* 07 */ 837268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 838268096Smav 839268096Smav/* 08 */ 840268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 841268096Smav 842268096Smav/* 09 */ 843268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 844268096Smav 845268096Smav/* 0A REPORT TARGET PORT GROUPS */ 846268581Smav{ctl_report_tagret_port_groups, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 847288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 848287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 849287621Smav CTL_CMD_FLAG_OK_ON_UNAVAIL | 850273730Smav CTL_FLAG_DATA_IN | 851273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 852268096Smav CTL_LUN_PAT_NONE, 853287712Smav 12, {0xea, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 854268096Smav 855268096Smav/* 0B */ 856268096Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 857268096Smav 858268096Smav/* 0C REPORT SUPPORTED_OPCODES */ 859268581Smav{ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 860288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 861287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 862287621Smav CTL_CMD_FLAG_OK_ON_UNAVAIL | 863271845Smav CTL_FLAG_DATA_IN | 864271845Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 865268096Smav CTL_LUN_PAT_NONE, 866275842Smav 12, {0x0c, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 867268096Smav 868268096Smav/* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */ 869268581Smav{ctl_report_supported_tmf, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 870288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 871287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 872287621Smav CTL_CMD_FLAG_OK_ON_UNAVAIL | 873271845Smav CTL_FLAG_DATA_IN | 874271845Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 875268096Smav CTL_LUN_PAT_NONE, 876311434Smav 12, {0x0d, 0x80, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 877268096Smav 878268103Smav/* 0E */ 879268103Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 880268103Smav 881268103Smav/* 0F REPORT TIMESTAMP */ 882268581Smav{ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 883288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 884287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 885287621Smav CTL_CMD_FLAG_OK_ON_UNAVAIL | 886273730Smav CTL_FLAG_DATA_IN | 887273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 888268103Smav CTL_LUN_PAT_NONE, 889268103Smav 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 890268103Smav 891268103Smav/* 10-1f */ 892268096Smav}; 893268096Smav 894268096Smavconst struct ctl_cmd_entry ctl_cmd_table[256] = 895268096Smav{ 896229997Sken/* 00 TEST UNIT READY */ 897229997Sken{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 898229997Sken CTL_FLAG_DATA_NONE | 899229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 900268096Smav CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}}, 901229997Sken 902229997Sken/* 01 REWIND */ 903229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 904229997Sken 905229997Sken/* 02 */ 906229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 907229997Sken 908229997Sken/* 03 REQUEST SENSE */ 909229997Sken{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 910287993Smav CTL_CMD_FLAG_OK_ON_NO_LUN | 911287993Smav CTL_CMD_FLAG_OK_ON_BOTH | 912229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 913229997Sken CTL_CMD_FLAG_NO_SENSE | 914288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 915287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 916287621Smav CTL_CMD_FLAG_OK_ON_UNAVAIL | 917287994Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 918287994Smav CTL_CMD_FLAG_RUN_HERE, 919268096Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}}, 920229997Sken 921229997Sken/* 04 FORMAT UNIT */ 922288310Smav{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_DIRECT | 923229997Sken CTL_FLAG_DATA_OUT, 924268096Smav CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}}, 925229997Sken 926229997Sken/* 05 READ BLOCK LIMITS */ 927229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 928229997Sken 929229997Sken/* 06 */ 930229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 931229997Sken 932229997Sken/* 07 REASSIGN BLOCKS */ 933229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 934229997Sken 935229997Sken/* 08 READ(6) */ 936288310Smav{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 937229997Sken CTL_FLAG_DATA_IN | 938273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 939268096Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 940229997Sken 941229997Sken/* 09 */ 942229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 943229997Sken 944229997Sken/* 0A WRITE(6) */ 945288310Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 946229997Sken CTL_FLAG_DATA_OUT, 947268096Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 948229997Sken 949229997Sken/* 0B SEEK(6) */ 950229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 951229997Sken 952229997Sken/* 0C */ 953229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 954229997Sken 955229997Sken/* 0D */ 956229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 957229997Sken 958229997Sken/* 0E */ 959229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 960229997Sken 961229997Sken/* 0F READ REVERSE(6) */ 962229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 963229997Sken 964229997Sken/* 10 WRITE FILEMARKS(6) */ 965229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 966229997Sken 967229997Sken/* 11 SPACE(6) */ 968229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 969229997Sken 970229997Sken/* 12 INQUIRY */ 971287993Smav{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_NO_LUN | 972287993Smav CTL_CMD_FLAG_OK_ON_BOTH | 973229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 974229997Sken CTL_CMD_FLAG_NO_SENSE | 975288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 976287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 977287621Smav CTL_CMD_FLAG_OK_ON_UNAVAIL | 978229997Sken CTL_FLAG_DATA_IN | 979229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 980268306Smav CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}}, 981229997Sken 982229997Sken/* 13 */ 983229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 984229997Sken 985229997Sken/* 14 RECOVER BUFFERED DATA */ 986229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 987229997Sken 988229997Sken/* 15 MODE SELECT(6) */ 989229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 990288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 991287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 992229997Sken CTL_FLAG_DATA_OUT, 993312578Smav CTL_LUN_PAT_NONE, 6, {0x13, 0, 0, 0xff, 0x07}}, 994229997Sken 995229997Sken/* 16 RESERVE(6) */ 996268581Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 997229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 998288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 999287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 1000229997Sken CTL_FLAG_DATA_OUT, 1001268096Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 1002229997Sken 1003229997Sken/* 17 RELEASE(6) */ 1004268581Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1005229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 1006288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1007287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 1008229997Sken CTL_FLAG_DATA_NONE, 1009268096Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 1010229997Sken 1011229997Sken/* 18 COPY */ 1012229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1013229997Sken 1014229997Sken/* 19 ERASE(6) */ 1015229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1016229997Sken 1017229997Sken/* 1A MODE SENSE(6) */ 1018229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 1019288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1020287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 1021267906Smav CTL_FLAG_DATA_IN | 1022273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1023271930Smav CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0xff, 0xff, 0x07}}, 1024229997Sken 1025229997Sken/* 1B START STOP UNIT */ 1026288310Smav{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_DIRECT | 1027288310Smav CTL_CMD_FLAG_OK_ON_CDROM | 1028288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1029229997Sken CTL_FLAG_DATA_NONE | 1030229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1031288369Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0x0f, 0xf7, 0x07}}, 1032229997Sken 1033229997Sken/* 1C RECEIVE DIAGNOSTIC RESULTS */ 1034229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1035229997Sken 1036229997Sken/* 1D SEND DIAGNOSTIC */ 1037229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1038229997Sken 1039229997Sken/* 1E PREVENT ALLOW MEDIUM REMOVAL */ 1040288310Smav{ctl_prevent_allow, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_DIRECT | 1041288310Smav CTL_CMD_FLAG_OK_ON_CDROM | 1042288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1043288310Smav CTL_FLAG_DATA_NONE, 1044288310Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}}, 1045229997Sken 1046229997Sken/* 1F */ 1047229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1048229997Sken 1049229997Sken/* 20 */ 1050229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1051229997Sken 1052229997Sken/* 21 */ 1053229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1054229997Sken 1055229997Sken/* 22 */ 1056229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1057229997Sken 1058229997Sken/* 23 */ 1059229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1060229997Sken 1061229997Sken/* 24 SET WINDOW */ 1062229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1063229997Sken 1064229997Sken/* 25 READ CAPACITY(10) */ 1065288310Smav{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 1066288310Smav CTL_CMD_FLAG_OK_ON_CDROM | 1067229997Sken CTL_FLAG_DATA_IN | 1068229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1069268096Smav CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 1070229997Sken 1071229997Sken/* 26 */ 1072229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1073229997Sken 1074229997Sken/* 27 */ 1075229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1076229997Sken 1077229997Sken/* 28 READ(10) */ 1078288310Smav{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 1079288310Smav CTL_CMD_FLAG_OK_ON_CDROM | 1080229997Sken CTL_FLAG_DATA_IN | 1081273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1082268096Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1083271942Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1084229997Sken 1085229997Sken/* 29 READ GENERATION */ 1086229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1087229997Sken 1088229997Sken/* 2A WRITE(10) */ 1089288310Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 1090268096Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1091271942Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1092229997Sken 1093229997Sken/* 2B SEEK(10) */ 1094229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1095229997Sken 1096229997Sken/* 2C ERASE(10) */ 1097229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1098229997Sken 1099229997Sken/* 2D READ UPDATED BLOCK */ 1100229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1101229997Sken 1102229997Sken/* 2E WRITE AND VERIFY(10) */ 1103288310Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 1104268096Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1105271959Smav 10, {0x12, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1106229997Sken 1107229997Sken/* 2F VERIFY(10) */ 1108288310Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 1109267537Smav CTL_FLAG_DATA_OUT | 1110273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1111268096Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1112268096Smav 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1113229997Sken 1114229997Sken/* 30 SEARCH DATA HIGH(10) */ 1115229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1116229997Sken 1117229997Sken/* 31 SEARCH DATA EQUAL(10) */ 1118229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1119229997Sken 1120229997Sken/* 32 SEARCH DATA LOW(10) */ 1121229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1122229997Sken 1123229997Sken/* 33 SET LIMITS(10) */ 1124229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1125229997Sken 1126229997Sken/* 34 PRE-FETCH(10) */ 1127229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1128229997Sken 1129229997Sken/* 35 SYNCHRONIZE CACHE(10) */ 1130288310Smav{ctl_sync_cache, CTL_SERIDX_SYNC, CTL_CMD_FLAG_OK_ON_DIRECT | 1131286345Smav CTL_FLAG_DATA_NONE, 1132287760Smav CTL_LUN_PAT_WRITE, 1133288368Smav 10, {0x06, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1134229997Sken 1135229997Sken/* 36 LOCK UNLOCK CACHE(10) */ 1136229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1137229997Sken 1138229997Sken/* 37 READ DEFECT DATA(10) */ 1139288310Smav{ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_DIRECT | 1140273038Smav CTL_FLAG_DATA_IN | 1141273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1142273038Smav CTL_LUN_PAT_NONE, 1143273038Smav 10, {0, 0x1f, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 1144229997Sken 1145229997Sken/* 38 MEDIUM SCAN */ 1146229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1147229997Sken 1148229997Sken/* 39 COMPARE */ 1149229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1150229997Sken 1151229997Sken/* 3A COPY AND VERIFY */ 1152229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1153229997Sken 1154229997Sken/* 3B WRITE BUFFER */ 1155311431Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_3b), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1156311431Smav CTL_LUN_PAT_NONE}, 1157229997Sken 1158229997Sken/* 3C READ BUFFER */ 1159311431Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_3c), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1160311431Smav CTL_LUN_PAT_NONE}, 1161229997Sken 1162229997Sken/* 3D UPDATE BLOCK */ 1163229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1164229997Sken 1165229997Sken/* 3E READ LONG */ 1166229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1167229997Sken 1168229997Sken/* 3F WRITE LONG */ 1169229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1170229997Sken 1171229997Sken/* 40 CHANGE DEFINITION */ 1172229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1173229997Sken 1174229997Sken/* 41 WRITE SAME(10) */ 1175288310Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 1176264274Smav CTL_FLAG_DATA_OUT, 1177268096Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1178269622Smav 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1179229997Sken 1180264274Smav/* 42 READ SUB-CHANNEL / UNMAP */ 1181288310Smav{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_DIRECT | CTL_FLAG_DATA_OUT, 1182268096Smav CTL_LUN_PAT_WRITE, 1183269622Smav 10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 1184229997Sken 1185229997Sken/* 43 READ TOC/PMA/ATIP */ 1186288310Smav{ctl_read_toc, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 1187288310Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV | 1188288310Smav CTL_FLAG_DATA_IN, 1189288310Smav CTL_LUN_PAT_NONE, 1190288310Smav 10, {0x02, 0x01, 0, 0, 0, 0xff, 0xff, 0xff, 0x07}}, 1191229997Sken 1192229997Sken/* 44 REPORT DENSITY SUPPORT */ 1193229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1194229997Sken 1195229997Sken/* 45 PLAY AUDIO(10) */ 1196229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1197229997Sken 1198229997Sken/* 46 GET CONFIGURATION */ 1199288310Smav{ctl_get_config, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_CDROM | 1200288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1201288310Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 1202288310Smav CTL_FLAG_DATA_IN, 1203288310Smav CTL_LUN_PAT_NONE, 1204288310Smav 10, {0x03, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07}}, 1205229997Sken 1206229997Sken/* 47 PLAY AUDIO MSF */ 1207229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1208229997Sken 1209229997Sken/* 48 PLAY AUDIO TRACK INDEX */ 1210229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1211229997Sken 1212229997Sken/* 49 PLAY TRACK RELATIVE(10) */ 1213229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1214229997Sken 1215229997Sken/* 4A GET EVENT STATUS NOTIFICATION */ 1216288310Smav{ctl_get_event_status, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 1217288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1218288310Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 1219288310Smav CTL_FLAG_DATA_IN, 1220288310Smav CTL_LUN_PAT_NONE, 1221288310Smav 10, {0x02, 0x01, 0, 0, 0, 0xff, 0xff, 0xff, 0x07}}, 1222229997Sken 1223229997Sken/* 4B PAUSE/RESUME */ 1224229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1225229997Sken 1226229997Sken/* 4C LOG SELECT */ 1227229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1228229997Sken 1229229997Sken/* 4D LOG SENSE */ 1230288264Smav{ctl_log_sense, CTL_SERIDX_LOG_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 1231288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1232288264Smav CTL_CMD_FLAG_OK_ON_STANDBY | 1233273073Smav CTL_FLAG_DATA_IN | 1234273073Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1235273073Smav CTL_LUN_PAT_NONE, 10, {0, 0xff, 0xff, 0, 0xff, 0xff, 0xff, 0xff, 0x07} }, 1236229997Sken 1237229997Sken/* 4E STOP PLAY/SCAN */ 1238229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1239229997Sken 1240229997Sken/* 4F */ 1241229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1242229997Sken 1243229997Sken/* 50 XDWRITE(10) */ 1244229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1245229997Sken 1246229997Sken/* 51 XPWRITE(10) */ 1247229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1248229997Sken 1249229997Sken/* 52 XDREAD(10) */ 1250229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1251229997Sken 1252229997Sken/* 53 RESERVE TRACK */ 1253229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1254229997Sken 1255229997Sken/* 54 SEND OPC INFORMATION */ 1256229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1257229997Sken 1258229997Sken/* 55 MODE SELECT(10) */ 1259229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 1260288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1261287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 1262229997Sken CTL_FLAG_DATA_OUT, 1263312578Smav CTL_LUN_PAT_NONE, 10, {0x13, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 1264229997Sken 1265229997Sken/* 56 RESERVE(10) */ 1266268581Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1267229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 1268288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1269287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 1270229997Sken CTL_FLAG_DATA_OUT, 1271288229Smav CTL_LUN_PAT_NONE, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07} }, 1272229997Sken 1273229997Sken/* 57 RELEASE(10) */ 1274268581Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1275229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 1276288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1277287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 1278229997Sken CTL_FLAG_DATA_OUT, 1279288229Smav CTL_LUN_PAT_NONE, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 1280229997Sken 1281229997Sken/* 58 REPAIR TRACK */ 1282229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1283229997Sken 1284229997Sken/* 59 READ MASTER CUE */ 1285229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1286229997Sken 1287229997Sken/* 5A MODE SENSE(10) */ 1288229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 1289288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1290287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 1291267906Smav CTL_FLAG_DATA_IN | 1292273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1293271930Smav CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 1294229997Sken 1295229997Sken/* 5B CLOSE TRACK/SESSION */ 1296229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1297229997Sken 1298229997Sken/* 5C READ BUFFER CAPACITY */ 1299229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1300229997Sken 1301229997Sken/* 5D SEND CUE SHEET */ 1302229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1303229997Sken 1304229997Sken/* 5E PERSISTENT RESERVE IN */ 1305268096Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1306229997Sken CTL_LUN_PAT_NONE}, 1307229997Sken 1308229997Sken/* 5F PERSISTENT RESERVE OUT */ 1309268096Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1310229997Sken CTL_LUN_PAT_NONE}, 1311229997Sken 1312229997Sken/* 60 */ 1313229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1314229997Sken 1315229997Sken/* 61 */ 1316229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1317229997Sken 1318229997Sken/* 62 */ 1319229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1320229997Sken 1321229997Sken/* 63 */ 1322229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1323229997Sken 1324229997Sken/* 64 */ 1325229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1326229997Sken 1327229997Sken/* 65 */ 1328229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1329229997Sken 1330229997Sken/* 66 */ 1331229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1332229997Sken 1333229997Sken/* 67 */ 1334229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1335229997Sken 1336229997Sken/* 68 */ 1337229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1338229997Sken 1339229997Sken/* 69 */ 1340229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1341229997Sken 1342229997Sken/* 6A */ 1343229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1344229997Sken 1345229997Sken/* 6B */ 1346229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1347229997Sken 1348229997Sken/* 6C */ 1349229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1350229997Sken 1351229997Sken/* 6D */ 1352229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1353229997Sken 1354229997Sken/* 6E */ 1355229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1356229997Sken 1357229997Sken/* 6F */ 1358229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1359229997Sken 1360229997Sken/* 70 */ 1361229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1362229997Sken 1363229997Sken/* 71 */ 1364229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1365229997Sken 1366229997Sken/* 72 */ 1367229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1368229997Sken 1369229997Sken/* 73 */ 1370229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1371229997Sken 1372229997Sken/* 74 */ 1373229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1374229997Sken 1375229997Sken/* 75 */ 1376229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1377229997Sken 1378229997Sken/* 76 */ 1379229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1380229997Sken 1381229997Sken/* 77 */ 1382229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1383229997Sken 1384229997Sken/* 78 */ 1385229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1386229997Sken 1387229997Sken/* 79 */ 1388229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1389229997Sken 1390229997Sken/* 7A */ 1391229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1392229997Sken 1393229997Sken/* 7B */ 1394229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1395229997Sken 1396229997Sken/* 7C */ 1397229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1398229997Sken 1399229997Sken/* 7D */ 1400229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1401229997Sken 1402229997Sken/* 7E */ 1403229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1404229997Sken 1405229997Sken/* 7F */ 1406229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1407229997Sken 1408229997Sken/* 80 XDWRITE EXTENDED(16) */ 1409229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1410229997Sken 1411229997Sken/* 81 REBUILD(16) */ 1412229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1413229997Sken 1414229997Sken/* 82 REGENERATE(16) */ 1415229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1416229997Sken 1417229997Sken/* 83 EXTENDED COPY */ 1418268767Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1419268767Smav CTL_LUN_PAT_NONE}, 1420229997Sken 1421229997Sken/* 84 RECEIVE COPY RESULTS */ 1422268767Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1423268767Smav CTL_LUN_PAT_NONE}, 1424229997Sken 1425229997Sken/* 85 */ 1426229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1427229997Sken 1428229997Sken/* 86 ACCESS CONTROL IN */ 1429229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1430229997Sken 1431229997Sken/* 87 ACCESS CONTROL OUT */ 1432229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1433229997Sken 1434229997Sken/* 88 READ(16) */ 1435288310Smav{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | CTL_FLAG_DATA_IN | 1436273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1437268096Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1438271942Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1439268096Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1440229997Sken 1441267537Smav/* 89 COMPARE AND WRITE */ 1442288310Smav{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 1443268096Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1444268096Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1445268096Smav 0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}}, 1446229997Sken 1447229997Sken/* 8A WRITE(16) */ 1448288310Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 1449268096Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1450271942Smav 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1451268096Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1452229997Sken 1453229997Sken/* 8B */ 1454229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1455229997Sken 1456229997Sken/* 8C READ ATTRIBUTE */ 1457229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1458229997Sken 1459229997Sken/* 8D WRITE ATTRIBUTE */ 1460229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1461229997Sken 1462229997Sken/* 8E WRITE AND VERIFY(16) */ 1463288310Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 1464268096Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1465271959Smav 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1466268096Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1467229997Sken 1468229997Sken/* 8F VERIFY(16) */ 1469288310Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 1470267537Smav CTL_FLAG_DATA_OUT | 1471273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1472268096Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1473268096Smav 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1474268096Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1475229997Sken 1476229997Sken/* 90 PRE-FETCH(16) */ 1477229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1478229997Sken 1479229997Sken/* 91 SYNCHRONIZE CACHE(16) */ 1480288310Smav{ctl_sync_cache, CTL_SERIDX_SYNC, CTL_CMD_FLAG_OK_ON_DIRECT | 1481286345Smav CTL_FLAG_DATA_NONE, 1482287760Smav CTL_LUN_PAT_WRITE, 1483288368Smav 16, {0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1484268096Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1485229997Sken 1486229997Sken/* 92 LOCK UNLOCK CACHE(16) */ 1487229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1488229997Sken 1489229997Sken/* 93 WRITE SAME(16) */ 1490288310Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 1491264274Smav CTL_FLAG_DATA_OUT, 1492268096Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1493271839Smav 16, {0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1494268096Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1495229997Sken 1496229997Sken/* 94 */ 1497229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1498229997Sken 1499229997Sken/* 95 */ 1500229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1501229997Sken 1502229997Sken/* 96 */ 1503229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1504229997Sken 1505229997Sken/* 97 */ 1506229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1507229997Sken 1508229997Sken/* 98 */ 1509229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1510229997Sken 1511229997Sken/* 99 */ 1512229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1513229997Sken 1514229997Sken/* 9A */ 1515229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1516229997Sken 1517288165Smav/* 9B READ BUFFER(16) */ 1518311431Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_9b), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1519311431Smav CTL_LUN_PAT_NONE}, 1520229997Sken 1521272734Smav/* 9C WRITE ATOMIC (16) */ 1522288310Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 1523272734Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1524272734Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1525272734Smav 0xff, 0xff, 0, 0, 0xff, 0xff, 0, 0x07}}, 1526229997Sken 1527229997Sken/* 9D */ 1528229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1529229997Sken 1530229997Sken/* 9E SERVICE ACTION IN(16) */ 1531268096Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1532268096Smav CTL_LUN_PAT_NONE}, 1533229997Sken 1534229997Sken/* 9F SERVICE ACTION OUT(16) */ 1535229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1536229997Sken 1537229997Sken/* A0 REPORT LUNS */ 1538287994Smav{ctl_report_luns, CTL_SERIDX_INQ, CTL_FLAG_DATA_IN | 1539287994Smav CTL_CMD_FLAG_OK_ON_NO_LUN | 1540287993Smav CTL_CMD_FLAG_OK_ON_BOTH | 1541229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 1542229997Sken CTL_CMD_FLAG_NO_SENSE | 1543288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1544287621Smav CTL_CMD_FLAG_OK_ON_STANDBY | 1545287621Smav CTL_CMD_FLAG_OK_ON_UNAVAIL | 1546287994Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 1547287994Smav CTL_CMD_FLAG_RUN_HERE, 1548268096Smav CTL_LUN_PAT_NONE, 1549268096Smav 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1550229997Sken 1551229997Sken/* A1 BLANK */ 1552229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1553229997Sken 1554229997Sken/* A2 SEND EVENT */ 1555229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1556229997Sken 1557268096Smav/* A3 MAINTENANCE IN */ 1558268096Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1559229997Sken CTL_LUN_PAT_NONE}, 1560229997Sken 1561268096Smav/* A4 MAINTENANCE OUT */ 1562229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1563229997Sken 1564229997Sken/* A5 MOVE MEDIUM */ 1565229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1566229997Sken 1567229997Sken/* A6 EXCHANGE MEDIUM */ 1568229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1569229997Sken 1570229997Sken/* A7 MOVE MEDIUM ATTACHED */ 1571229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1572229997Sken 1573229997Sken/* A8 READ(12) */ 1574288310Smav{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 1575288310Smav CTL_CMD_FLAG_OK_ON_CDROM | 1576288310Smav CTL_FLAG_DATA_IN | 1577288310Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1578268096Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1579271942Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1580229997Sken 1581229997Sken/* A9 PLAY TRACK RELATIVE(12) */ 1582229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1583229997Sken 1584229997Sken/* AA WRITE(12) */ 1585288310Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 1586268096Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1587271942Smav 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1588229997Sken 1589229997Sken/* AB SERVICE ACTION IN(12) */ 1590229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1591229997Sken 1592229997Sken/* AC ERASE(12) */ 1593229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1594229997Sken 1595229997Sken/* AD READ DVD STRUCTURE */ 1596229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1597229997Sken 1598229997Sken/* AE WRITE AND VERIFY(12) */ 1599288310Smav{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 1600268096Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1601271959Smav 12, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1602229997Sken 1603229997Sken/* AF VERIFY(12) */ 1604288310Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 1605267537Smav CTL_FLAG_DATA_OUT | 1606273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1607268096Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1608268096Smav 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1609229997Sken 1610229997Sken/* B0 SEARCH DATA HIGH(12) */ 1611229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1612229997Sken 1613229997Sken/* B1 SEARCH DATA EQUAL(12) */ 1614229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1615229997Sken 1616229997Sken/* B2 SEARCH DATA LOW(12) */ 1617229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1618229997Sken 1619229997Sken/* B3 SET LIMITS(12) */ 1620229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1621229997Sken 1622229997Sken/* B4 READ ELEMENT STATUS ATTACHED */ 1623229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1624229997Sken 1625229997Sken/* B5 REQUEST VOLUME ELEMENT ADDRESS */ 1626229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1627229997Sken 1628229997Sken/* B6 SEND VOLUME TAG */ 1629229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1630229997Sken 1631229997Sken/* B7 READ DEFECT DATA(12) */ 1632288310Smav{ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_DIRECT | 1633273038Smav CTL_FLAG_DATA_IN | 1634273730Smav CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1635273038Smav CTL_LUN_PAT_NONE, 1636273038Smav 12, {0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1637229997Sken 1638229997Sken/* B8 READ ELEMENT STATUS */ 1639229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1640229997Sken 1641229997Sken/* B9 READ CD MSF */ 1642229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1643229997Sken 1644268096Smav/* BA REDUNDANCY GROUP IN */ 1645229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1646229997Sken 1647268096Smav/* BB REDUNDANCY GROUP OUT */ 1648229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1649229997Sken 1650268096Smav/* BC SPARE IN */ 1651229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1652229997Sken 1653288310Smav/* BD SPARE OUT / MECHANISM STATUS */ 1654288310Smav{ctl_mechanism_status, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 1655288348Smav CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1656288310Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 1657288310Smav CTL_FLAG_DATA_IN, 1658288310Smav CTL_LUN_PAT_NONE, 1659288310Smav 12, {0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0, 0x07}}, 1660229997Sken 1661268096Smav/* BE VOLUME SET IN */ 1662229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1663229997Sken 1664268096Smav/* BF VOLUME SET OUT */ 1665229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1666229997Sken 1667287621Smav/* C0 */ 1668287621Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1669229997Sken 1670287621Smav/* C1 */ 1671287621Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1672229997Sken 1673287621Smav/* C2 */ 1674287621Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1675229997Sken 1676287621Smav/* C3 */ 1677287621Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1678229997Sken 1679229997Sken/* C4 */ 1680229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1681229997Sken 1682229997Sken/* C5 */ 1683229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1684229997Sken 1685229997Sken/* C6 */ 1686229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1687229997Sken 1688229997Sken/* C7 */ 1689229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1690229997Sken 1691229997Sken/* C8 */ 1692229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1693229997Sken 1694229997Sken/* C9 */ 1695229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1696229997Sken 1697229997Sken/* CA */ 1698229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1699229997Sken 1700229997Sken/* CB */ 1701229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1702229997Sken 1703229997Sken/* CC */ 1704229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1705229997Sken 1706229997Sken/* CD */ 1707229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1708229997Sken 1709229997Sken/* CE */ 1710229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1711229997Sken 1712229997Sken/* CF */ 1713229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1714229997Sken 1715229997Sken/* D0 */ 1716229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1717229997Sken 1718229997Sken/* D1 */ 1719229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1720229997Sken 1721229997Sken/* D2 */ 1722229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1723229997Sken 1724229997Sken/* D3 */ 1725229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1726229997Sken 1727229997Sken/* D4 */ 1728229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1729229997Sken 1730229997Sken/* D5 */ 1731229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1732229997Sken 1733229997Sken/* D6 */ 1734229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1735229997Sken 1736229997Sken/* D7 */ 1737229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1738229997Sken 1739229997Sken/* D8 */ 1740229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1741229997Sken 1742229997Sken/* D9 */ 1743229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1744229997Sken 1745229997Sken/* DA */ 1746229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1747229997Sken 1748229997Sken/* DB */ 1749229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1750229997Sken 1751229997Sken/* DC */ 1752229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1753229997Sken 1754229997Sken/* DD */ 1755229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1756229997Sken 1757229997Sken/* DE */ 1758229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1759229997Sken 1760229997Sken/* DF */ 1761229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1762229997Sken 1763229997Sken/* E0 */ 1764229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1765229997Sken 1766229997Sken/* E1 */ 1767229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1768229997Sken 1769229997Sken/* E2 */ 1770229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1771229997Sken 1772229997Sken/* E3 */ 1773229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1774229997Sken 1775229997Sken/* E4 */ 1776229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1777229997Sken 1778229997Sken/* E5 */ 1779229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1780229997Sken 1781229997Sken/* E6 */ 1782229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1783229997Sken 1784229997Sken/* E7 */ 1785229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1786229997Sken 1787229997Sken/* E8 */ 1788229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1789229997Sken 1790229997Sken/* E9 */ 1791229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1792229997Sken 1793229997Sken/* EA */ 1794229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1795229997Sken 1796229997Sken/* EB */ 1797229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1798229997Sken 1799229997Sken/* EC */ 1800229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1801229997Sken 1802229997Sken/* ED */ 1803229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1804229997Sken 1805229997Sken/* EE */ 1806229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1807229997Sken 1808229997Sken/* EF */ 1809229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1810229997Sken 1811229997Sken/* F0 */ 1812229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1813229997Sken 1814229997Sken/* F1 */ 1815229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1816229997Sken 1817229997Sken/* F2 */ 1818229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1819229997Sken 1820229997Sken/* F3 */ 1821229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1822229997Sken 1823229997Sken/* F4 */ 1824229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1825229997Sken 1826229997Sken/* F5 */ 1827229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1828229997Sken 1829229997Sken/* F6 */ 1830229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1831229997Sken 1832229997Sken/* F7 */ 1833229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1834229997Sken 1835229997Sken/* F8 */ 1836229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1837229997Sken 1838229997Sken/* F9 */ 1839229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1840229997Sken 1841229997Sken/* FA */ 1842229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1843229997Sken 1844229997Sken/* FB */ 1845229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1846229997Sken 1847229997Sken/* FC */ 1848229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1849229997Sken 1850229997Sken/* FD */ 1851229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1852229997Sken 1853229997Sken/* FE */ 1854229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1855229997Sken 1856229997Sken/* FF */ 1857229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 1858229997Sken 1859229997Sken}; 1860