ctl_cmd_table.c revision 269295
1229997Sken/*- 2229997Sken * Copyright (c) 2003, 2004, 2005, 2009 Silicon Graphics International Corp. 3229997Sken * All rights reserved. 4229997Sken * 5229997Sken * Redistribution and use in source and binary forms, with or without 6229997Sken * modification, are permitted provided that the following conditions 7229997Sken * are met: 8229997Sken * 1. Redistributions of source code must retain the above copyright 9229997Sken * notice, this list of conditions, and the following disclaimer, 10229997Sken * without modification. 11229997Sken * 2. Redistributions in binary form must reproduce at minimum a disclaimer 12229997Sken * substantially similar to the "NO WARRANTY" disclaimer below 13229997Sken * ("Disclaimer") and any redistribution must be conditioned upon 14229997Sken * including a substantially similar Disclaimer requirement for further 15229997Sken * binary redistribution. 16229997Sken * 17229997Sken * NO WARRANTY 18229997Sken * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19229997Sken * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20229997Sken * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 21229997Sken * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22229997Sken * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23229997Sken * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24229997Sken * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25229997Sken * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 26229997Sken * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 27229997Sken * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28229997Sken * POSSIBILITY OF SUCH DAMAGES. 29229997Sken * 30229997Sken * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_cmd_table.c#4 $ 31229997Sken * $FreeBSD: stable/10/sys/cam/ctl/ctl_cmd_table.c 269295 2014-07-30 07:16:08Z mav $ 32229997Sken */ 33229997Sken/* 34229997Sken * CAM Target Layer command table. 35229997Sken * 36229997Sken * Author: Ken Merry <ken@FreeBSD.org>, Kim Le 37229997Sken */ 38229997Sken 39229997Sken#include <sys/cdefs.h> 40229997Sken#include <sys/param.h> 41229997Sken#include <sys/systm.h> 42229997Sken#include <sys/kernel.h> 43229997Sken#include <sys/types.h> 44229997Sken#include <sys/malloc.h> 45229997Sken#include <sys/condvar.h> 46229997Sken#include <sys/queue.h> 47233963Sken#include <sys/sysctl.h> 48229997Sken 49229997Sken#include <cam/scsi/scsi_all.h> 50229997Sken#include <cam/scsi/scsi_da.h> 51229997Sken#include <cam/ctl/ctl_io.h> 52229997Sken#include <cam/ctl/ctl.h> 53229997Sken#include <cam/ctl/ctl_frontend.h> 54229997Sken#include <cam/ctl/ctl_backend.h> 55229997Sken#include <cam/ctl/ctl_frontend_internal.h> 56229997Sken#include <cam/ctl/ctl_ioctl.h> 57229997Sken#include <cam/ctl/ctl_ha.h> 58229997Sken#include <cam/ctl/ctl_private.h> 59229997Sken 60229997Sken/* 61268674Smav * Whenever support for a new command is added, it should be added to these 62268674Smav * tables. 63229997Sken */ 64268674Smav 65268674Smav/* 5E PERSISTENT RESERVE IN */ 66268674Smavconst struct ctl_cmd_entry ctl_cmd_table_5e[32] = 67229997Sken{ 68268674Smav/* 00 READ KEYS */ 69269295Smav{ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 70268674Smav CTL_CMD_FLAG_OK_ON_BOTH | 71268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 72268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 73268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 74268674Smav CTL_FLAG_DATA_IN | 75268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 76268674Smav CTL_LUN_PAT_NONE, 77268674Smav 10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 78268674Smav 79268674Smav/* 01 READ RESERVATION */ 80269295Smav{ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 81268674Smav CTL_CMD_FLAG_OK_ON_BOTH | 82268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 83268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 84268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 85268674Smav CTL_FLAG_DATA_IN | 86268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 87268674Smav CTL_LUN_PAT_NONE, 88268674Smav 10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 89268674Smav 90268674Smav/* 02 REPORT CAPABILITIES */ 91268674Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 92268674Smav CTL_CMD_FLAG_OK_ON_BOTH | 93268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 94268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 95268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 96268674Smav CTL_FLAG_DATA_IN | 97268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 98268674Smav CTL_LUN_PAT_NONE, 99268674Smav 10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 100268674Smav 101268674Smav/* 03 READ FULL STATUS */ 102268694Smav{ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 103268694Smav CTL_CMD_FLAG_OK_ON_BOTH | 104268694Smav CTL_CMD_FLAG_OK_ON_STOPPED | 105268694Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 106268694Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 107268694Smav CTL_FLAG_DATA_IN | 108268694Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 109268694Smav CTL_LUN_PAT_NONE, 110268694Smav 10, { 0x03, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 111268674Smav 112268674Smav/* 04-1f */ 113268674Smav}; 114268674Smav 115268674Smav/* 5F PERSISTENT RESERVE OUT */ 116268674Smavconst struct ctl_cmd_entry ctl_cmd_table_5f[32] = 117268674Smav{ 118268674Smav/* 00 REGISTER */ 119269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 120269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 121269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 122269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 123269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 124269295Smav CTL_FLAG_DATA_OUT | 125269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 126268674Smav CTL_LUN_PAT_NONE, 127268674Smav 10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 128268674Smav 129268674Smav/* 01 RESERVE */ 130269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 131269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 132269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 133269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 134269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 135269295Smav CTL_FLAG_DATA_OUT | 136269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 137268674Smav CTL_LUN_PAT_NONE, 138268674Smav 10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 139268674Smav 140268674Smav/* 02 RELEASE */ 141269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 142269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 143269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 144269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 145269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 146269295Smav CTL_FLAG_DATA_OUT | 147269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 148268674Smav CTL_LUN_PAT_NONE, 149268674Smav 10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 150268674Smav 151268674Smav/* 03 CLEAR */ 152269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 153269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 154269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 155269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 156269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 157269295Smav CTL_FLAG_DATA_OUT | 158269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 159268674Smav CTL_LUN_PAT_NONE, 160268674Smav 10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 161268674Smav 162268674Smav/* 04 PREEMPT */ 163269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 164269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 165269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 166269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 167269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 168269295Smav CTL_FLAG_DATA_OUT | 169269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 170268674Smav CTL_LUN_PAT_NONE, 171268674Smav 10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 172268674Smav 173268674Smav/* 05 PREEMPT AND ABORT */ 174268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 175268674Smav 176268674Smav/* 06 REGISTER AND IGNORE EXISTING KEY */ 177269295Smav{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 178269295Smav CTL_CMD_FLAG_OK_ON_BOTH | 179269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 180269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 181269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 182269295Smav CTL_FLAG_DATA_OUT | 183269295Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 184268674Smav CTL_LUN_PAT_NONE, 185268674Smav 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 186268674Smav 187268674Smav/* 07 REGISTER AND MOVE */ 188268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 189268674Smav 190268674Smav/* 08-1f */ 191268674Smav}; 192268674Smav 193268674Smav/* 9E SERVICE ACTION IN(16) */ 194268674Smavconst struct ctl_cmd_entry ctl_cmd_table_9e[32] = 195268674Smav{ 196268674Smav/* 00 */ 197268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 198268674Smav 199268674Smav/* 01 */ 200268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 201268674Smav 202268674Smav/* 02 */ 203268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 204268674Smav 205268674Smav/* 03 */ 206268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 207268674Smav 208268674Smav/* 04 */ 209268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 210268674Smav 211268674Smav/* 05 */ 212268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 213268674Smav 214268674Smav/* 06 */ 215268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 216268674Smav 217268674Smav/* 07 */ 218268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 219268674Smav 220268674Smav/* 08 */ 221268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 222268674Smav 223268674Smav/* 09 */ 224268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 225268674Smav 226268674Smav/* 0A */ 227268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 228268674Smav 229268674Smav/* 0B */ 230268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 231268674Smav 232268674Smav/* 0C */ 233268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 234268674Smav 235268674Smav/* 0D */ 236268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 237268674Smav 238268674Smav/* 0E */ 239268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 240268674Smav 241268674Smav/* 0F */ 242268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 243268674Smav 244268674Smav/* 10 */ 245268674Smav{ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN | 246268674Smav CTL_CMD_FLAG_OK_ON_STOPPED | 247268674Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 248268674Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 249268674Smav CTL_FLAG_DATA_IN | 250268674Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 251268674Smav CTL_LUN_PAT_READCAP, 252268674Smav 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 253268674Smav 254268674Smav/* 11-1f */ 255268674Smav}; 256268674Smav 257268674Smav/* A3 MAINTENANCE IN */ 258268674Smavconst struct ctl_cmd_entry ctl_cmd_table_a3[32] = 259268674Smav{ 260268674Smav/* 00 */ 261268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 262268674Smav 263268674Smav/* 01 */ 264268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 265268674Smav 266268674Smav/* 02 */ 267268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 268268674Smav 269268674Smav/* 03 */ 270268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 271268674Smav 272268674Smav/* 04 */ 273268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 274268674Smav 275268674Smav/* 05 */ 276268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 277268674Smav 278268674Smav/* 06 */ 279268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 280268674Smav 281268674Smav/* 07 */ 282268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 283268674Smav 284268674Smav/* 08 */ 285268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 286268674Smav 287268674Smav/* 09 */ 288268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 289268674Smav 290268674Smav/* 0A REPORT TARGET PORT GROUPS */ 291269295Smav{ctl_report_tagret_port_groups, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 292269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 293269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 294269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 295269295Smav CTL_FLAG_DATA_IN, 296268674Smav CTL_LUN_PAT_NONE, 297268674Smav 12, {0x0a, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 298268674Smav 299268674Smav/* 0B */ 300268674Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 301268674Smav 302268674Smav/* 0C REPORT SUPPORTED_OPCODES */ 303269295Smav{ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 304269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 305269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 306269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 307269295Smav CTL_FLAG_DATA_IN, 308268674Smav CTL_LUN_PAT_NONE, 309268674Smav 12, {0x0c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 310268674Smav 311268674Smav/* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */ 312269295Smav{ctl_report_supported_tmf, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 313269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 314269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 315269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 316269295Smav CTL_FLAG_DATA_IN, 317268674Smav CTL_LUN_PAT_NONE, 318268674Smav 12, {0x0d, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 319268674Smav 320268675Smav/* 0E */ 321268675Smav{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 322268675Smav 323268675Smav/* 0F REPORT TIMESTAMP */ 324269295Smav{ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 325269295Smav CTL_CMD_FLAG_OK_ON_STOPPED | 326269295Smav CTL_CMD_FLAG_OK_ON_INOPERABLE | 327269295Smav CTL_CMD_FLAG_OK_ON_SECONDARY | 328269295Smav CTL_FLAG_DATA_IN, 329268675Smav CTL_LUN_PAT_NONE, 330268675Smav 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 331268675Smav 332268675Smav/* 10-1f */ 333268674Smav}; 334268674Smav 335268674Smavconst struct ctl_cmd_entry ctl_cmd_table[256] = 336268674Smav{ 337229997Sken/* 00 TEST UNIT READY */ 338229997Sken{ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 339229997Sken CTL_FLAG_DATA_NONE | 340229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 341268674Smav CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}}, 342229997Sken 343229997Sken/* 01 REWIND */ 344229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 345229997Sken 346229997Sken/* 02 */ 347229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 348229997Sken 349229997Sken/* 03 REQUEST SENSE */ 350229997Sken{ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 351229997Sken CTL_CMD_FLAG_OK_ON_ALL_LUNS | 352229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 353229997Sken CTL_CMD_FLAG_NO_SENSE | 354229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 355229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 356229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 357229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 358229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 359268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}}, 360229997Sken 361229997Sken/* 04 FORMAT UNIT */ 362229997Sken{ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_SLUN | 363229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 364229997Sken CTL_FLAG_DATA_OUT, 365268674Smav CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}}, 366229997Sken 367229997Sken/* 05 READ BLOCK LIMITS */ 368229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 369229997Sken 370229997Sken/* 06 */ 371229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 372229997Sken 373229997Sken/* 07 REASSIGN BLOCKS */ 374229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 375229997Sken 376229997Sken/* 08 READ(6) */ 377229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 378229997Sken CTL_FLAG_DATA_IN | 379229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 380268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 381229997Sken 382229997Sken/* 09 */ 383229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 384229997Sken 385229997Sken/* 0A WRITE(6) */ 386229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 387229997Sken CTL_FLAG_DATA_OUT, 388268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 389229997Sken 390229997Sken/* 0B SEEK(6) */ 391229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 392229997Sken 393229997Sken/* 0C */ 394229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 395229997Sken 396229997Sken/* 0D */ 397229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 398229997Sken 399229997Sken/* 0E */ 400229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 401229997Sken 402229997Sken/* 0F READ REVERSE(6) */ 403229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 404229997Sken 405229997Sken/* 10 WRITE FILEMARKS(6) */ 406229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 407229997Sken 408229997Sken/* 11 SPACE(6) */ 409229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 410229997Sken 411229997Sken/* 12 INQUIRY */ 412229997Sken{ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 413229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 414229997Sken CTL_CMD_FLAG_NO_SENSE | 415229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 416229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 417229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 418229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 419229997Sken CTL_FLAG_DATA_IN | 420229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 421268674Smav CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}}, 422229997Sken 423229997Sken/* 13 */ 424229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 425229997Sken 426229997Sken/* 14 RECOVER BUFFERED DATA */ 427229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 428229997Sken 429229997Sken/* 15 MODE SELECT(6) */ 430229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 431229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 432229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 433229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 434229997Sken CTL_FLAG_DATA_OUT, 435268674Smav CTL_LUN_PAT_NONE, 6, {0x11, 0, 0, 0xff, 0x07}}, 436229997Sken 437229997Sken/* 16 RESERVE(6) */ 438269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 439229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 440229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 441229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 442229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 443229997Sken CTL_FLAG_DATA_OUT, 444268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 445229997Sken 446229997Sken/* 17 RELEASE(6) */ 447269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 448229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 449229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 450229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 451229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 452229997Sken CTL_FLAG_DATA_NONE, 453268674Smav CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 454229997Sken 455229997Sken/* 18 COPY */ 456229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 457229997Sken 458229997Sken/* 19 ERASE(6) */ 459229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 460229997Sken 461229997Sken/* 1A MODE SENSE(6) */ 462229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 463229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 464229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 465229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 466268551Smav CTL_FLAG_DATA_IN | 467268551Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 468268674Smav CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0, 0xff, 0x07}}, 469229997Sken 470229997Sken/* 1B START STOP UNIT */ 471229997Sken{ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 472229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 473229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 474229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 475229997Sken CTL_FLAG_DATA_NONE | 476229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 477268674Smav CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}}, 478229997Sken 479229997Sken/* 1C RECEIVE DIAGNOSTIC RESULTS */ 480229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 481229997Sken 482229997Sken/* 1D SEND DIAGNOSTIC */ 483229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 484229997Sken 485229997Sken/* 1E PREVENT ALLOW MEDIUM REMOVAL */ 486229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 487229997Sken 488229997Sken/* 1F */ 489229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 490229997Sken 491229997Sken/* 20 */ 492229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 493229997Sken 494229997Sken/* 21 */ 495229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 496229997Sken 497229997Sken/* 22 */ 498229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 499229997Sken 500229997Sken/* 23 */ 501229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 502229997Sken 503229997Sken/* 24 SET WINDOW */ 504229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 505229997Sken 506229997Sken/* 25 READ CAPACITY(10) */ 507229997Sken{ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_SLUN| 508229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 509229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 510229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 511229997Sken CTL_FLAG_DATA_IN | 512229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 513268674Smav CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 514229997Sken 515229997Sken/* 26 */ 516229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 517229997Sken 518229997Sken/* 27 */ 519229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 520229997Sken 521229997Sken/* 28 READ(10) */ 522229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 523229997Sken CTL_FLAG_DATA_IN | 524229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 525268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 526268674Smav 10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 527229997Sken 528229997Sken/* 29 READ GENERATION */ 529229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 530229997Sken 531229997Sken/* 2A WRITE(10) */ 532229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 533268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 534268674Smav 10, {0x18, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 535229997Sken 536229997Sken/* 2B SEEK(10) */ 537229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 538229997Sken 539229997Sken/* 2C ERASE(10) */ 540229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 541229997Sken 542229997Sken/* 2D READ UPDATED BLOCK */ 543229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 544229997Sken 545229997Sken/* 2E WRITE AND VERIFY(10) */ 546229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 547268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 548268674Smav 10, {0x10, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 549229997Sken 550229997Sken/* 2F VERIFY(10) */ 551268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 552268151Smav CTL_FLAG_DATA_OUT | 553268151Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 554268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 555268674Smav 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 556229997Sken 557229997Sken/* 30 SEARCH DATA HIGH(10) */ 558229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 559229997Sken 560229997Sken/* 31 SEARCH DATA EQUAL(10) */ 561229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 562229997Sken 563229997Sken/* 32 SEARCH DATA LOW(10) */ 564229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 565229997Sken 566229997Sken/* 33 SET LIMITS(10) */ 567229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 568229997Sken 569229997Sken/* 34 PRE-FETCH(10) */ 570229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 571229997Sken 572229997Sken/* 35 SYNCHRONIZE CACHE(10) */ 573229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 574229997Sken CTL_FLAG_DATA_NONE, 575268674Smav CTL_LUN_PAT_NONE, 576268674Smav 10, {0, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 577229997Sken 578229997Sken/* 36 LOCK UNLOCK CACHE(10) */ 579229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 580229997Sken 581229997Sken/* 37 READ DEFECT DATA(10) */ 582229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 583229997Sken 584229997Sken/* 38 MEDIUM SCAN */ 585229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 586229997Sken 587229997Sken/* 39 COMPARE */ 588229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 589229997Sken 590229997Sken/* 3A COPY AND VERIFY */ 591229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 592229997Sken 593229997Sken/* 3B WRITE BUFFER */ 594268550Smav{ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 595268550Smav CTL_FLAG_DATA_OUT, 596268674Smav CTL_LUN_PAT_NONE, 597268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 598229997Sken 599229997Sken/* 3C READ BUFFER */ 600268550Smav{ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 601268550Smav CTL_FLAG_DATA_IN | 602268550Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 603268674Smav CTL_LUN_PAT_NONE, 604268674Smav 10, {0x1f, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 605229997Sken 606229997Sken/* 3D UPDATE BLOCK */ 607229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 608229997Sken 609229997Sken/* 3E READ LONG */ 610229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 611229997Sken 612229997Sken/* 3F WRITE LONG */ 613229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 614229997Sken 615229997Sken/* 40 CHANGE DEFINITION */ 616229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 617229997Sken 618229997Sken/* 41 WRITE SAME(10) */ 619265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 620265634Smav CTL_FLAG_DATA_OUT, 621268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 622268674Smav 10, {0x0a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 623229997Sken 624265634Smav/* 42 READ SUB-CHANNEL / UNMAP */ 625265634Smav{ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_OUT, 626268674Smav CTL_LUN_PAT_WRITE, 627268674Smav 10, {0, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 628229997Sken 629229997Sken/* 43 READ TOC/PMA/ATIP */ 630229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 631229997Sken 632229997Sken/* 44 REPORT DENSITY SUPPORT */ 633229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 634229997Sken 635229997Sken/* 45 PLAY AUDIO(10) */ 636229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 637229997Sken 638229997Sken/* 46 GET CONFIGURATION */ 639229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 640229997Sken 641229997Sken/* 47 PLAY AUDIO MSF */ 642229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 643229997Sken 644229997Sken/* 48 PLAY AUDIO TRACK INDEX */ 645229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 646229997Sken 647229997Sken/* 49 PLAY TRACK RELATIVE(10) */ 648229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 649229997Sken 650229997Sken/* 4A GET EVENT STATUS NOTIFICATION */ 651229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 652229997Sken 653229997Sken/* 4B PAUSE/RESUME */ 654229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 655229997Sken 656229997Sken/* 4C LOG SELECT */ 657229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 658229997Sken 659229997Sken/* 4D LOG SENSE */ 660229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 661229997Sken 662229997Sken/* 4E STOP PLAY/SCAN */ 663229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 664229997Sken 665229997Sken/* 4F */ 666229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 667229997Sken 668229997Sken/* 50 XDWRITE(10) */ 669229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 670229997Sken 671229997Sken/* 51 XPWRITE(10) */ 672229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 673229997Sken 674229997Sken/* 52 XDREAD(10) */ 675229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 676229997Sken 677229997Sken/* 53 RESERVE TRACK */ 678229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 679229997Sken 680229997Sken/* 54 SEND OPC INFORMATION */ 681229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 682229997Sken 683229997Sken/* 55 MODE SELECT(10) */ 684229997Sken{ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 685229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 686229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 687229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 688229997Sken CTL_FLAG_DATA_OUT, 689268674Smav CTL_LUN_PAT_NONE, 10, {0x11, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 690229997Sken 691229997Sken/* 56 RESERVE(10) */ 692269295Smav{ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 693229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 694229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 695229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 696229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 697229997Sken CTL_FLAG_DATA_OUT, 698268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 699229997Sken 700229997Sken/* 57 RELEASE(10) */ 701269295Smav{ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 702229997Sken CTL_CMD_FLAG_OK_ON_BOTH | 703229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 704229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 705229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 706229997Sken CTL_FLAG_DATA_OUT, 707268674Smav CTL_LUN_PAT_NONE, 10, {0x02, 0, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 708229997Sken 709229997Sken/* 58 REPAIR TRACK */ 710229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 711229997Sken 712229997Sken/* 59 READ MASTER CUE */ 713229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 714229997Sken 715229997Sken/* 5A MODE SENSE(10) */ 716229997Sken{ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 717229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 718229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 719229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 720268551Smav CTL_FLAG_DATA_IN | 721268551Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 722268674Smav CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 723229997Sken 724229997Sken/* 5B CLOSE TRACK/SESSION */ 725229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 726229997Sken 727229997Sken/* 5C READ BUFFER CAPACITY */ 728229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 729229997Sken 730229997Sken/* 5D SEND CUE SHEET */ 731229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 732229997Sken 733229997Sken/* 5E PERSISTENT RESERVE IN */ 734268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 735229997Sken CTL_LUN_PAT_NONE}, 736229997Sken 737229997Sken/* 5F PERSISTENT RESERVE OUT */ 738268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 739229997Sken CTL_LUN_PAT_NONE}, 740229997Sken 741229997Sken/* 60 */ 742229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 743229997Sken 744229997Sken/* 61 */ 745229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 746229997Sken 747229997Sken/* 62 */ 748229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 749229997Sken 750229997Sken/* 63 */ 751229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 752229997Sken 753229997Sken/* 64 */ 754229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 755229997Sken 756229997Sken/* 65 */ 757229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 758229997Sken 759229997Sken/* 66 */ 760229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 761229997Sken 762229997Sken/* 67 */ 763229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 764229997Sken 765229997Sken/* 68 */ 766229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 767229997Sken 768229997Sken/* 69 */ 769229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 770229997Sken 771229997Sken/* 6A */ 772229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 773229997Sken 774229997Sken/* 6B */ 775229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 776229997Sken 777229997Sken/* 6C */ 778229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 779229997Sken 780229997Sken/* 6D */ 781229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 782229997Sken 783229997Sken/* 6E */ 784229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 785229997Sken 786229997Sken/* 6F */ 787229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 788229997Sken 789229997Sken/* 70 */ 790229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 791229997Sken 792229997Sken/* 71 */ 793229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 794229997Sken 795229997Sken/* 72 */ 796229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 797229997Sken 798229997Sken/* 73 */ 799229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 800229997Sken 801229997Sken/* 74 */ 802229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 803229997Sken 804229997Sken/* 75 */ 805229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 806229997Sken 807229997Sken/* 76 */ 808229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 809229997Sken 810229997Sken/* 77 */ 811229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 812229997Sken 813229997Sken/* 78 */ 814229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 815229997Sken 816229997Sken/* 79 */ 817229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 818229997Sken 819229997Sken/* 7A */ 820229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 821229997Sken 822229997Sken/* 7B */ 823229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 824229997Sken 825229997Sken/* 7C */ 826229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 827229997Sken 828229997Sken/* 7D */ 829229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 830229997Sken 831229997Sken/* 7E */ 832229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 833229997Sken 834229997Sken/* 7F */ 835229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 836229997Sken 837229997Sken/* 80 XDWRITE EXTENDED(16) */ 838229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 839229997Sken 840229997Sken/* 81 REBUILD(16) */ 841229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 842229997Sken 843229997Sken/* 82 REGENERATE(16) */ 844229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 845229997Sken 846229997Sken/* 83 EXTENDED COPY */ 847229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 848229997Sken 849229997Sken/* 84 RECEIVE COPY RESULTS */ 850229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 851229997Sken 852229997Sken/* 85 */ 853229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 854229997Sken 855229997Sken/* 86 ACCESS CONTROL IN */ 856229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 857229997Sken 858229997Sken/* 87 ACCESS CONTROL OUT */ 859229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 860229997Sken 861229997Sken/* 88 READ(16) */ 862229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 863229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 864268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 865268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 866268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 867229997Sken 868268151Smav/* 89 COMPARE AND WRITE */ 869268151Smav{ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 870268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 871268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 872268674Smav 0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}}, 873229997Sken 874229997Sken/* 8A WRITE(16) */ 875229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 876268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 877268674Smav 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 878268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 879229997Sken 880229997Sken/* 8B */ 881229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 882229997Sken 883229997Sken/* 8C READ ATTRIBUTE */ 884229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 885229997Sken 886229997Sken/* 8D WRITE ATTRIBUTE */ 887229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 888229997Sken 889229997Sken/* 8E WRITE AND VERIFY(16) */ 890229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 891268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 892268674Smav 16, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 893268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 894229997Sken 895229997Sken/* 8F VERIFY(16) */ 896268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 897268151Smav CTL_FLAG_DATA_OUT | 898268151Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 899268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 900268674Smav 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 901268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 902229997Sken 903229997Sken/* 90 PRE-FETCH(16) */ 904229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 905229997Sken 906229997Sken/* 91 SYNCHRONIZE CACHE(16) */ 907229997Sken{ctl_sync_cache, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_SLUN | 908229997Sken CTL_FLAG_DATA_NONE, 909268674Smav CTL_LUN_PAT_NONE, 910268674Smav 16, {0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 911268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 912229997Sken 913229997Sken/* 92 LOCK UNLOCK CACHE(16) */ 914229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 915229997Sken 916229997Sken/* 93 WRITE SAME(16) */ 917265634Smav{ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN | 918265634Smav CTL_FLAG_DATA_OUT, 919268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 920268674Smav 16, {0x0a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 921268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 922229997Sken 923229997Sken/* 94 */ 924229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 925229997Sken 926229997Sken/* 95 */ 927229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 928229997Sken 929229997Sken/* 96 */ 930229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 931229997Sken 932229997Sken/* 97 */ 933229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 934229997Sken 935229997Sken/* 98 */ 936229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 937229997Sken 938229997Sken/* 99 */ 939229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 940229997Sken 941229997Sken/* 9A */ 942229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 943229997Sken 944229997Sken/* 9B */ 945229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 946229997Sken 947229997Sken/* 9C */ 948229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 949229997Sken 950229997Sken/* 9D */ 951229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 952229997Sken 953229997Sken/* 9E SERVICE ACTION IN(16) */ 954268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 955268674Smav CTL_LUN_PAT_NONE}, 956229997Sken 957229997Sken/* 9F SERVICE ACTION OUT(16) */ 958229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 959229997Sken 960229997Sken/* A0 REPORT LUNS */ 961229997Sken{ctl_report_luns, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_ALL_LUNS | 962229997Sken CTL_CMD_FLAG_ALLOW_ON_RESV | 963229997Sken CTL_CMD_FLAG_NO_SENSE | 964229997Sken CTL_CMD_FLAG_OK_ON_STOPPED | 965229997Sken CTL_CMD_FLAG_OK_ON_INOPERABLE | 966229997Sken CTL_CMD_FLAG_OK_ON_OFFLINE | 967229997Sken CTL_CMD_FLAG_OK_ON_SECONDARY | 968229997Sken CTL_FLAG_DATA_IN | 969229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 970268674Smav CTL_LUN_PAT_NONE, 971268674Smav 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 972229997Sken 973229997Sken/* A1 BLANK */ 974229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 975229997Sken 976229997Sken/* A2 SEND EVENT */ 977229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 978229997Sken 979268674Smav/* A3 MAINTENANCE IN */ 980268674Smav{__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 981229997Sken CTL_LUN_PAT_NONE}, 982229997Sken 983268674Smav/* A4 MAINTENANCE OUT */ 984229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 985229997Sken 986229997Sken/* A5 MOVE MEDIUM */ 987229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 988229997Sken 989229997Sken/* A6 EXCHANGE MEDIUM */ 990229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 991229997Sken 992229997Sken/* A7 MOVE MEDIUM ATTACHED */ 993229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 994229997Sken 995229997Sken/* A8 READ(12) */ 996229997Sken{ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | CTL_FLAG_DATA_IN | 997229997Sken CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 998268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 999268674Smav 12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1000229997Sken 1001229997Sken/* A9 PLAY TRACK RELATIVE(12) */ 1002229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1003229997Sken 1004229997Sken/* AA WRITE(12) */ 1005229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1006268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1007268674Smav 12, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1008229997Sken 1009229997Sken/* AB SERVICE ACTION IN(12) */ 1010229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1011229997Sken 1012229997Sken/* AC ERASE(12) */ 1013229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1014229997Sken 1015229997Sken/* AD READ DVD STRUCTURE */ 1016229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1017229997Sken 1018229997Sken/* AE WRITE AND VERIFY(12) */ 1019229997Sken{ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_SLUN| CTL_FLAG_DATA_OUT, 1020268674Smav CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1021268674Smav 12, {0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1022229997Sken 1023229997Sken/* AF VERIFY(12) */ 1024268151Smav{ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_SLUN | 1025268151Smav CTL_FLAG_DATA_OUT | 1026268151Smav CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1027268674Smav CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1028268674Smav 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1029229997Sken 1030229997Sken/* B0 SEARCH DATA HIGH(12) */ 1031229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1032229997Sken 1033229997Sken/* B1 SEARCH DATA EQUAL(12) */ 1034229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1035229997Sken 1036229997Sken/* B2 SEARCH DATA LOW(12) */ 1037229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1038229997Sken 1039229997Sken/* B3 SET LIMITS(12) */ 1040229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1041229997Sken 1042229997Sken/* B4 READ ELEMENT STATUS ATTACHED */ 1043229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1044229997Sken 1045229997Sken/* B5 REQUEST VOLUME ELEMENT ADDRESS */ 1046229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1047229997Sken 1048229997Sken/* B6 SEND VOLUME TAG */ 1049229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1050229997Sken 1051229997Sken/* B7 READ DEFECT DATA(12) */ 1052229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1053229997Sken 1054229997Sken/* B8 READ ELEMENT STATUS */ 1055229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1056229997Sken 1057229997Sken/* B9 READ CD MSF */ 1058229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1059229997Sken 1060268674Smav/* BA REDUNDANCY GROUP IN */ 1061229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1062229997Sken 1063268674Smav/* BB REDUNDANCY GROUP OUT */ 1064229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1065229997Sken 1066268674Smav/* BC SPARE IN */ 1067229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1068229997Sken 1069268674Smav/* BD SPARE OUT */ 1070229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1071229997Sken 1072268674Smav/* BE VOLUME SET IN */ 1073229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1074229997Sken 1075268674Smav/* BF VOLUME SET OUT */ 1076229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1077229997Sken 1078229997Sken/* C0 - ISC_SEND_MSG_SHORT */ 1079229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1080229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_NONE, 1081268674Smav CTL_LUN_PAT_NONE, 1082268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1083268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1084229997Sken 1085229997Sken/* C1 - ISC_SEND_MSG */ 1086229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1087229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1088268674Smav CTL_LUN_PAT_NONE, 1089268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1090268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1091229997Sken 1092229997Sken/* C2 - ISC_WRITE */ 1093229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1094229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_OUT, 1095268674Smav CTL_LUN_PAT_NONE, 1096268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1097268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1098229997Sken 1099229997Sken/* C3 - ISC_READ */ 1100229997Sken//{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE}, 1101229997Sken{ctl_isc, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_PROC | CTL_FLAG_DATA_IN, 1102268674Smav CTL_LUN_PAT_NONE, 1103268674Smav 16, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1104268674Smav 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}, 1105229997Sken 1106229997Sken/* C4 */ 1107229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1108229997Sken 1109229997Sken/* C5 */ 1110229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1111229997Sken 1112229997Sken/* C6 */ 1113229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1114229997Sken 1115229997Sken/* C7 */ 1116229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1117229997Sken 1118229997Sken/* C8 */ 1119229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1120229997Sken 1121229997Sken/* C9 */ 1122229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1123229997Sken 1124229997Sken/* CA */ 1125229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1126229997Sken 1127229997Sken/* CB */ 1128229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1129229997Sken 1130229997Sken/* CC */ 1131229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1132229997Sken 1133229997Sken/* CD */ 1134229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1135229997Sken 1136229997Sken/* CE */ 1137229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1138229997Sken 1139229997Sken/* CF */ 1140229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1141229997Sken 1142229997Sken/* D0 */ 1143229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1144229997Sken 1145229997Sken/* D1 */ 1146229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1147229997Sken 1148229997Sken/* D2 */ 1149229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1150229997Sken 1151229997Sken/* D3 */ 1152229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1153229997Sken 1154229997Sken/* D4 */ 1155229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1156229997Sken 1157229997Sken/* D5 */ 1158229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1159229997Sken 1160229997Sken/* D6 */ 1161229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1162229997Sken 1163229997Sken/* D7 */ 1164229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1165229997Sken 1166229997Sken/* D8 */ 1167229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1168229997Sken 1169229997Sken/* D9 */ 1170229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1171229997Sken 1172229997Sken/* DA */ 1173229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1174229997Sken 1175229997Sken/* DB */ 1176229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1177229997Sken 1178229997Sken/* DC */ 1179229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1180229997Sken 1181229997Sken/* DD */ 1182229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1183229997Sken 1184229997Sken/* DE */ 1185229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1186229997Sken 1187229997Sken/* DF */ 1188229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1189229997Sken 1190229997Sken/* E0 */ 1191229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1192229997Sken 1193229997Sken/* E1 */ 1194229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1195229997Sken 1196229997Sken/* E2 */ 1197229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1198229997Sken 1199229997Sken/* E3 */ 1200229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1201229997Sken 1202229997Sken/* E4 */ 1203229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1204229997Sken 1205229997Sken/* E5 */ 1206229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1207229997Sken 1208229997Sken/* E6 */ 1209229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1210229997Sken 1211229997Sken/* E7 */ 1212229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1213229997Sken 1214229997Sken/* E8 */ 1215229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1216229997Sken 1217229997Sken/* E9 */ 1218229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1219229997Sken 1220229997Sken/* EA */ 1221229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1222229997Sken 1223229997Sken/* EB */ 1224229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1225229997Sken 1226229997Sken/* EC */ 1227229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1228229997Sken 1229229997Sken/* ED */ 1230229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1231229997Sken 1232229997Sken/* EE */ 1233229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1234229997Sken 1235229997Sken/* EF */ 1236229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1237229997Sken 1238229997Sken/* F0 */ 1239229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1240229997Sken 1241229997Sken/* F1 */ 1242229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1243229997Sken 1244229997Sken/* F2 */ 1245229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1246229997Sken 1247229997Sken/* F3 */ 1248229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1249229997Sken 1250229997Sken/* F4 */ 1251229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1252229997Sken 1253229997Sken/* F5 */ 1254229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1255229997Sken 1256229997Sken/* F6 */ 1257229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1258229997Sken 1259229997Sken/* F7 */ 1260229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1261229997Sken 1262229997Sken/* F8 */ 1263229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1264229997Sken 1265229997Sken/* F9 */ 1266229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1267229997Sken 1268229997Sken/* FA */ 1269229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1270229997Sken 1271229997Sken/* FB */ 1272229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1273229997Sken 1274229997Sken/* FC */ 1275229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1276229997Sken 1277229997Sken/* FD */ 1278229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1279229997Sken 1280229997Sken/* FE */ 1281229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1282229997Sken 1283229997Sken/* FF */ 1284229997Sken{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 1285229997Sken 1286229997Sken}; 1287