1130f4520SKenneth D. Merry /*- 24d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 3bec9534dSPedro F. Giffuni * 4130f4520SKenneth D. Merry * Copyright (c) 2003, 2004, 2005, 2009 Silicon Graphics International Corp. 5648dfc1aSAlexander Motin * Copyright (c) 2014-2015 Alexander Motin <mav@FreeBSD.org> 6130f4520SKenneth D. Merry * All rights reserved. 7130f4520SKenneth D. Merry * 8130f4520SKenneth D. Merry * Redistribution and use in source and binary forms, with or without 9130f4520SKenneth D. Merry * modification, are permitted provided that the following conditions 10130f4520SKenneth D. Merry * are met: 11130f4520SKenneth D. Merry * 1. Redistributions of source code must retain the above copyright 12130f4520SKenneth D. Merry * notice, this list of conditions, and the following disclaimer, 13130f4520SKenneth D. Merry * without modification. 14130f4520SKenneth D. Merry * 2. Redistributions in binary form must reproduce at minimum a disclaimer 15130f4520SKenneth D. Merry * substantially similar to the "NO WARRANTY" disclaimer below 16130f4520SKenneth D. Merry * ("Disclaimer") and any redistribution must be conditioned upon 17130f4520SKenneth D. Merry * including a substantially similar Disclaimer requirement for further 18130f4520SKenneth D. Merry * binary redistribution. 19130f4520SKenneth D. Merry * 20130f4520SKenneth D. Merry * NO WARRANTY 21130f4520SKenneth D. Merry * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22130f4520SKenneth D. Merry * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23130f4520SKenneth D. Merry * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 24130f4520SKenneth D. Merry * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25130f4520SKenneth D. Merry * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26130f4520SKenneth D. Merry * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27130f4520SKenneth D. Merry * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28130f4520SKenneth D. Merry * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 29130f4520SKenneth D. Merry * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 30130f4520SKenneth D. Merry * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31130f4520SKenneth D. Merry * POSSIBILITY OF SUCH DAMAGES. 32130f4520SKenneth D. Merry * 33130f4520SKenneth D. Merry * $Id: //depot/users/kenm/FreeBSD-test2/sys/cam/ctl/ctl_cmd_table.c#4 $ 34130f4520SKenneth D. Merry */ 35130f4520SKenneth D. Merry /* 36130f4520SKenneth D. Merry * CAM Target Layer command table. 37130f4520SKenneth D. Merry * 38130f4520SKenneth D. Merry * Author: Ken Merry <ken@FreeBSD.org>, Kim Le 39130f4520SKenneth D. Merry */ 40130f4520SKenneth D. Merry 41130f4520SKenneth D. Merry #include <sys/param.h> 42130f4520SKenneth D. Merry #include <sys/systm.h> 43130f4520SKenneth D. Merry #include <sys/kernel.h> 44130f4520SKenneth D. Merry #include <sys/types.h> 45130f4520SKenneth D. Merry #include <sys/malloc.h> 46130f4520SKenneth D. Merry #include <sys/condvar.h> 47130f4520SKenneth D. Merry #include <sys/queue.h> 48bf8f8f34SKenneth D. Merry #include <sys/sysctl.h> 49130f4520SKenneth D. Merry 50130f4520SKenneth D. Merry #include <cam/scsi/scsi_all.h> 51130f4520SKenneth D. Merry #include <cam/scsi/scsi_da.h> 52130f4520SKenneth D. Merry #include <cam/ctl/ctl_io.h> 53130f4520SKenneth D. Merry #include <cam/ctl/ctl.h> 54130f4520SKenneth D. Merry #include <cam/ctl/ctl_frontend.h> 55130f4520SKenneth D. Merry #include <cam/ctl/ctl_backend.h> 56130f4520SKenneth D. Merry #include <cam/ctl/ctl_ioctl.h> 57130f4520SKenneth D. Merry #include <cam/ctl/ctl_ha.h> 58130f4520SKenneth D. Merry #include <cam/ctl/ctl_private.h> 59130f4520SKenneth D. Merry 60130f4520SKenneth D. Merry /* 611b08cb4eSAlexander Motin * Whenever support for a new command is added, it should be added to these 621b08cb4eSAlexander Motin * tables. 63130f4520SKenneth D. Merry */ 641b08cb4eSAlexander Motin 6582029718SAlexander Motin /* 3B WRITE BUFFER */ 6682029718SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_3b[32] = 6782029718SAlexander Motin { 6882029718SAlexander Motin /* 00 WRITE BUFFER HDR DATA */ 6982029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7082029718SAlexander Motin 7182029718SAlexander Motin /* 01 WRITE BUFFER VENDOR */ 7282029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7382029718SAlexander Motin 7482029718SAlexander Motin /* 02 WRITE BUFFER DATA */ 7582029718SAlexander Motin {ctl_write_buffer, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 7682029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 7782029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 7882029718SAlexander Motin CTL_FLAG_DATA_OUT, 7982029718SAlexander Motin CTL_LUN_PAT_NONE, 8082029718SAlexander Motin 10, {0x02, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 8182029718SAlexander Motin 8282029718SAlexander Motin /* 03 WRITE BUFFER DESCR */ 8382029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8482029718SAlexander Motin 8582029718SAlexander Motin /* 04 WRITE BUFFER DOWNLOAD */ 8682029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8782029718SAlexander Motin 8882029718SAlexander Motin /* 05 WRITE BUFFER DOWNLOAD SAVE */ 8982029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 9082029718SAlexander Motin 9182029718SAlexander Motin /* 06 */ 9282029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 9382029718SAlexander Motin 9482029718SAlexander Motin /* 07 */ 9582029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 9682029718SAlexander Motin 9782029718SAlexander Motin /* 08 */ 9882029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 9982029718SAlexander Motin 10082029718SAlexander Motin /* 09 */ 10182029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 10282029718SAlexander Motin 10382029718SAlexander Motin /* 0A WRITE BUFFER ECHO */ 10482029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 10582029718SAlexander Motin 10682029718SAlexander Motin /* 0B WRITE BUFFER ECHO DESCRIPTOR */ 10782029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 10882029718SAlexander Motin 10982029718SAlexander Motin /* 0C */ 11082029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 11182029718SAlexander Motin 11282029718SAlexander Motin /* 0D */ 11382029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 11482029718SAlexander Motin 11582029718SAlexander Motin /* 0E */ 11682029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 11782029718SAlexander Motin 11882029718SAlexander Motin /* 0F */ 11982029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 12082029718SAlexander Motin 12182029718SAlexander Motin /* 10 */ 12282029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 12382029718SAlexander Motin 12482029718SAlexander Motin /* 11 */ 12582029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 12682029718SAlexander Motin 12782029718SAlexander Motin /* 12 */ 12882029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 12982029718SAlexander Motin 13082029718SAlexander Motin /* 13 */ 13182029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 13282029718SAlexander Motin 13382029718SAlexander Motin /* 14 */ 13482029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 13582029718SAlexander Motin 13682029718SAlexander Motin /* 15 */ 13782029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 13882029718SAlexander Motin 13982029718SAlexander Motin /* 16 */ 14082029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 14182029718SAlexander Motin 14282029718SAlexander Motin /* 17 */ 14382029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 14482029718SAlexander Motin 14582029718SAlexander Motin /* 18 */ 14682029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 14782029718SAlexander Motin 14882029718SAlexander Motin /* 19 */ 14982029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 15082029718SAlexander Motin 15182029718SAlexander Motin /* 1A */ 15282029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 15382029718SAlexander Motin 15482029718SAlexander Motin /* 1B */ 15582029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 15682029718SAlexander Motin 15782029718SAlexander Motin /* 1C WRITE BUFFER ERROR HISTORY */ 15882029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 15982029718SAlexander Motin 16082029718SAlexander Motin /* 1d-1f */ 16182029718SAlexander Motin }; 16282029718SAlexander Motin 16382029718SAlexander Motin /* 3C READ BUFFER(10) */ 16482029718SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_3c[32] = 16582029718SAlexander Motin { 16682029718SAlexander Motin /* 00 READ BUFFER(10) HDR DATA */ 16782029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 16882029718SAlexander Motin 16982029718SAlexander Motin /* 01 READ BUFFER(10) VENDOR */ 17082029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 17182029718SAlexander Motin 17282029718SAlexander Motin /* 02 READ BUFFER(10) DATA */ 17382029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 17482029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 17582029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 17682029718SAlexander Motin CTL_FLAG_DATA_IN | 17782029718SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 17882029718SAlexander Motin CTL_LUN_PAT_NONE, 17982029718SAlexander Motin 10, {0x02, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 18082029718SAlexander Motin 18182029718SAlexander Motin /* 03 READ BUFFER(10) DESCR */ 18282029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 18382029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 18482029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 18582029718SAlexander Motin CTL_FLAG_DATA_IN | 18682029718SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 18782029718SAlexander Motin CTL_LUN_PAT_NONE, 18882029718SAlexander Motin 10, {0x03, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 18982029718SAlexander Motin 19082029718SAlexander Motin /* 04 */ 19182029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 19282029718SAlexander Motin 19382029718SAlexander Motin /* 05 */ 19482029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 19582029718SAlexander Motin 19682029718SAlexander Motin /* 06 */ 19782029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 19882029718SAlexander Motin 19982029718SAlexander Motin /* 07 */ 20082029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 20182029718SAlexander Motin 20282029718SAlexander Motin /* 08 */ 20382029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 20482029718SAlexander Motin 20582029718SAlexander Motin /* 09 */ 20682029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 20782029718SAlexander Motin 20882029718SAlexander Motin /* 0A READ BUFFER(10) ECHO */ 20982029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 21082029718SAlexander Motin 21182029718SAlexander Motin /* 0B READ BUFFER(10) ECHO DESCRIPTOR */ 21282029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 21382029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 21482029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 21582029718SAlexander Motin CTL_FLAG_DATA_IN | 21682029718SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 21782029718SAlexander Motin CTL_LUN_PAT_NONE, 21882029718SAlexander Motin 10, {0x0b, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07}}, 21982029718SAlexander Motin 22082029718SAlexander Motin /* 0C */ 22182029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 22282029718SAlexander Motin 22382029718SAlexander Motin /* 0D */ 22482029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 22582029718SAlexander Motin 22682029718SAlexander Motin /* 0E */ 22782029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 22882029718SAlexander Motin 22982029718SAlexander Motin /* 0F */ 23082029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 23182029718SAlexander Motin 23282029718SAlexander Motin /* 10 */ 23382029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 23482029718SAlexander Motin 23582029718SAlexander Motin /* 11 */ 23682029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 23782029718SAlexander Motin 23882029718SAlexander Motin /* 12 */ 23982029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 24082029718SAlexander Motin 24182029718SAlexander Motin /* 13 */ 24282029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 24382029718SAlexander Motin 24482029718SAlexander Motin /* 14 */ 24582029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 24682029718SAlexander Motin 24782029718SAlexander Motin /* 15 */ 24882029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 24982029718SAlexander Motin 25082029718SAlexander Motin /* 16 */ 25182029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 25282029718SAlexander Motin 25382029718SAlexander Motin /* 17 */ 25482029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 25582029718SAlexander Motin 25682029718SAlexander Motin /* 18 */ 25782029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 25882029718SAlexander Motin 25982029718SAlexander Motin /* 19 */ 26082029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 26182029718SAlexander Motin 26282029718SAlexander Motin /* 1A */ 26382029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 26482029718SAlexander Motin 26582029718SAlexander Motin /* 1B */ 26682029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 26782029718SAlexander Motin 26882029718SAlexander Motin /* 1C READ BUFFER(10) ERROR HISTORY */ 26982029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 27082029718SAlexander Motin 27182029718SAlexander Motin /* 1d-1f */ 27282029718SAlexander Motin }; 27382029718SAlexander Motin 2741b08cb4eSAlexander Motin /* 5E PERSISTENT RESERVE IN */ 2751b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_5e[32] = 2761b08cb4eSAlexander Motin { 2771b08cb4eSAlexander Motin /* 00 READ KEYS */ 2784d877c41SAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 2791b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 280648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 2817ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 2821b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 2831b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 2841b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 2851b08cb4eSAlexander Motin 10, { 0x00, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 2861b08cb4eSAlexander Motin 2871b08cb4eSAlexander Motin /* 01 READ RESERVATION */ 2884d877c41SAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 2891b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 290648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 2917ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 2921b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 2931b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 2941b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 2951b08cb4eSAlexander Motin 10, { 0x01, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 2961b08cb4eSAlexander Motin 2971b08cb4eSAlexander Motin /* 02 REPORT CAPABILITIES */ 2981b08cb4eSAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 2991b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 300648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3017ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3021b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 3031b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3041b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 3051b08cb4eSAlexander Motin 10, { 0x02, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 3061b08cb4eSAlexander Motin 3071b08cb4eSAlexander Motin /* 03 READ FULL STATUS */ 3081e5a8b8fSAlexander Motin {ctl_persistent_reserve_in, CTL_SERIDX_INQ, CTL_CMD_FLAG_ALLOW_ON_RESV | 3091e5a8b8fSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 310648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3117ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3121e5a8b8fSAlexander Motin CTL_FLAG_DATA_IN | 3131e5a8b8fSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3141e5a8b8fSAlexander Motin CTL_LUN_PAT_NONE, 3151e5a8b8fSAlexander Motin 10, { 0x03, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 3161b08cb4eSAlexander Motin 3171b08cb4eSAlexander Motin /* 04-1f */ 3181b08cb4eSAlexander Motin }; 3191b08cb4eSAlexander Motin 3201b08cb4eSAlexander Motin /* 5F PERSISTENT RESERVE OUT */ 3211b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_5f[32] = 3221b08cb4eSAlexander Motin { 3231b08cb4eSAlexander Motin /* 00 REGISTER */ 3244d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3251b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 326648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3277ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3281b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3291b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3301b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 3311b08cb4eSAlexander Motin 10, { 0x00, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3321b08cb4eSAlexander Motin 3331b08cb4eSAlexander Motin /* 01 RESERVE */ 3344d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3351b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 336648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3377ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3381b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3391b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3401b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 341f44570f6SAlexander Motin 10, { 0x01, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3421b08cb4eSAlexander Motin 3431b08cb4eSAlexander Motin /* 02 RELEASE */ 3444d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3451b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 346648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3477ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3481b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3491b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3501b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 351f44570f6SAlexander Motin 10, { 0x02, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3521b08cb4eSAlexander Motin 3531b08cb4eSAlexander Motin /* 03 CLEAR */ 3544d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3551b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 356648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3577ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3581b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3591b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3601b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 3610f8de8afSAlexander Motin 10, { 0x03, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3621b08cb4eSAlexander Motin 3631b08cb4eSAlexander Motin /* 04 PREEMPT */ 3644d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3651b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 366648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3677ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3681b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3691b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3701b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 3710f8de8afSAlexander Motin 10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3721b08cb4eSAlexander Motin 3731b08cb4eSAlexander Motin /* 05 PREEMPT AND ABORT */ 374fb5780deSAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 375fb5780deSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 376648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3777ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 378fb5780deSAlexander Motin CTL_FLAG_DATA_OUT | 379fb5780deSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 380fb5780deSAlexander Motin CTL_LUN_PAT_NONE, 381fb5780deSAlexander Motin 10, { 0x05, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3821b08cb4eSAlexander Motin 3831b08cb4eSAlexander Motin /* 06 REGISTER AND IGNORE EXISTING KEY */ 3844d877c41SAlexander Motin {ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 3851b08cb4eSAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 386648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 3877ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 3881b08cb4eSAlexander Motin CTL_FLAG_DATA_OUT | 3891b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 3901b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 3910f8de8afSAlexander Motin 10, { 0x06, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}}, 3921b08cb4eSAlexander Motin 3931b08cb4eSAlexander Motin /* 07 REGISTER AND MOVE */ 3941b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 3951b08cb4eSAlexander Motin 3961b08cb4eSAlexander Motin /* 08-1f */ 3971b08cb4eSAlexander Motin }; 3981b08cb4eSAlexander Motin 399984a2ea9SAlexander Motin /* 83 EXTENDED COPY */ 400984a2ea9SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_83[32] = 401984a2ea9SAlexander Motin { 402984a2ea9SAlexander Motin /* 00 EXTENDED COPY (LID1) */ 403984a2ea9SAlexander Motin {ctl_extended_copy_lid1, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 404648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 405984a2ea9SAlexander Motin CTL_FLAG_DATA_OUT, 406984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 407984a2ea9SAlexander Motin 16, { 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 408984a2ea9SAlexander Motin 409984a2ea9SAlexander Motin /* 01 EXTENDED COPY (LID4) */ 410984a2ea9SAlexander Motin {ctl_extended_copy_lid4, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 411648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 412984a2ea9SAlexander Motin CTL_FLAG_DATA_OUT, 413984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 414984a2ea9SAlexander Motin 16, { 0x01, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 415984a2ea9SAlexander Motin 416984a2ea9SAlexander Motin /* 02 */ 417984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 418984a2ea9SAlexander Motin 419984a2ea9SAlexander Motin /* 03 */ 420984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 421984a2ea9SAlexander Motin 422984a2ea9SAlexander Motin /* 04 */ 423984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 424984a2ea9SAlexander Motin 425984a2ea9SAlexander Motin /* 05 */ 426984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 427984a2ea9SAlexander Motin 428984a2ea9SAlexander Motin /* 06 */ 429984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 430984a2ea9SAlexander Motin 431984a2ea9SAlexander Motin /* 07 */ 432984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 433984a2ea9SAlexander Motin 434984a2ea9SAlexander Motin /* 08 */ 435984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 436984a2ea9SAlexander Motin 437984a2ea9SAlexander Motin /* 09 */ 438984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 439984a2ea9SAlexander Motin 440984a2ea9SAlexander Motin /* 0A */ 441984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 442984a2ea9SAlexander Motin 443984a2ea9SAlexander Motin /* 0B */ 444984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 445984a2ea9SAlexander Motin 446984a2ea9SAlexander Motin /* 0C */ 447984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 448984a2ea9SAlexander Motin 449984a2ea9SAlexander Motin /* 0D */ 450984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 451984a2ea9SAlexander Motin 452984a2ea9SAlexander Motin /* 0E */ 453984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 454984a2ea9SAlexander Motin 455984a2ea9SAlexander Motin /* 0F */ 456984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 457984a2ea9SAlexander Motin 458984a2ea9SAlexander Motin /* 10 POPULATE TOKEN */ 45991be33dcSAlexander Motin {ctl_populate_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 460115dc0c7SAlexander Motin CTL_FLAG_DATA_OUT | 461115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 46225eee848SAlexander Motin CTL_LUN_PAT_NONE, 46325eee848SAlexander Motin 16, { 0x10, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 46425eee848SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 465984a2ea9SAlexander Motin 466984a2ea9SAlexander Motin /* 11 WRITE USING TOKEN */ 46791be33dcSAlexander Motin {ctl_write_using_token, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 46825eee848SAlexander Motin CTL_FLAG_DATA_OUT, 46925eee848SAlexander Motin CTL_LUN_PAT_NONE, 47025eee848SAlexander Motin 16, { 0x11, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 47125eee848SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 472984a2ea9SAlexander Motin 473984a2ea9SAlexander Motin /* 12 */ 474984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 475984a2ea9SAlexander Motin 476984a2ea9SAlexander Motin /* 13 */ 477984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 478984a2ea9SAlexander Motin 479984a2ea9SAlexander Motin /* 14 */ 480984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 481984a2ea9SAlexander Motin 482984a2ea9SAlexander Motin /* 15 */ 483984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 484984a2ea9SAlexander Motin 485368cbc2cSAlexander Motin /* 16 SET TAPE STREAM MIRRORING */ 486984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 487984a2ea9SAlexander Motin 488984a2ea9SAlexander Motin /* 17 */ 489984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 490984a2ea9SAlexander Motin 491984a2ea9SAlexander Motin /* 18 */ 492984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 493984a2ea9SAlexander Motin 494984a2ea9SAlexander Motin /* 19 */ 495984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 496984a2ea9SAlexander Motin 497984a2ea9SAlexander Motin /* 1A */ 498984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 499984a2ea9SAlexander Motin 500984a2ea9SAlexander Motin /* 1B */ 501984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 502984a2ea9SAlexander Motin 503984a2ea9SAlexander Motin /* 1C COPY OPERATION ABORT */ 504984a2ea9SAlexander Motin {ctl_copy_operation_abort, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_BOTH | 505648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 506984a2ea9SAlexander Motin CTL_FLAG_DATA_NONE, 507984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 508984a2ea9SAlexander Motin 16, { 0x1c, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 509368cbc2cSAlexander Motin 510368cbc2cSAlexander Motin /* 1D COPY OPERATION CLOSE */ 511368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 512368cbc2cSAlexander Motin 513368cbc2cSAlexander Motin /* 1e-1f */ 514984a2ea9SAlexander Motin }; 515984a2ea9SAlexander Motin 516984a2ea9SAlexander Motin /* 84 RECEIVE COPY STATUS */ 517984a2ea9SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_84[32] = 518984a2ea9SAlexander Motin { 519984a2ea9SAlexander Motin /* 00 RECEIVE COPY STATUS (LID1) */ 520984a2ea9SAlexander Motin {ctl_receive_copy_status_lid1, CTL_SERIDX_RD_CAP, 521984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 522648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 523fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 524fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 525984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 526984a2ea9SAlexander Motin 16, {0x00, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 527984a2ea9SAlexander Motin 528984a2ea9SAlexander Motin /* 01 RECEIVE COPY DATA (LID1) */ 529984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 530984a2ea9SAlexander Motin 531984a2ea9SAlexander Motin /* 02 */ 532984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 533984a2ea9SAlexander Motin 534984a2ea9SAlexander Motin /* 03 RECEIVE COPY OPERATING PARAMETERS */ 535984a2ea9SAlexander Motin {ctl_receive_copy_operating_parameters, CTL_SERIDX_RD_CAP, 536984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 537648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 5387ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 539fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 540fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 541984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 542984a2ea9SAlexander Motin 16, {0x03, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 543984a2ea9SAlexander Motin 544984a2ea9SAlexander Motin /* 04 RECEIVE COPY FAILURE DETAILS (LID1) */ 545984a2ea9SAlexander Motin {ctl_receive_copy_failure_details, CTL_SERIDX_RD_CAP, 546984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 547648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 548fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 549fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 550984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 551984a2ea9SAlexander Motin 16, {0x04, 0xff, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 552984a2ea9SAlexander Motin 553984a2ea9SAlexander Motin /* 05 RECEIVE COPY STATUS (LID4) */ 554984a2ea9SAlexander Motin {ctl_receive_copy_status_lid4, CTL_SERIDX_RD_CAP, 555984a2ea9SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 556648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 557115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 558115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 559984a2ea9SAlexander Motin CTL_LUN_PAT_NONE, 560984a2ea9SAlexander Motin 16, {0x05, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 561984a2ea9SAlexander Motin 562984a2ea9SAlexander Motin /* 06 RECEIVE COPY DATA (LID4)*/ 563984a2ea9SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 564984a2ea9SAlexander Motin 565984a2ea9SAlexander Motin /* 07 RECEIVE ROD TOKEN INFORMATION */ 56625eee848SAlexander Motin {ctl_receive_rod_token_information, CTL_SERIDX_RD_CAP, 56725eee848SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 568648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 569115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 570115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 57125eee848SAlexander Motin CTL_LUN_PAT_NONE, 57225eee848SAlexander Motin 16, {0x07, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 573984a2ea9SAlexander Motin 574984a2ea9SAlexander Motin /* 08 REPORT ALL ROD TOKENS */ 57525eee848SAlexander Motin {ctl_report_all_rod_tokens, CTL_SERIDX_RD_CAP, 57625eee848SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 577648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 578115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 579115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 58025eee848SAlexander Motin CTL_LUN_PAT_NONE, 58125eee848SAlexander Motin 16, {0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 582368cbc2cSAlexander Motin 583368cbc2cSAlexander Motin /* 09 */ 584368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 585368cbc2cSAlexander Motin 586368cbc2cSAlexander Motin /* 0A */ 587368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 588368cbc2cSAlexander Motin 589368cbc2cSAlexander Motin /* 0B */ 590368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 591368cbc2cSAlexander Motin 592368cbc2cSAlexander Motin /* 0C */ 593368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 594368cbc2cSAlexander Motin 595368cbc2cSAlexander Motin /* 0D */ 596368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 597368cbc2cSAlexander Motin 598368cbc2cSAlexander Motin /* 0E */ 599368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 600368cbc2cSAlexander Motin 601368cbc2cSAlexander Motin /* 0F */ 602368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 603368cbc2cSAlexander Motin 604368cbc2cSAlexander Motin /* 10 */ 605368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 606368cbc2cSAlexander Motin 607368cbc2cSAlexander Motin /* 11 */ 608368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 609368cbc2cSAlexander Motin 610368cbc2cSAlexander Motin /* 12 */ 611368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 612368cbc2cSAlexander Motin 613368cbc2cSAlexander Motin /* 13 */ 614368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 615368cbc2cSAlexander Motin 616368cbc2cSAlexander Motin /* 14 */ 617368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 618368cbc2cSAlexander Motin 619368cbc2cSAlexander Motin /* 15 */ 620368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 621368cbc2cSAlexander Motin 622368cbc2cSAlexander Motin /* 16 REPORT TAPE STREAM MIRRORING */ 623368cbc2cSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 624368cbc2cSAlexander Motin 625368cbc2cSAlexander Motin /* 17-1f */ 626984a2ea9SAlexander Motin }; 627984a2ea9SAlexander Motin 62882029718SAlexander Motin /* 9B READ BUFFER(16) */ 62982029718SAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_9b[32] = 63082029718SAlexander Motin { 63182029718SAlexander Motin /* 00 READ BUFFER(16) HDR DATA */ 63282029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 63382029718SAlexander Motin 63482029718SAlexander Motin /* 01 READ BUFFER(16) VENDOR */ 63582029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 63682029718SAlexander Motin 63782029718SAlexander Motin /* 02 READ BUFFER(16) DATA */ 63882029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 63982029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 64082029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 64182029718SAlexander Motin CTL_FLAG_DATA_IN, 64282029718SAlexander Motin CTL_LUN_PAT_NONE, 64382029718SAlexander Motin 16, {0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 64482029718SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 64582029718SAlexander Motin 64682029718SAlexander Motin /* 03 READ BUFFER(16) DESCR */ 64782029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 64882029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 64982029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 65082029718SAlexander Motin CTL_FLAG_DATA_IN, 65182029718SAlexander Motin CTL_LUN_PAT_NONE, 65282029718SAlexander Motin 16, {0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 65382029718SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 65482029718SAlexander Motin 65582029718SAlexander Motin /* 04 READ BUFFER(16) */ 65682029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 65782029718SAlexander Motin 65882029718SAlexander Motin /* 05 READ BUFFER(16) */ 65982029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 66082029718SAlexander Motin 66182029718SAlexander Motin /* 06 */ 66282029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 66382029718SAlexander Motin 66482029718SAlexander Motin /* 07 */ 66582029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 66682029718SAlexander Motin 66782029718SAlexander Motin /* 08 */ 66882029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 66982029718SAlexander Motin 67082029718SAlexander Motin /* 09 */ 67182029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 67282029718SAlexander Motin 67382029718SAlexander Motin /* 0A READ BUFFER(16) ECHO */ 67482029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 67582029718SAlexander Motin 67682029718SAlexander Motin /* 0B READ BUFFER(16) ECHO DESCRIPTOR */ 67782029718SAlexander Motin {ctl_read_buffer, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 67882029718SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 67982029718SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 68082029718SAlexander Motin CTL_FLAG_DATA_IN, 68182029718SAlexander Motin CTL_LUN_PAT_NONE, 68282029718SAlexander Motin 16, {0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 68382029718SAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 68482029718SAlexander Motin 68582029718SAlexander Motin /* 0C */ 68682029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 68782029718SAlexander Motin 68882029718SAlexander Motin /* 0D */ 68982029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 69082029718SAlexander Motin 69182029718SAlexander Motin /* 0E */ 69282029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 69382029718SAlexander Motin 69482029718SAlexander Motin /* 0F */ 69582029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 69682029718SAlexander Motin 69782029718SAlexander Motin /* 10 */ 69882029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 69982029718SAlexander Motin 70082029718SAlexander Motin /* 11 */ 70182029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 70282029718SAlexander Motin 70382029718SAlexander Motin /* 12 */ 70482029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 70582029718SAlexander Motin 70682029718SAlexander Motin /* 13 */ 70782029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 70882029718SAlexander Motin 70982029718SAlexander Motin /* 14 */ 71082029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 71182029718SAlexander Motin 71282029718SAlexander Motin /* 15 */ 71382029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 71482029718SAlexander Motin 71582029718SAlexander Motin /* 16 */ 71682029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 71782029718SAlexander Motin 71882029718SAlexander Motin /* 17 */ 71982029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 72082029718SAlexander Motin 72182029718SAlexander Motin /* 18 */ 72282029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 72382029718SAlexander Motin 72482029718SAlexander Motin /* 19 */ 72582029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 72682029718SAlexander Motin 72782029718SAlexander Motin /* 1A */ 72882029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 72982029718SAlexander Motin 73082029718SAlexander Motin /* 1B */ 73182029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 73282029718SAlexander Motin 73382029718SAlexander Motin /* 1C READ BUFFER(16) ERROR HISTORY */ 73482029718SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 73582029718SAlexander Motin 73682029718SAlexander Motin /* 1d-1f */ 73782029718SAlexander Motin }; 73882029718SAlexander Motin 7391b08cb4eSAlexander Motin /* 9E SERVICE ACTION IN(16) */ 7401b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_9e[32] = 7411b08cb4eSAlexander Motin { 7421b08cb4eSAlexander Motin /* 00 */ 7431b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7441b08cb4eSAlexander Motin 7451b08cb4eSAlexander Motin /* 01 */ 7461b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7471b08cb4eSAlexander Motin 7481b08cb4eSAlexander Motin /* 02 */ 7491b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7501b08cb4eSAlexander Motin 7511b08cb4eSAlexander Motin /* 03 */ 7521b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7531b08cb4eSAlexander Motin 7541b08cb4eSAlexander Motin /* 04 */ 7551b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7561b08cb4eSAlexander Motin 7571b08cb4eSAlexander Motin /* 05 */ 7581b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7591b08cb4eSAlexander Motin 7601b08cb4eSAlexander Motin /* 06 */ 7611b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7621b08cb4eSAlexander Motin 7631b08cb4eSAlexander Motin /* 07 */ 7641b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7651b08cb4eSAlexander Motin 7661b08cb4eSAlexander Motin /* 08 */ 7671b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7681b08cb4eSAlexander Motin 7691b08cb4eSAlexander Motin /* 09 */ 7701b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7711b08cb4eSAlexander Motin 7721b08cb4eSAlexander Motin /* 0A */ 7731b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7741b08cb4eSAlexander Motin 7751b08cb4eSAlexander Motin /* 0B */ 7761b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7771b08cb4eSAlexander Motin 7781b08cb4eSAlexander Motin /* 0C */ 7791b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7801b08cb4eSAlexander Motin 7811b08cb4eSAlexander Motin /* 0D */ 7821b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7831b08cb4eSAlexander Motin 7841b08cb4eSAlexander Motin /* 0E */ 7851b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7861b08cb4eSAlexander Motin 787757089f0SAlexander Motin /* 0F RECEIVE BINDING REPORT */ 7881b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 7891b08cb4eSAlexander Motin 790ef8daf3fSAlexander Motin /* 10 READ CAPACITY(16) */ 79191be33dcSAlexander Motin {ctl_read_capacity_16, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 7921b08cb4eSAlexander Motin CTL_FLAG_DATA_IN | 7931b08cb4eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 7941b08cb4eSAlexander Motin CTL_LUN_PAT_READCAP, 7951b08cb4eSAlexander Motin 16, {0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 7961b08cb4eSAlexander Motin 797ef8daf3fSAlexander Motin /* 11 */ 798ef8daf3fSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 799ef8daf3fSAlexander Motin 800ef8daf3fSAlexander Motin /* 12 GET LBA STATUS */ 80191be33dcSAlexander Motin {ctl_get_lba_status, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 802ef8daf3fSAlexander Motin CTL_FLAG_DATA_IN | 803ef8daf3fSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 804ef8daf3fSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 805ef8daf3fSAlexander Motin 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 806ef8daf3fSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 807ef8daf3fSAlexander Motin 808ef8daf3fSAlexander Motin /* 13-1f */ 8091b08cb4eSAlexander Motin }; 8101b08cb4eSAlexander Motin 8111b08cb4eSAlexander Motin /* A3 MAINTENANCE IN */ 8121b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table_a3[32] = 8131b08cb4eSAlexander Motin { 8141b08cb4eSAlexander Motin /* 00 */ 8151b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8161b08cb4eSAlexander Motin 8171b08cb4eSAlexander Motin /* 01 */ 8181b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8191b08cb4eSAlexander Motin 8201b08cb4eSAlexander Motin /* 02 */ 8211b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8221b08cb4eSAlexander Motin 8231b08cb4eSAlexander Motin /* 03 */ 8241b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8251b08cb4eSAlexander Motin 8261b08cb4eSAlexander Motin /* 04 */ 8271b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8281b08cb4eSAlexander Motin 8298bdf81e4SAlexander Motin /* 05 REPORT IDENTIFYING INFORMATION */ 8308bdf81e4SAlexander Motin {ctl_report_ident_info, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 8318bdf81e4SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 8328bdf81e4SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 8338bdf81e4SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 8348bdf81e4SAlexander Motin CTL_FLAG_DATA_IN | 8358bdf81e4SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 8368bdf81e4SAlexander Motin CTL_LUN_PAT_NONE, 8378bdf81e4SAlexander Motin 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x07}}, 8381b08cb4eSAlexander Motin 8391b08cb4eSAlexander Motin /* 06 */ 8401b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8411b08cb4eSAlexander Motin 8421b08cb4eSAlexander Motin /* 07 */ 8431b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8441b08cb4eSAlexander Motin 8451b08cb4eSAlexander Motin /* 08 */ 8461b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8471b08cb4eSAlexander Motin 8481b08cb4eSAlexander Motin /* 09 */ 8491b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8501b08cb4eSAlexander Motin 8511b08cb4eSAlexander Motin /* 0A REPORT TARGET PORT GROUPS */ 8524d877c41SAlexander Motin {ctl_report_tagret_port_groups, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 853648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 8547ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 8557ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 856115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 857115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 8581b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 859eed0d596SAlexander Motin 12, {0xea, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 8601b08cb4eSAlexander Motin 8618bdf81e4SAlexander Motin /* 0B REPORT ALIASES */ 8621b08cb4eSAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8631b08cb4eSAlexander Motin 8641b08cb4eSAlexander Motin /* 0C REPORT SUPPORTED_OPCODES */ 8654d877c41SAlexander Motin {ctl_report_supported_opcodes, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 866648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 8677ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 8687ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 869fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 870fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 8711b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 872cb743034SAlexander Motin 12, {0x0c, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 8731b08cb4eSAlexander Motin 8741b08cb4eSAlexander Motin /* 0D REPORT SUPPORTED_TASK MANAGEMENT FUNCTIONS */ 8754d877c41SAlexander Motin {ctl_report_supported_tmf, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 876648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 8777ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 8787ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 879fb767c2bSAlexander Motin CTL_FLAG_DATA_IN | 880fb767c2bSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 8811b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 8822be7cd9bSAlexander Motin 12, {0x0d, 0x80, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 8831b08cb4eSAlexander Motin 8848bdf81e4SAlexander Motin /* 0E REPORT PRIORITY */ 88525c9d5e5SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 88625c9d5e5SAlexander Motin 88725c9d5e5SAlexander Motin /* 0F REPORT TIMESTAMP */ 8884d877c41SAlexander Motin {ctl_report_timestamp, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_BOTH | 889648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 8907ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 8917ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 892115dc0c7SAlexander Motin CTL_FLAG_DATA_IN | 893115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 89425c9d5e5SAlexander Motin CTL_LUN_PAT_NONE, 89525c9d5e5SAlexander Motin 12, {0x0f, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 89625c9d5e5SAlexander Motin 8978bdf81e4SAlexander Motin /* 10 MANAGEMENT PROTOCOL IN */ 8988bdf81e4SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 8998bdf81e4SAlexander Motin 9008bdf81e4SAlexander Motin /* 11-1f */ 9011b08cb4eSAlexander Motin }; 9021b08cb4eSAlexander Motin 9031b08cb4eSAlexander Motin const struct ctl_cmd_entry ctl_cmd_table[256] = 904130f4520SKenneth D. Merry { 905130f4520SKenneth D. Merry /* 00 TEST UNIT READY */ 906130f4520SKenneth D. Merry {ctl_tur, CTL_SERIDX_TUR, CTL_CMD_FLAG_OK_ON_BOTH | 907130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE | 908130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 9091b08cb4eSAlexander Motin CTL_LUN_PAT_TUR, 6, {0, 0, 0, 0, 0x07}}, 910130f4520SKenneth D. Merry 911130f4520SKenneth D. Merry /* 01 REWIND */ 912130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 913130f4520SKenneth D. Merry 914130f4520SKenneth D. Merry /* 02 */ 915130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 916130f4520SKenneth D. Merry 917130f4520SKenneth D. Merry /* 03 REQUEST SENSE */ 918130f4520SKenneth D. Merry {ctl_request_sense, CTL_SERIDX_RQ_SNS, CTL_FLAG_DATA_IN | 919efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_LUN | 920efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 921130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 922130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 923648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 9247ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 9257ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 926921af507SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 927921af507SAlexander Motin CTL_CMD_FLAG_RUN_HERE, 9281b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0xff, 0x07}}, 929130f4520SKenneth D. Merry 930130f4520SKenneth D. Merry /* 04 FORMAT UNIT */ 93191be33dcSAlexander Motin {ctl_format, CTL_SERIDX_FORMAT, CTL_CMD_FLAG_OK_ON_DIRECT | 932130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 9331b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0xff, 0, 0, 0, 0x07}}, 934130f4520SKenneth D. Merry 935130f4520SKenneth D. Merry /* 05 READ BLOCK LIMITS */ 936130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 937130f4520SKenneth D. Merry 938130f4520SKenneth D. Merry /* 06 */ 939130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 940130f4520SKenneth D. Merry 941130f4520SKenneth D. Merry /* 07 REASSIGN BLOCKS */ 942130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 943130f4520SKenneth D. Merry 944130f4520SKenneth D. Merry /* 08 READ(6) */ 94591be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 946130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 947f0e59ecfSHP van Braam CTL_CMD_FLAG_OK_ON_CDROM | 948115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 9491b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 950130f4520SKenneth D. Merry 951130f4520SKenneth D. Merry /* 09 */ 952130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 953130f4520SKenneth D. Merry 954130f4520SKenneth D. Merry /* 0A WRITE(6) */ 95591be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 956130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 9571b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 6, {0x1f, 0xff, 0xff, 0xff, 0x07}}, 958130f4520SKenneth D. Merry 959130f4520SKenneth D. Merry /* 0B SEEK(6) */ 960130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 961130f4520SKenneth D. Merry 962130f4520SKenneth D. Merry /* 0C */ 963130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 964130f4520SKenneth D. Merry 965130f4520SKenneth D. Merry /* 0D */ 966130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 967130f4520SKenneth D. Merry 968130f4520SKenneth D. Merry /* 0E */ 969130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 970130f4520SKenneth D. Merry 971130f4520SKenneth D. Merry /* 0F READ REVERSE(6) */ 972130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 973130f4520SKenneth D. Merry 974130f4520SKenneth D. Merry /* 10 WRITE FILEMARKS(6) */ 975130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 976130f4520SKenneth D. Merry 977130f4520SKenneth D. Merry /* 11 SPACE(6) */ 978130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 979130f4520SKenneth D. Merry 980130f4520SKenneth D. Merry /* 12 INQUIRY */ 981efbf6139SAlexander Motin {ctl_inquiry, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_NO_LUN | 982efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 983130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 984130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 985648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 9867ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 9877ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 988130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 989130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 990561764b1SAlexander Motin CTL_LUN_PAT_NONE, 6, {0xe1, 0xff, 0xff, 0xff, 0x07}}, 991130f4520SKenneth D. Merry 992130f4520SKenneth D. Merry /* 13 */ 993130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 994130f4520SKenneth D. Merry 995130f4520SKenneth D. Merry /* 14 RECOVER BUFFERED DATA */ 996130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 997130f4520SKenneth D. Merry 998130f4520SKenneth D. Merry /* 15 MODE SELECT(6) */ 999130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 1000648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 10017ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1002130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 10033722787cSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x13, 0, 0, 0xff, 0x07}}, 1004130f4520SKenneth D. Merry 1005130f4520SKenneth D. Merry /* 16 RESERVE(6) */ 10064d877c41SAlexander Motin {ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1007130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 1008648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 10097ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1010130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 10111b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 1012130f4520SKenneth D. Merry 1013130f4520SKenneth D. Merry /* 17 RELEASE(6) */ 10144d877c41SAlexander Motin {ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1015130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 1016648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 10177ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1018130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 10191b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 6, {0, 0, 0, 0, 0x07}}, 1020130f4520SKenneth D. Merry 1021130f4520SKenneth D. Merry /* 18 COPY */ 1022130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1023130f4520SKenneth D. Merry 1024130f4520SKenneth D. Merry /* 19 ERASE(6) */ 1025130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1026130f4520SKenneth D. Merry 1027130f4520SKenneth D. Merry /* 1A MODE SENSE(6) */ 1028130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 1029648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 10307ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1031f82388fdSAlexander Motin CTL_FLAG_DATA_IN | 1032115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1033c7a7dbbcSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x08, 0xff, 0xff, 0xff, 0x07}}, 1034130f4520SKenneth D. Merry 1035130f4520SKenneth D. Merry /* 1B START STOP UNIT */ 103691be33dcSAlexander Motin {ctl_start_stop, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_DIRECT | 103791be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 1038648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 1039130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE | 1040130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 104166b69676SAlexander Motin CTL_LUN_PAT_NONE, 6, {0x01, 0, 0x0f, 0xf7, 0x07}}, 1042130f4520SKenneth D. Merry 1043130f4520SKenneth D. Merry /* 1C RECEIVE DIAGNOSTIC RESULTS */ 1044130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1045130f4520SKenneth D. Merry 1046130f4520SKenneth D. Merry /* 1D SEND DIAGNOSTIC */ 1047130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1048130f4520SKenneth D. Merry 1049130f4520SKenneth D. Merry /* 1E PREVENT ALLOW MEDIUM REMOVAL */ 105091be33dcSAlexander Motin {ctl_prevent_allow, CTL_SERIDX_START, CTL_CMD_FLAG_OK_ON_DIRECT | 105191be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 1052648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 105391be33dcSAlexander Motin CTL_FLAG_DATA_NONE, 105491be33dcSAlexander Motin CTL_LUN_PAT_NONE, 6, {0x01, 0, 0, 0x03, 0x07}}, 1055130f4520SKenneth D. Merry 1056130f4520SKenneth D. Merry /* 1F */ 1057130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1058130f4520SKenneth D. Merry 1059130f4520SKenneth D. Merry /* 20 */ 1060130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1061130f4520SKenneth D. Merry 1062130f4520SKenneth D. Merry /* 21 */ 1063130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1064130f4520SKenneth D. Merry 1065130f4520SKenneth D. Merry /* 22 */ 1066130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1067130f4520SKenneth D. Merry 1068130f4520SKenneth D. Merry /* 23 */ 1069130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1070130f4520SKenneth D. Merry 1071130f4520SKenneth D. Merry /* 24 SET WINDOW */ 1072130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1073130f4520SKenneth D. Merry 1074130f4520SKenneth D. Merry /* 25 READ CAPACITY(10) */ 107591be33dcSAlexander Motin {ctl_read_capacity, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_DIRECT | 107691be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 1077130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 1078130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 10791b08cb4eSAlexander Motin CTL_LUN_PAT_READCAP, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 1080130f4520SKenneth D. Merry 1081130f4520SKenneth D. Merry /* 26 */ 1082130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1083130f4520SKenneth D. Merry 1084130f4520SKenneth D. Merry /* 27 */ 1085130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1086130f4520SKenneth D. Merry 1087130f4520SKenneth D. Merry /* 28 READ(10) */ 108891be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 108991be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 1090130f4520SKenneth D. Merry CTL_FLAG_DATA_IN | 1091115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 10921b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1093b0737f1aSAlexander Motin 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1094130f4520SKenneth D. Merry 1095130f4520SKenneth D. Merry /* 29 READ GENERATION */ 1096130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1097130f4520SKenneth D. Merry 1098130f4520SKenneth D. Merry /* 2A WRITE(10) */ 109991be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 11001b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1101b0737f1aSAlexander Motin 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1102130f4520SKenneth D. Merry 1103130f4520SKenneth D. Merry /* 2B SEEK(10) */ 1104130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1105130f4520SKenneth D. Merry 1106130f4520SKenneth D. Merry /* 2C ERASE(10) */ 1107130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1108130f4520SKenneth D. Merry 1109130f4520SKenneth D. Merry /* 2D READ UPDATED BLOCK */ 1110130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1111130f4520SKenneth D. Merry 1112130f4520SKenneth D. Merry /* 2E WRITE AND VERIFY(10) */ 111391be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 11141b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 11155b5ad150SAlexander Motin 10, {0x12, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1116130f4520SKenneth D. Merry 1117130f4520SKenneth D. Merry /* 2F VERIFY(10) */ 111891be33dcSAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 111911b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 1120115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 11211b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 11221b08cb4eSAlexander Motin 10, {0x16, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1123130f4520SKenneth D. Merry 1124130f4520SKenneth D. Merry /* 30 SEARCH DATA HIGH(10) */ 1125130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1126130f4520SKenneth D. Merry 1127130f4520SKenneth D. Merry /* 31 SEARCH DATA EQUAL(10) */ 1128130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1129130f4520SKenneth D. Merry 1130130f4520SKenneth D. Merry /* 32 SEARCH DATA LOW(10) */ 1131130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1132130f4520SKenneth D. Merry 1133130f4520SKenneth D. Merry /* 33 SET LIMITS(10) */ 1134130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1135130f4520SKenneth D. Merry 1136130f4520SKenneth D. Merry /* 34 PRE-FETCH(10) */ 1137130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1138130f4520SKenneth D. Merry 1139130f4520SKenneth D. Merry /* 35 SYNCHRONIZE CACHE(10) */ 114091be33dcSAlexander Motin {ctl_sync_cache, CTL_SERIDX_SYNC, CTL_CMD_FLAG_OK_ON_DIRECT | 1141130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 11426187d472SAlexander Motin CTL_LUN_PAT_WRITE, 11437f3d6f1fSAlexander Motin 10, {0x06, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1144130f4520SKenneth D. Merry 1145130f4520SKenneth D. Merry /* 36 LOCK UNLOCK CACHE(10) */ 1146130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1147130f4520SKenneth D. Merry 1148130f4520SKenneth D. Merry /* 37 READ DEFECT DATA(10) */ 114991be33dcSAlexander Motin {ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_DIRECT | 1150d70698b3SAlexander Motin CTL_FLAG_DATA_IN | 1151115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1152d70698b3SAlexander Motin CTL_LUN_PAT_NONE, 1153d70698b3SAlexander Motin 10, {0, 0x1f, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 1154130f4520SKenneth D. Merry 1155130f4520SKenneth D. Merry /* 38 MEDIUM SCAN */ 1156130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1157130f4520SKenneth D. Merry 1158130f4520SKenneth D. Merry /* 39 COMPARE */ 1159130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1160130f4520SKenneth D. Merry 1161130f4520SKenneth D. Merry /* 3A COPY AND VERIFY */ 1162130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1163130f4520SKenneth D. Merry 1164130f4520SKenneth D. Merry /* 3B WRITE BUFFER */ 116582029718SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_3b), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 116682029718SAlexander Motin CTL_LUN_PAT_NONE}, 1167130f4520SKenneth D. Merry 1168130f4520SKenneth D. Merry /* 3C READ BUFFER */ 116982029718SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_3c), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 117082029718SAlexander Motin CTL_LUN_PAT_NONE}, 1171130f4520SKenneth D. Merry 1172130f4520SKenneth D. Merry /* 3D UPDATE BLOCK */ 1173130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1174130f4520SKenneth D. Merry 1175130f4520SKenneth D. Merry /* 3E READ LONG */ 1176130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1177130f4520SKenneth D. Merry 1178130f4520SKenneth D. Merry /* 3F WRITE LONG */ 1179130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1180130f4520SKenneth D. Merry 1181130f4520SKenneth D. Merry /* 40 CHANGE DEFINITION */ 1182130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1183130f4520SKenneth D. Merry 1184130f4520SKenneth D. Merry /* 41 WRITE SAME(10) */ 118591be33dcSAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 1186ee7f31c0SAlexander Motin CTL_FLAG_DATA_OUT, 11871b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 11883406a2a0SAlexander Motin 10, {0x1a, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0x07}}, 1189130f4520SKenneth D. Merry 1190ee7f31c0SAlexander Motin /* 42 READ SUB-CHANNEL / UNMAP */ 119191be33dcSAlexander Motin {ctl_unmap, CTL_SERIDX_UNMAP, CTL_CMD_FLAG_OK_ON_DIRECT | CTL_FLAG_DATA_OUT, 11921b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE, 11933406a2a0SAlexander Motin 10, {1, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07}}, 1194130f4520SKenneth D. Merry 1195130f4520SKenneth D. Merry /* 43 READ TOC/PMA/ATIP */ 119691be33dcSAlexander Motin {ctl_read_toc, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 119791be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV | 119891be33dcSAlexander Motin CTL_FLAG_DATA_IN, 119991be33dcSAlexander Motin CTL_LUN_PAT_NONE, 120091be33dcSAlexander Motin 10, {0x02, 0x01, 0, 0, 0, 0xff, 0xff, 0xff, 0x07}}, 1201130f4520SKenneth D. Merry 1202130f4520SKenneth D. Merry /* 44 REPORT DENSITY SUPPORT */ 1203130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1204130f4520SKenneth D. Merry 1205130f4520SKenneth D. Merry /* 45 PLAY AUDIO(10) */ 1206130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1207130f4520SKenneth D. Merry 1208130f4520SKenneth D. Merry /* 46 GET CONFIGURATION */ 120991be33dcSAlexander Motin {ctl_get_config, CTL_SERIDX_INQ, CTL_CMD_FLAG_OK_ON_CDROM | 1210648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 121191be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 121291be33dcSAlexander Motin CTL_FLAG_DATA_IN, 121391be33dcSAlexander Motin CTL_LUN_PAT_NONE, 121491be33dcSAlexander Motin 10, {0x03, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07}}, 1215130f4520SKenneth D. Merry 1216130f4520SKenneth D. Merry /* 47 PLAY AUDIO MSF */ 1217130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1218130f4520SKenneth D. Merry 1219130f4520SKenneth D. Merry /* 48 PLAY AUDIO TRACK INDEX */ 1220130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1221130f4520SKenneth D. Merry 1222130f4520SKenneth D. Merry /* 49 PLAY TRACK RELATIVE(10) */ 1223130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1224130f4520SKenneth D. Merry 1225130f4520SKenneth D. Merry /* 4A GET EVENT STATUS NOTIFICATION */ 122691be33dcSAlexander Motin {ctl_get_event_status, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 1227648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 122891be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 122991be33dcSAlexander Motin CTL_FLAG_DATA_IN, 123091be33dcSAlexander Motin CTL_LUN_PAT_NONE, 1231*86fbb05dSHP van Braam 10, {0xe1, 0, 0, 0x7e, 0, 0, 0xff, 0xff, 0x07}}, 1232130f4520SKenneth D. Merry 1233130f4520SKenneth D. Merry /* 4B PAUSE/RESUME */ 1234130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1235130f4520SKenneth D. Merry 1236130f4520SKenneth D. Merry /* 4C LOG SELECT */ 1237130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1238130f4520SKenneth D. Merry 1239130f4520SKenneth D. Merry /* 4D LOG SENSE */ 12402e33ae99SAlexander Motin {ctl_log_sense, CTL_SERIDX_LOG_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 1241648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 12422e33ae99SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1243523f047eSAlexander Motin CTL_FLAG_DATA_IN | 1244523f047eSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV, 1245523f047eSAlexander Motin CTL_LUN_PAT_NONE, 10, {0, 0xff, 0xff, 0, 0xff, 0xff, 0xff, 0xff, 0x07} }, 1246130f4520SKenneth D. Merry 1247130f4520SKenneth D. Merry /* 4E STOP PLAY/SCAN */ 1248130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1249130f4520SKenneth D. Merry 1250130f4520SKenneth D. Merry /* 4F */ 1251130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1252130f4520SKenneth D. Merry 1253130f4520SKenneth D. Merry /* 50 XDWRITE(10) */ 1254130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1255130f4520SKenneth D. Merry 1256130f4520SKenneth D. Merry /* 51 XPWRITE(10) */ 1257130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1258130f4520SKenneth D. Merry 1259130f4520SKenneth D. Merry /* 52 XDREAD(10) */ 1260130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1261130f4520SKenneth D. Merry 1262130f4520SKenneth D. Merry /* 53 RESERVE TRACK */ 1263130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1264130f4520SKenneth D. Merry 1265130f4520SKenneth D. Merry /* 54 SEND OPC INFORMATION */ 1266130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1267130f4520SKenneth D. Merry 1268130f4520SKenneth D. Merry /* 55 MODE SELECT(10) */ 1269130f4520SKenneth D. Merry {ctl_mode_select, CTL_SERIDX_MD_SEL, CTL_CMD_FLAG_OK_ON_BOTH | 1270648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 12717ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1272130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 12733722787cSAlexander Motin CTL_LUN_PAT_NONE, 10, {0x13, 0, 0, 0, 0, 0, 0xff, 0xff, 0x07} }, 1274130f4520SKenneth D. Merry 1275130f4520SKenneth D. Merry /* 56 RESERVE(10) */ 12764d877c41SAlexander Motin {ctl_scsi_reserve, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1277130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 1278648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 12797ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1280130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 1281f44570f6SAlexander Motin CTL_LUN_PAT_NONE, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07} }, 1282130f4520SKenneth D. Merry 1283130f4520SKenneth D. Merry /* 57 RELEASE(10) */ 12844d877c41SAlexander Motin {ctl_scsi_release, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV | 1285130f4520SKenneth D. Merry CTL_CMD_FLAG_OK_ON_BOTH | 1286648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 12877ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1288130f4520SKenneth D. Merry CTL_FLAG_DATA_OUT, 1289f44570f6SAlexander Motin CTL_LUN_PAT_NONE, 10, {0, 0, 0, 0, 0, 0, 0, 0, 0x07}}, 1290130f4520SKenneth D. Merry 1291130f4520SKenneth D. Merry /* 58 REPAIR TRACK */ 1292130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1293130f4520SKenneth D. Merry 1294130f4520SKenneth D. Merry /* 59 READ MASTER CUE */ 1295130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1296130f4520SKenneth D. Merry 1297130f4520SKenneth D. Merry /* 5A MODE SENSE(10) */ 1298130f4520SKenneth D. Merry {ctl_mode_sense, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_BOTH | 1299648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 13007ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 1301f82388fdSAlexander Motin CTL_FLAG_DATA_IN | 1302115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1303c7a7dbbcSAlexander Motin CTL_LUN_PAT_NONE, 10, {0x18, 0xff, 0xff, 0, 0, 0, 0xff, 0xff, 0x07} }, 1304130f4520SKenneth D. Merry 1305130f4520SKenneth D. Merry /* 5B CLOSE TRACK/SESSION */ 1306130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1307130f4520SKenneth D. Merry 1308130f4520SKenneth D. Merry /* 5C READ BUFFER CAPACITY */ 1309130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1310130f4520SKenneth D. Merry 1311130f4520SKenneth D. Merry /* 5D SEND CUE SHEET */ 1312130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1313130f4520SKenneth D. Merry 1314130f4520SKenneth D. Merry /* 5E PERSISTENT RESERVE IN */ 13151b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_5e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1316130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 1317130f4520SKenneth D. Merry 1318130f4520SKenneth D. Merry /* 5F PERSISTENT RESERVE OUT */ 13191b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_5f), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1320130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 1321130f4520SKenneth D. Merry 1322130f4520SKenneth D. Merry /* 60 */ 1323130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1324130f4520SKenneth D. Merry 1325130f4520SKenneth D. Merry /* 61 */ 1326130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1327130f4520SKenneth D. Merry 1328130f4520SKenneth D. Merry /* 62 */ 1329130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1330130f4520SKenneth D. Merry 1331130f4520SKenneth D. Merry /* 63 */ 1332130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1333130f4520SKenneth D. Merry 1334130f4520SKenneth D. Merry /* 64 */ 1335130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1336130f4520SKenneth D. Merry 1337130f4520SKenneth D. Merry /* 65 */ 1338130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1339130f4520SKenneth D. Merry 1340130f4520SKenneth D. Merry /* 66 */ 1341130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1342130f4520SKenneth D. Merry 1343130f4520SKenneth D. Merry /* 67 */ 1344130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1345130f4520SKenneth D. Merry 1346130f4520SKenneth D. Merry /* 68 */ 1347130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1348130f4520SKenneth D. Merry 1349130f4520SKenneth D. Merry /* 69 */ 1350130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1351130f4520SKenneth D. Merry 1352130f4520SKenneth D. Merry /* 6A */ 1353130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1354130f4520SKenneth D. Merry 1355130f4520SKenneth D. Merry /* 6B */ 1356130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1357130f4520SKenneth D. Merry 1358130f4520SKenneth D. Merry /* 6C */ 1359130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1360130f4520SKenneth D. Merry 1361130f4520SKenneth D. Merry /* 6D */ 1362130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1363130f4520SKenneth D. Merry 1364130f4520SKenneth D. Merry /* 6E */ 1365130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1366130f4520SKenneth D. Merry 1367130f4520SKenneth D. Merry /* 6F */ 1368130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1369130f4520SKenneth D. Merry 1370130f4520SKenneth D. Merry /* 70 */ 1371130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1372130f4520SKenneth D. Merry 1373130f4520SKenneth D. Merry /* 71 */ 1374130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1375130f4520SKenneth D. Merry 1376130f4520SKenneth D. Merry /* 72 */ 1377130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1378130f4520SKenneth D. Merry 1379130f4520SKenneth D. Merry /* 73 */ 1380130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1381130f4520SKenneth D. Merry 1382130f4520SKenneth D. Merry /* 74 */ 1383130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1384130f4520SKenneth D. Merry 1385130f4520SKenneth D. Merry /* 75 */ 1386130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1387130f4520SKenneth D. Merry 1388130f4520SKenneth D. Merry /* 76 */ 1389130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1390130f4520SKenneth D. Merry 1391130f4520SKenneth D. Merry /* 77 */ 1392130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1393130f4520SKenneth D. Merry 1394130f4520SKenneth D. Merry /* 78 */ 1395130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1396130f4520SKenneth D. Merry 1397130f4520SKenneth D. Merry /* 79 */ 1398130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1399130f4520SKenneth D. Merry 1400130f4520SKenneth D. Merry /* 7A */ 1401130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1402130f4520SKenneth D. Merry 1403130f4520SKenneth D. Merry /* 7B */ 1404130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1405130f4520SKenneth D. Merry 1406130f4520SKenneth D. Merry /* 7C */ 1407130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1408130f4520SKenneth D. Merry 1409130f4520SKenneth D. Merry /* 7D */ 1410130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1411130f4520SKenneth D. Merry 1412130f4520SKenneth D. Merry /* 7E */ 1413130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1414130f4520SKenneth D. Merry 1415130f4520SKenneth D. Merry /* 7F */ 1416130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1417130f4520SKenneth D. Merry 1418130f4520SKenneth D. Merry /* 80 XDWRITE EXTENDED(16) */ 1419130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1420130f4520SKenneth D. Merry 1421130f4520SKenneth D. Merry /* 81 REBUILD(16) */ 1422130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1423130f4520SKenneth D. Merry 1424130f4520SKenneth D. Merry /* 82 REGENERATE(16) */ 1425130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1426130f4520SKenneth D. Merry 1427130f4520SKenneth D. Merry /* 83 EXTENDED COPY */ 1428984a2ea9SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_83), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1429984a2ea9SAlexander Motin CTL_LUN_PAT_NONE}, 1430130f4520SKenneth D. Merry 1431130f4520SKenneth D. Merry /* 84 RECEIVE COPY RESULTS */ 1432984a2ea9SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_84), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1433984a2ea9SAlexander Motin CTL_LUN_PAT_NONE}, 1434130f4520SKenneth D. Merry 1435130f4520SKenneth D. Merry /* 85 */ 1436130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1437130f4520SKenneth D. Merry 1438130f4520SKenneth D. Merry /* 86 ACCESS CONTROL IN */ 1439130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1440130f4520SKenneth D. Merry 1441130f4520SKenneth D. Merry /* 87 ACCESS CONTROL OUT */ 1442130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1443130f4520SKenneth D. Merry 1444130f4520SKenneth D. Merry /* 88 READ(16) */ 144591be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | CTL_FLAG_DATA_IN | 1446115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 14471b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1448b0737f1aSAlexander Motin 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14491b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1450130f4520SKenneth D. Merry 145111b569f7SAlexander Motin /* 89 COMPARE AND WRITE */ 145291be33dcSAlexander Motin {ctl_cnw, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 14531b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 14541b08cb4eSAlexander Motin 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14551b08cb4eSAlexander Motin 0xff, 0xff, 0, 0, 0, 0xff, 0, 0x07}}, 1456130f4520SKenneth D. Merry 1457130f4520SKenneth D. Merry /* 8A WRITE(16) */ 145891be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 14591b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1460b0737f1aSAlexander Motin 16, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14611b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1462130f4520SKenneth D. Merry 1463130f4520SKenneth D. Merry /* 8B */ 1464130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1465130f4520SKenneth D. Merry 1466130f4520SKenneth D. Merry /* 8C READ ATTRIBUTE */ 1467130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1468130f4520SKenneth D. Merry 1469130f4520SKenneth D. Merry /* 8D WRITE ATTRIBUTE */ 1470130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1471130f4520SKenneth D. Merry 1472130f4520SKenneth D. Merry /* 8E WRITE AND VERIFY(16) */ 147391be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 14741b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 14755b5ad150SAlexander Motin 16, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14761b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1477130f4520SKenneth D. Merry 1478130f4520SKenneth D. Merry /* 8F VERIFY(16) */ 147991be33dcSAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 148011b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 1481115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 14821b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 14831b08cb4eSAlexander Motin 16, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14841b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1485130f4520SKenneth D. Merry 1486130f4520SKenneth D. Merry /* 90 PRE-FETCH(16) */ 1487130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1488130f4520SKenneth D. Merry 1489130f4520SKenneth D. Merry /* 91 SYNCHRONIZE CACHE(16) */ 149091be33dcSAlexander Motin {ctl_sync_cache, CTL_SERIDX_SYNC, CTL_CMD_FLAG_OK_ON_DIRECT | 1491130f4520SKenneth D. Merry CTL_FLAG_DATA_NONE, 14926187d472SAlexander Motin CTL_LUN_PAT_WRITE, 14937f3d6f1fSAlexander Motin 16, {0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 14941b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1495130f4520SKenneth D. Merry 1496130f4520SKenneth D. Merry /* 92 LOCK UNLOCK CACHE(16) */ 1497130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1498130f4520SKenneth D. Merry 1499130f4520SKenneth D. Merry /* 93 WRITE SAME(16) */ 150091be33dcSAlexander Motin {ctl_write_same, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT | 1501ee7f31c0SAlexander Motin CTL_FLAG_DATA_OUT, 15021b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 150364c5167cSAlexander Motin 16, {0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 15041b08cb4eSAlexander Motin 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1505130f4520SKenneth D. Merry 1506130f4520SKenneth D. Merry /* 94 */ 1507130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1508130f4520SKenneth D. Merry 1509130f4520SKenneth D. Merry /* 95 */ 1510130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1511130f4520SKenneth D. Merry 1512130f4520SKenneth D. Merry /* 96 */ 1513130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1514130f4520SKenneth D. Merry 1515130f4520SKenneth D. Merry /* 97 */ 1516130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1517130f4520SKenneth D. Merry 1518130f4520SKenneth D. Merry /* 98 */ 1519130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1520130f4520SKenneth D. Merry 1521130f4520SKenneth D. Merry /* 99 */ 1522130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1523130f4520SKenneth D. Merry 1524130f4520SKenneth D. Merry /* 9A */ 1525130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1526130f4520SKenneth D. Merry 1527de988746SAlexander Motin /* 9B READ BUFFER(16) */ 152882029718SAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_9b), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 152982029718SAlexander Motin CTL_LUN_PAT_NONE}, 1530130f4520SKenneth D. Merry 15318a416753SAlexander Motin /* 9C WRITE ATOMIC (16) */ 153291be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 15338a416753SAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 15348a416753SAlexander Motin 16, {0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 15358a416753SAlexander Motin 0xff, 0xff, 0, 0, 0xff, 0xff, 0, 0x07}}, 1536130f4520SKenneth D. Merry 1537130f4520SKenneth D. Merry /* 9D */ 1538130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1539130f4520SKenneth D. Merry 1540130f4520SKenneth D. Merry /* 9E SERVICE ACTION IN(16) */ 15411b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_9e), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 15421b08cb4eSAlexander Motin CTL_LUN_PAT_NONE}, 1543130f4520SKenneth D. Merry 1544130f4520SKenneth D. Merry /* 9F SERVICE ACTION OUT(16) */ 1545130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1546130f4520SKenneth D. Merry 1547130f4520SKenneth D. Merry /* A0 REPORT LUNS */ 1548921af507SAlexander Motin {ctl_report_luns, CTL_SERIDX_INQ, CTL_FLAG_DATA_IN | 1549921af507SAlexander Motin CTL_CMD_FLAG_OK_ON_NO_LUN | 1550efbf6139SAlexander Motin CTL_CMD_FLAG_OK_ON_BOTH | 1551130f4520SKenneth D. Merry CTL_CMD_FLAG_ALLOW_ON_RESV | 1552130f4520SKenneth D. Merry CTL_CMD_FLAG_NO_SENSE | 1553648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 15547ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_STANDBY | 15557ac58230SAlexander Motin CTL_CMD_FLAG_OK_ON_UNAVAIL | 1556921af507SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 1557921af507SAlexander Motin CTL_CMD_FLAG_RUN_HERE, 15581b08cb4eSAlexander Motin CTL_LUN_PAT_NONE, 15591b08cb4eSAlexander Motin 12, {0, 0xff, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1560130f4520SKenneth D. Merry 1561130f4520SKenneth D. Merry /* A1 BLANK */ 1562130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1563130f4520SKenneth D. Merry 1564130f4520SKenneth D. Merry /* A2 SEND EVENT */ 1565130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1566130f4520SKenneth D. Merry 15671b08cb4eSAlexander Motin /* A3 MAINTENANCE IN */ 15681b08cb4eSAlexander Motin {__DECONST(ctl_opfunc *, ctl_cmd_table_a3), CTL_SERIDX_INVLD, CTL_CMD_FLAG_SA5, 1569130f4520SKenneth D. Merry CTL_LUN_PAT_NONE}, 1570130f4520SKenneth D. Merry 15711b08cb4eSAlexander Motin /* A4 MAINTENANCE OUT */ 1572130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1573130f4520SKenneth D. Merry 1574130f4520SKenneth D. Merry /* A5 MOVE MEDIUM */ 1575130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1576130f4520SKenneth D. Merry 1577130f4520SKenneth D. Merry /* A6 EXCHANGE MEDIUM */ 1578130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1579130f4520SKenneth D. Merry 1580130f4520SKenneth D. Merry /* A7 MOVE MEDIUM ATTACHED */ 1581130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1582130f4520SKenneth D. Merry 1583130f4520SKenneth D. Merry /* A8 READ(12) */ 158491be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 158591be33dcSAlexander Motin CTL_CMD_FLAG_OK_ON_CDROM | 158691be33dcSAlexander Motin CTL_FLAG_DATA_IN | 1587115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 15881b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 1589b0737f1aSAlexander Motin 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1590130f4520SKenneth D. Merry 1591130f4520SKenneth D. Merry /* A9 PLAY TRACK RELATIVE(12) */ 1592130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1593130f4520SKenneth D. Merry 1594130f4520SKenneth D. Merry /* AA WRITE(12) */ 159591be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 15961b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 1597b0737f1aSAlexander Motin 12, {0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1598130f4520SKenneth D. Merry 1599130f4520SKenneth D. Merry /* AB SERVICE ACTION IN(12) */ 1600130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1601130f4520SKenneth D. Merry 1602130f4520SKenneth D. Merry /* AC ERASE(12) */ 1603130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1604130f4520SKenneth D. Merry 1605130f4520SKenneth D. Merry /* AD READ DVD STRUCTURE */ 1606130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1607130f4520SKenneth D. Merry 1608130f4520SKenneth D. Merry /* AE WRITE AND VERIFY(12) */ 160991be33dcSAlexander Motin {ctl_read_write, CTL_SERIDX_WRITE, CTL_CMD_FLAG_OK_ON_DIRECT| CTL_FLAG_DATA_OUT, 16101b08cb4eSAlexander Motin CTL_LUN_PAT_WRITE | CTL_LUN_PAT_RANGE, 16115b5ad150SAlexander Motin 12, {0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1612130f4520SKenneth D. Merry 1613130f4520SKenneth D. Merry /* AF VERIFY(12) */ 161491be33dcSAlexander Motin {ctl_verify, CTL_SERIDX_READ, CTL_CMD_FLAG_OK_ON_DIRECT | 161511b569f7SAlexander Motin CTL_FLAG_DATA_OUT | 1616115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 16171b08cb4eSAlexander Motin CTL_LUN_PAT_READ | CTL_LUN_PAT_RANGE, 16181b08cb4eSAlexander Motin 12, {0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1619130f4520SKenneth D. Merry 1620130f4520SKenneth D. Merry /* B0 SEARCH DATA HIGH(12) */ 1621130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1622130f4520SKenneth D. Merry 1623130f4520SKenneth D. Merry /* B1 SEARCH DATA EQUAL(12) */ 1624130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1625130f4520SKenneth D. Merry 1626130f4520SKenneth D. Merry /* B2 SEARCH DATA LOW(12) */ 1627130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1628130f4520SKenneth D. Merry 1629130f4520SKenneth D. Merry /* B3 SET LIMITS(12) */ 1630130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1631130f4520SKenneth D. Merry 1632130f4520SKenneth D. Merry /* B4 READ ELEMENT STATUS ATTACHED */ 1633130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1634130f4520SKenneth D. Merry 1635130f4520SKenneth D. Merry /* B5 REQUEST VOLUME ELEMENT ADDRESS */ 1636130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1637130f4520SKenneth D. Merry 1638130f4520SKenneth D. Merry /* B6 SEND VOLUME TAG */ 1639130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1640130f4520SKenneth D. Merry 1641130f4520SKenneth D. Merry /* B7 READ DEFECT DATA(12) */ 164291be33dcSAlexander Motin {ctl_read_defect, CTL_SERIDX_MD_SNS, CTL_CMD_FLAG_OK_ON_DIRECT | 1643d70698b3SAlexander Motin CTL_FLAG_DATA_IN | 1644115dc0c7SAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_WRESV, 1645d70698b3SAlexander Motin CTL_LUN_PAT_NONE, 1646d70698b3SAlexander Motin 12, {0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0x07}}, 1647130f4520SKenneth D. Merry 1648130f4520SKenneth D. Merry /* B8 READ ELEMENT STATUS */ 1649130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1650130f4520SKenneth D. Merry 1651130f4520SKenneth D. Merry /* B9 READ CD MSF */ 1652130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1653130f4520SKenneth D. Merry 16541b08cb4eSAlexander Motin /* BA REDUNDANCY GROUP IN */ 1655130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1656130f4520SKenneth D. Merry 16571b08cb4eSAlexander Motin /* BB REDUNDANCY GROUP OUT */ 1658130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1659130f4520SKenneth D. Merry 16601b08cb4eSAlexander Motin /* BC SPARE IN */ 1661130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1662130f4520SKenneth D. Merry 166391be33dcSAlexander Motin /* BD SPARE OUT / MECHANISM STATUS */ 166491be33dcSAlexander Motin {ctl_mechanism_status, CTL_SERIDX_RD_CAP, CTL_CMD_FLAG_OK_ON_CDROM | 1665648dfc1aSAlexander Motin CTL_CMD_FLAG_OK_ON_NO_MEDIA | 166691be33dcSAlexander Motin CTL_CMD_FLAG_ALLOW_ON_PR_RESV | 166791be33dcSAlexander Motin CTL_FLAG_DATA_IN, 166891be33dcSAlexander Motin CTL_LUN_PAT_NONE, 166991be33dcSAlexander Motin 12, {0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0, 0x07}}, 1670130f4520SKenneth D. Merry 16711b08cb4eSAlexander Motin /* BE VOLUME SET IN */ 1672130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1673130f4520SKenneth D. Merry 16741b08cb4eSAlexander Motin /* BF VOLUME SET OUT */ 1675130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1676130f4520SKenneth D. Merry 16777ac58230SAlexander Motin /* C0 */ 16787ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1679130f4520SKenneth D. Merry 16807ac58230SAlexander Motin /* C1 */ 16817ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1682130f4520SKenneth D. Merry 16837ac58230SAlexander Motin /* C2 */ 16847ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1685130f4520SKenneth D. Merry 16867ac58230SAlexander Motin /* C3 */ 16877ac58230SAlexander Motin {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1688130f4520SKenneth D. Merry 1689130f4520SKenneth D. Merry /* C4 */ 1690130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1691130f4520SKenneth D. Merry 1692130f4520SKenneth D. Merry /* C5 */ 1693130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1694130f4520SKenneth D. Merry 1695130f4520SKenneth D. Merry /* C6 */ 1696130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1697130f4520SKenneth D. Merry 1698130f4520SKenneth D. Merry /* C7 */ 1699130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1700130f4520SKenneth D. Merry 1701130f4520SKenneth D. Merry /* C8 */ 1702130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1703130f4520SKenneth D. Merry 1704130f4520SKenneth D. Merry /* C9 */ 1705130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1706130f4520SKenneth D. Merry 1707130f4520SKenneth D. Merry /* CA */ 1708130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1709130f4520SKenneth D. Merry 1710130f4520SKenneth D. Merry /* CB */ 1711130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1712130f4520SKenneth D. Merry 1713130f4520SKenneth D. Merry /* CC */ 1714130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1715130f4520SKenneth D. Merry 1716130f4520SKenneth D. Merry /* CD */ 1717130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1718130f4520SKenneth D. Merry 1719130f4520SKenneth D. Merry /* CE */ 1720130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1721130f4520SKenneth D. Merry 1722130f4520SKenneth D. Merry /* CF */ 1723130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1724130f4520SKenneth D. Merry 1725130f4520SKenneth D. Merry /* D0 */ 1726130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1727130f4520SKenneth D. Merry 1728130f4520SKenneth D. Merry /* D1 */ 1729130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1730130f4520SKenneth D. Merry 1731130f4520SKenneth D. Merry /* D2 */ 1732130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1733130f4520SKenneth D. Merry 1734130f4520SKenneth D. Merry /* D3 */ 1735130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1736130f4520SKenneth D. Merry 1737130f4520SKenneth D. Merry /* D4 */ 1738130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1739130f4520SKenneth D. Merry 1740130f4520SKenneth D. Merry /* D5 */ 1741130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1742130f4520SKenneth D. Merry 1743130f4520SKenneth D. Merry /* D6 */ 1744130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1745130f4520SKenneth D. Merry 1746130f4520SKenneth D. Merry /* D7 */ 1747130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1748130f4520SKenneth D. Merry 1749130f4520SKenneth D. Merry /* D8 */ 1750130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1751130f4520SKenneth D. Merry 1752130f4520SKenneth D. Merry /* D9 */ 1753130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1754130f4520SKenneth D. Merry 1755130f4520SKenneth D. Merry /* DA */ 1756130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1757130f4520SKenneth D. Merry 1758130f4520SKenneth D. Merry /* DB */ 1759130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1760130f4520SKenneth D. Merry 1761130f4520SKenneth D. Merry /* DC */ 1762130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1763130f4520SKenneth D. Merry 1764130f4520SKenneth D. Merry /* DD */ 1765130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1766130f4520SKenneth D. Merry 1767130f4520SKenneth D. Merry /* DE */ 1768130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1769130f4520SKenneth D. Merry 1770130f4520SKenneth D. Merry /* DF */ 1771130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1772130f4520SKenneth D. Merry 1773130f4520SKenneth D. Merry /* E0 */ 1774130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1775130f4520SKenneth D. Merry 1776130f4520SKenneth D. Merry /* E1 */ 1777130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1778130f4520SKenneth D. Merry 1779130f4520SKenneth D. Merry /* E2 */ 1780130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1781130f4520SKenneth D. Merry 1782130f4520SKenneth D. Merry /* E3 */ 1783130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1784130f4520SKenneth D. Merry 1785130f4520SKenneth D. Merry /* E4 */ 1786130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1787130f4520SKenneth D. Merry 1788130f4520SKenneth D. Merry /* E5 */ 1789130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1790130f4520SKenneth D. Merry 1791130f4520SKenneth D. Merry /* E6 */ 1792130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1793130f4520SKenneth D. Merry 1794130f4520SKenneth D. Merry /* E7 */ 1795130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1796130f4520SKenneth D. Merry 1797130f4520SKenneth D. Merry /* E8 */ 1798130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1799130f4520SKenneth D. Merry 1800130f4520SKenneth D. Merry /* E9 */ 1801130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1802130f4520SKenneth D. Merry 1803130f4520SKenneth D. Merry /* EA */ 1804130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1805130f4520SKenneth D. Merry 1806130f4520SKenneth D. Merry /* EB */ 1807130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1808130f4520SKenneth D. Merry 1809130f4520SKenneth D. Merry /* EC */ 1810130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1811130f4520SKenneth D. Merry 1812130f4520SKenneth D. Merry /* ED */ 1813130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1814130f4520SKenneth D. Merry 1815130f4520SKenneth D. Merry /* EE */ 1816130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1817130f4520SKenneth D. Merry 1818130f4520SKenneth D. Merry /* EF */ 1819130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1820130f4520SKenneth D. Merry 1821130f4520SKenneth D. Merry /* F0 */ 1822130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1823130f4520SKenneth D. Merry 1824130f4520SKenneth D. Merry /* F1 */ 1825130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1826130f4520SKenneth D. Merry 1827130f4520SKenneth D. Merry /* F2 */ 1828130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1829130f4520SKenneth D. Merry 1830130f4520SKenneth D. Merry /* F3 */ 1831130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1832130f4520SKenneth D. Merry 1833130f4520SKenneth D. Merry /* F4 */ 1834130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1835130f4520SKenneth D. Merry 1836130f4520SKenneth D. Merry /* F5 */ 1837130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1838130f4520SKenneth D. Merry 1839130f4520SKenneth D. Merry /* F6 */ 1840130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1841130f4520SKenneth D. Merry 1842130f4520SKenneth D. Merry /* F7 */ 1843130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1844130f4520SKenneth D. Merry 1845130f4520SKenneth D. Merry /* F8 */ 1846130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1847130f4520SKenneth D. Merry 1848130f4520SKenneth D. Merry /* F9 */ 1849130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1850130f4520SKenneth D. Merry 1851130f4520SKenneth D. Merry /* FA */ 1852130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1853130f4520SKenneth D. Merry 1854130f4520SKenneth D. Merry /* FB */ 1855130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1856130f4520SKenneth D. Merry 1857130f4520SKenneth D. Merry /* FC */ 1858130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1859130f4520SKenneth D. Merry 1860130f4520SKenneth D. Merry /* FD */ 1861130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1862130f4520SKenneth D. Merry 1863130f4520SKenneth D. Merry /* FE */ 1864130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE}, 1865130f4520SKenneth D. Merry 1866130f4520SKenneth D. Merry /* FF */ 1867130f4520SKenneth D. Merry {NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE} 1868130f4520SKenneth D. Merry 1869130f4520SKenneth D. Merry }; 1870