xref: /freebsd/sys/cam/ctl/ctl_cmd_table.c (revision 86fbb05da1aed64eb9b09d7f3b2cd72048c959c1)
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