1*7c478bd9Sstevel@tonic-gate /* 2*7c478bd9Sstevel@tonic-gate * CDDL HEADER START 3*7c478bd9Sstevel@tonic-gate * 4*7c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 5*7c478bd9Sstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only 6*7c478bd9Sstevel@tonic-gate * (the "License"). You may not use this file except in compliance 7*7c478bd9Sstevel@tonic-gate * with the License. 8*7c478bd9Sstevel@tonic-gate * 9*7c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*7c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 11*7c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 12*7c478bd9Sstevel@tonic-gate * and limitations under the License. 13*7c478bd9Sstevel@tonic-gate * 14*7c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 15*7c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*7c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 17*7c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 18*7c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 19*7c478bd9Sstevel@tonic-gate * 20*7c478bd9Sstevel@tonic-gate * CDDL HEADER END 21*7c478bd9Sstevel@tonic-gate */ 22*7c478bd9Sstevel@tonic-gate /* 23*7c478bd9Sstevel@tonic-gate * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 24*7c478bd9Sstevel@tonic-gate * Use is subject to license terms. 25*7c478bd9Sstevel@tonic-gate */ 26*7c478bd9Sstevel@tonic-gate 27*7c478bd9Sstevel@tonic-gate #ifndef _SYS_SCSI_GENERIC_COMMANDS_H 28*7c478bd9Sstevel@tonic-gate #define _SYS_SCSI_GENERIC_COMMANDS_H 29*7c478bd9Sstevel@tonic-gate 30*7c478bd9Sstevel@tonic-gate #pragma ident "%Z%%M% %I% %E% SMI" 31*7c478bd9Sstevel@tonic-gate 32*7c478bd9Sstevel@tonic-gate #ifdef __cplusplus 33*7c478bd9Sstevel@tonic-gate extern "C" { 34*7c478bd9Sstevel@tonic-gate #endif 35*7c478bd9Sstevel@tonic-gate 36*7c478bd9Sstevel@tonic-gate /* 37*7c478bd9Sstevel@tonic-gate * Standard SCSI Command Definitions 38*7c478bd9Sstevel@tonic-gate * 39*7c478bd9Sstevel@tonic-gate * Macros to determine known command sizes 40*7c478bd9Sstevel@tonic-gate */ 41*7c478bd9Sstevel@tonic-gate 42*7c478bd9Sstevel@tonic-gate #define CDB_GROUPID(cmd) ((cmd >> 5) & 0x7) 43*7c478bd9Sstevel@tonic-gate #define CDB_GROUPID_0 0 44*7c478bd9Sstevel@tonic-gate #define CDB_GROUPID_1 1 45*7c478bd9Sstevel@tonic-gate #define CDB_GROUPID_2 2 46*7c478bd9Sstevel@tonic-gate #define CDB_GROUPID_3 3 47*7c478bd9Sstevel@tonic-gate #define CDB_GROUPID_4 4 48*7c478bd9Sstevel@tonic-gate #define CDB_GROUPID_5 5 49*7c478bd9Sstevel@tonic-gate #define CDB_GROUPID_6 6 50*7c478bd9Sstevel@tonic-gate #define CDB_GROUPID_7 7 51*7c478bd9Sstevel@tonic-gate 52*7c478bd9Sstevel@tonic-gate #define CDB_GROUP0 6 /* 6-byte cdb's */ 53*7c478bd9Sstevel@tonic-gate #define CDB_GROUP1 10 /* 10-byte cdb's */ 54*7c478bd9Sstevel@tonic-gate #define CDB_GROUP2 10 /* 10-byte cdb's */ 55*7c478bd9Sstevel@tonic-gate #define CDB_GROUP3 0 /* reserved */ 56*7c478bd9Sstevel@tonic-gate #define CDB_GROUP4 16 /* 16-byte cdb's */ 57*7c478bd9Sstevel@tonic-gate #define CDB_GROUP5 12 /* 12-byte cdb's */ 58*7c478bd9Sstevel@tonic-gate #define CDB_GROUP6 0 /* reserved */ 59*7c478bd9Sstevel@tonic-gate #define CDB_GROUP7 0 /* reserved */ 60*7c478bd9Sstevel@tonic-gate 61*7c478bd9Sstevel@tonic-gate /* 62*7c478bd9Sstevel@tonic-gate * Generic Command Definitions 63*7c478bd9Sstevel@tonic-gate */ 64*7c478bd9Sstevel@tonic-gate 65*7c478bd9Sstevel@tonic-gate /* 66*7c478bd9Sstevel@tonic-gate * Group 0 Commands (CDB range 0x00 - 0x1F) 67*7c478bd9Sstevel@tonic-gate */ 68*7c478bd9Sstevel@tonic-gate 69*7c478bd9Sstevel@tonic-gate #define SCMD_GROUP0 0x00 70*7c478bd9Sstevel@tonic-gate 71*7c478bd9Sstevel@tonic-gate /* 72*7c478bd9Sstevel@tonic-gate * Group 0 commands, All Devices 73*7c478bd9Sstevel@tonic-gate */ 74*7c478bd9Sstevel@tonic-gate 75*7c478bd9Sstevel@tonic-gate #define SCMD_TEST_UNIT_READY 0x00 76*7c478bd9Sstevel@tonic-gate #define SCMD_REQUEST_SENSE 0x03 77*7c478bd9Sstevel@tonic-gate #define SCMD_INQUIRY 0x12 78*7c478bd9Sstevel@tonic-gate #define SCMD_COPY 0x18 79*7c478bd9Sstevel@tonic-gate #define SCMD_GDIAG 0x1C /* receive diagnostic results */ 80*7c478bd9Sstevel@tonic-gate #define SCMD_SDIAG 0x1D /* send diagnostic results */ 81*7c478bd9Sstevel@tonic-gate 82*7c478bd9Sstevel@tonic-gate /* 83*7c478bd9Sstevel@tonic-gate * Group 0 commands, Direct Access Devices 84*7c478bd9Sstevel@tonic-gate */ 85*7c478bd9Sstevel@tonic-gate 86*7c478bd9Sstevel@tonic-gate /* SCMD_TEST_UNIT_READY 0x00 */ 87*7c478bd9Sstevel@tonic-gate #define SCMD_REZERO_UNIT 0x01 88*7c478bd9Sstevel@tonic-gate /* SCMD_REQUEST_SENSE 0x03 */ 89*7c478bd9Sstevel@tonic-gate #define SCMD_FORMAT 0x04 90*7c478bd9Sstevel@tonic-gate #define SCMD_REASSIGN_BLOCK 0x07 91*7c478bd9Sstevel@tonic-gate #define SCMD_READ 0x08 92*7c478bd9Sstevel@tonic-gate #define SCMD_WRITE 0x0a 93*7c478bd9Sstevel@tonic-gate #define SCMD_SEEK 0x0b 94*7c478bd9Sstevel@tonic-gate /* SCMD_INQUIRY 0x12 */ 95*7c478bd9Sstevel@tonic-gate #define SCMD_MODE_SELECT 0x15 96*7c478bd9Sstevel@tonic-gate #define SCMD_RESERVE 0x16 97*7c478bd9Sstevel@tonic-gate #define SCMD_RELEASE 0x17 98*7c478bd9Sstevel@tonic-gate /* SCMD_COPY 0x18 */ 99*7c478bd9Sstevel@tonic-gate #define SCMD_MODE_SENSE 0x1a 100*7c478bd9Sstevel@tonic-gate #define SCMD_START_STOP 0x1b 101*7c478bd9Sstevel@tonic-gate /* SCMD_GDIAG 0x1C */ 102*7c478bd9Sstevel@tonic-gate /* SCMD_SDIAG 0x1D */ 103*7c478bd9Sstevel@tonic-gate #define SCMD_DOORLOCK 0x1E /* Prevent/Allow Medium Removal */ 104*7c478bd9Sstevel@tonic-gate 105*7c478bd9Sstevel@tonic-gate /* 106*7c478bd9Sstevel@tonic-gate * Group 0 commands, Sequential Access Devices 107*7c478bd9Sstevel@tonic-gate */ 108*7c478bd9Sstevel@tonic-gate 109*7c478bd9Sstevel@tonic-gate /* SCMD_TEST_UNIT_READY 0x00 */ 110*7c478bd9Sstevel@tonic-gate #define SCMD_REWIND 0x01 /* Note similarity to SCMD_REZERO */ 111*7c478bd9Sstevel@tonic-gate /* SCMD_REQUEST_SENSE 0x03 */ 112*7c478bd9Sstevel@tonic-gate #define SCMD_READ_BLKLIM 0x05 113*7c478bd9Sstevel@tonic-gate /* SCMD_READ 0x08 */ 114*7c478bd9Sstevel@tonic-gate /* SCMD_WRITE 0x0a */ 115*7c478bd9Sstevel@tonic-gate #define SCMD_TRK_SEL 0x0b /* Note similarity to SCMD_SEEK */ 116*7c478bd9Sstevel@tonic-gate #define SCMD_READ_REVERSE 0x0f 117*7c478bd9Sstevel@tonic-gate #define SCMD_WRITE_FILE_MARK 0x10 118*7c478bd9Sstevel@tonic-gate #define SCMD_SPACE 0x11 119*7c478bd9Sstevel@tonic-gate /* SCMD_INQUIRY 0x12 */ 120*7c478bd9Sstevel@tonic-gate #define SCMD_VERIFY_G0 0x13 121*7c478bd9Sstevel@tonic-gate #define SCMD_RECOVER_BUF 0x14 122*7c478bd9Sstevel@tonic-gate /* SCMD_MODE_SELECT 0x15 */ 123*7c478bd9Sstevel@tonic-gate /* SCMD_RESERVE 0x16 */ 124*7c478bd9Sstevel@tonic-gate /* SCMD_RELEASE 0x17 */ 125*7c478bd9Sstevel@tonic-gate /* SCMD_COPY 0x18 */ 126*7c478bd9Sstevel@tonic-gate #define SCMD_ERASE 0x19 127*7c478bd9Sstevel@tonic-gate /* SCMD_MODE_SENSE 0x1a */ 128*7c478bd9Sstevel@tonic-gate #define SCMD_LOAD 0x1b /* Note similarity to SCMD_START_STOP */ 129*7c478bd9Sstevel@tonic-gate /* SCMD_GDIAG 0x1c */ 130*7c478bd9Sstevel@tonic-gate /* SCMD_SDIAG 0x1d */ 131*7c478bd9Sstevel@tonic-gate /* SCMD_DOORLOCK 0x1e */ 132*7c478bd9Sstevel@tonic-gate 133*7c478bd9Sstevel@tonic-gate 134*7c478bd9Sstevel@tonic-gate /* 135*7c478bd9Sstevel@tonic-gate * Group 0 commands, Printer Devices 136*7c478bd9Sstevel@tonic-gate */ 137*7c478bd9Sstevel@tonic-gate 138*7c478bd9Sstevel@tonic-gate /* SCMD_TEST_UNIT_READY 0x00 */ 139*7c478bd9Sstevel@tonic-gate /* SCMD_REQUEST_SENSE 0x03 */ 140*7c478bd9Sstevel@tonic-gate /* SCMD_FORMAT 0x04 */ 141*7c478bd9Sstevel@tonic-gate #define SCMD_PRINT 0x0a /* Note similarity to SCMD_WRITE */ 142*7c478bd9Sstevel@tonic-gate #define SCMD_SLEW_PRINT 0x0b /* ? similar to SCMD_SEEK ? */ 143*7c478bd9Sstevel@tonic-gate #define SCMD_FLUSH_PRINT_BUF 0x10 /* ? similar to SCMD_WRITE_FILE_MARK */ 144*7c478bd9Sstevel@tonic-gate /* SCMD_INQUIRY 0x12 */ 145*7c478bd9Sstevel@tonic-gate /* SCMD_RECOVER_BUF 0x14 */ 146*7c478bd9Sstevel@tonic-gate /* SCMD_MODE_SELECT 0x15 */ 147*7c478bd9Sstevel@tonic-gate /* SCMD_RESERVE 0x16 */ 148*7c478bd9Sstevel@tonic-gate /* SCMD_RELEASE 0x17 */ 149*7c478bd9Sstevel@tonic-gate /* SCMD_COPY 0x18 */ 150*7c478bd9Sstevel@tonic-gate /* SCMD_MODE_SENSE 0x1a */ 151*7c478bd9Sstevel@tonic-gate #define SCMD_STOP_PRINT 0x1b /* Note similarity to SCMD_START_STOP */ 152*7c478bd9Sstevel@tonic-gate /* SCMD_GDIAG 0x1c */ 153*7c478bd9Sstevel@tonic-gate /* SCMD_SDIAG 0x1d */ 154*7c478bd9Sstevel@tonic-gate 155*7c478bd9Sstevel@tonic-gate /* 156*7c478bd9Sstevel@tonic-gate * Group 0 commands, Processor Devices 157*7c478bd9Sstevel@tonic-gate */ 158*7c478bd9Sstevel@tonic-gate /* SCMD_TEST_UNIT_READY 0x00 */ 159*7c478bd9Sstevel@tonic-gate /* SCMD_REQUEST_SENSE 0x03 */ 160*7c478bd9Sstevel@tonic-gate #define SCMD_RECEIVE 0x08 /* Note similarity to SCMD_READ */ 161*7c478bd9Sstevel@tonic-gate #define SCMD_SEND 0x0a /* Note similarity to SCMD_WRITE */ 162*7c478bd9Sstevel@tonic-gate /* SCMD_INQUIRY 0x12 */ 163*7c478bd9Sstevel@tonic-gate /* SCMD_COPY 0x18 */ 164*7c478bd9Sstevel@tonic-gate /* SCMD_MODE_SENSE 0x1a */ 165*7c478bd9Sstevel@tonic-gate /* SCMD_GDIAG 0x1c */ 166*7c478bd9Sstevel@tonic-gate /* SCMD_SDIAG 0x1d */ 167*7c478bd9Sstevel@tonic-gate 168*7c478bd9Sstevel@tonic-gate /* 169*7c478bd9Sstevel@tonic-gate * Group 0 commands, WORM Devices 170*7c478bd9Sstevel@tonic-gate */ 171*7c478bd9Sstevel@tonic-gate 172*7c478bd9Sstevel@tonic-gate /* SCMD_TEST_UNIT_READY 0x00 */ 173*7c478bd9Sstevel@tonic-gate /* SCMD_REZERO_UNIT 0x01 */ 174*7c478bd9Sstevel@tonic-gate /* SCMD_REQUEST_SENSE 0x03 */ 175*7c478bd9Sstevel@tonic-gate /* SCMD_REASSIGN_BLOCK 0x07 */ 176*7c478bd9Sstevel@tonic-gate /* SCMD_READ 0x08 */ 177*7c478bd9Sstevel@tonic-gate /* SCMD_WRITE 0x0a */ 178*7c478bd9Sstevel@tonic-gate /* SCMD_SEEK 0x0b */ 179*7c478bd9Sstevel@tonic-gate /* SCMD_INQUIRY 0x12 */ 180*7c478bd9Sstevel@tonic-gate /* SCMD_MODE_SELECT 0x15 */ 181*7c478bd9Sstevel@tonic-gate /* SCMD_RESERVE 0x16 */ 182*7c478bd9Sstevel@tonic-gate /* SCMD_RELEASE 0x17 */ 183*7c478bd9Sstevel@tonic-gate /* SCMD_COPY 0x18 */ 184*7c478bd9Sstevel@tonic-gate /* SCMD_MODE_SENSE 0x1a */ 185*7c478bd9Sstevel@tonic-gate /* SCMD_START_STOP 0x1b */ 186*7c478bd9Sstevel@tonic-gate /* SCMD_GDIAG 0x1C */ 187*7c478bd9Sstevel@tonic-gate /* SCMD_SDIAG 0x1D */ 188*7c478bd9Sstevel@tonic-gate /* SCMD_DOORLOCK 0x1E */ 189*7c478bd9Sstevel@tonic-gate 190*7c478bd9Sstevel@tonic-gate /* 191*7c478bd9Sstevel@tonic-gate * Group 0 commands, Read Only Devices 192*7c478bd9Sstevel@tonic-gate */ 193*7c478bd9Sstevel@tonic-gate 194*7c478bd9Sstevel@tonic-gate /* SCMD_TEST_UNIT_READY 0x00 */ 195*7c478bd9Sstevel@tonic-gate /* SCMD_REZERO_UNIT 0x01 */ 196*7c478bd9Sstevel@tonic-gate /* SCMD_REQUEST_SENSE 0x03 */ 197*7c478bd9Sstevel@tonic-gate /* SCMD_REASSIGN_BLOCK 0x07 */ 198*7c478bd9Sstevel@tonic-gate /* SCMD_READ 0x08 */ 199*7c478bd9Sstevel@tonic-gate /* SCMD_SEEK 0x0b */ 200*7c478bd9Sstevel@tonic-gate /* SCMD_INQUIRY 0x12 */ 201*7c478bd9Sstevel@tonic-gate /* SCMD_MODE_SELECT 0x15 */ 202*7c478bd9Sstevel@tonic-gate /* SCMD_RESERVE 0x16 */ 203*7c478bd9Sstevel@tonic-gate /* SCMD_RELEASE 0x17 */ 204*7c478bd9Sstevel@tonic-gate /* SCMD_COPY 0x18 */ 205*7c478bd9Sstevel@tonic-gate /* SCMD_MODE_SENSE 0x1a */ 206*7c478bd9Sstevel@tonic-gate /* SCMD_START_STOP 0x1b */ 207*7c478bd9Sstevel@tonic-gate /* SCMD_GDIAG 0x1C */ 208*7c478bd9Sstevel@tonic-gate /* SCMD_SDIAG 0x1D */ 209*7c478bd9Sstevel@tonic-gate /* SCMD_DOORLOCK 0x1E */ 210*7c478bd9Sstevel@tonic-gate 211*7c478bd9Sstevel@tonic-gate /* 212*7c478bd9Sstevel@tonic-gate * Group 1 Commands (CDB range 0x20 - 0x3F) 213*7c478bd9Sstevel@tonic-gate */ 214*7c478bd9Sstevel@tonic-gate 215*7c478bd9Sstevel@tonic-gate #define SCMD_GROUP1 0x20 216*7c478bd9Sstevel@tonic-gate 217*7c478bd9Sstevel@tonic-gate /* 218*7c478bd9Sstevel@tonic-gate * Group 1 Commands, All Devices 219*7c478bd9Sstevel@tonic-gate */ 220*7c478bd9Sstevel@tonic-gate 221*7c478bd9Sstevel@tonic-gate #define SCMD_COMPARE 0x39 222*7c478bd9Sstevel@tonic-gate #define SCMD_COPY_VERIFY 0x3A 223*7c478bd9Sstevel@tonic-gate #define SCMD_PRIN 0x5E 224*7c478bd9Sstevel@tonic-gate #define SCMD_PROUT 0x5F 225*7c478bd9Sstevel@tonic-gate 226*7c478bd9Sstevel@tonic-gate /* 227*7c478bd9Sstevel@tonic-gate * Group 1 Commands, Direct Access Devices 228*7c478bd9Sstevel@tonic-gate */ 229*7c478bd9Sstevel@tonic-gate 230*7c478bd9Sstevel@tonic-gate #define SCMD_READ_FORMAT_CAP 0x23 231*7c478bd9Sstevel@tonic-gate #define SCMD_READ_CAPACITY 0x25 232*7c478bd9Sstevel@tonic-gate #define SCMD_READ_G1 0x28 /* Note that only the group changed */ 233*7c478bd9Sstevel@tonic-gate #define SCMD_WRITE_G1 0x2a /* Note that only the group changed */ 234*7c478bd9Sstevel@tonic-gate #define SCMD_SEEK_G1 0x2b /* Note that only the group changed */ 235*7c478bd9Sstevel@tonic-gate #define SCMD_WRITE_VERIFY 0x2e 236*7c478bd9Sstevel@tonic-gate #define SCMD_VERIFY 0x2f 237*7c478bd9Sstevel@tonic-gate #define SCMD_SEARCH_HIGH 0x30 238*7c478bd9Sstevel@tonic-gate #define SCMD_SEARCH_EQUAL 0x31 239*7c478bd9Sstevel@tonic-gate #define SCMD_SEARCH_LOW 0x32 240*7c478bd9Sstevel@tonic-gate #define SCMD_SET_LIMITS 0x33 241*7c478bd9Sstevel@tonic-gate #define SCMD_READ_DEFECT_LIST 0x37 242*7c478bd9Sstevel@tonic-gate #define SCMD_WRITE_BUFFER 0x3B 243*7c478bd9Sstevel@tonic-gate #define SCMD_READ_BUFFER 0x3c 244*7c478bd9Sstevel@tonic-gate #define SCMD_READ_LONG 0x3E 245*7c478bd9Sstevel@tonic-gate #define SCMD_WRITE_LONG 0x3F 246*7c478bd9Sstevel@tonic-gate #define SCMD_RESERVE_G1 0x56 247*7c478bd9Sstevel@tonic-gate #define SCMD_RELEASE_G1 0x57 248*7c478bd9Sstevel@tonic-gate #define SCMD_MODE_SELECT_G1 0x55 249*7c478bd9Sstevel@tonic-gate #define SCMD_MODE_SENSE_G1 0x5A 250*7c478bd9Sstevel@tonic-gate #define SCMD_GET_CONFIGURATION 0x46 251*7c478bd9Sstevel@tonic-gate #define SCMD_LOG_SELECT_G1 0x4C 252*7c478bd9Sstevel@tonic-gate #define SCMD_LOG_SENSE_G1 0x4d 253*7c478bd9Sstevel@tonic-gate 254*7c478bd9Sstevel@tonic-gate 255*7c478bd9Sstevel@tonic-gate /* 256*7c478bd9Sstevel@tonic-gate * The following have been included for the ATAPI devices 257*7c478bd9Sstevel@tonic-gate */ 258*7c478bd9Sstevel@tonic-gate #define ATAPI_SET_CD_SPEED 0xBB 259*7c478bd9Sstevel@tonic-gate #define ATAPI_CAPABILITIES 0x2A 260*7c478bd9Sstevel@tonic-gate 261*7c478bd9Sstevel@tonic-gate /* 262*7c478bd9Sstevel@tonic-gate * Group 1 Commands, Sequential Access Devices 263*7c478bd9Sstevel@tonic-gate */ 264*7c478bd9Sstevel@tonic-gate 265*7c478bd9Sstevel@tonic-gate #define SCMD_LOCATE 0x2B /* Note similarity to SCMD_SEEK_G1 */ 266*7c478bd9Sstevel@tonic-gate #define SCMD_READ_POSITION 0x34 267*7c478bd9Sstevel@tonic-gate #define SCMD_REPORT_DENSITIES 0x44 268*7c478bd9Sstevel@tonic-gate 269*7c478bd9Sstevel@tonic-gate 270*7c478bd9Sstevel@tonic-gate /* 271*7c478bd9Sstevel@tonic-gate * Group 1 Commands, Printer Devices 272*7c478bd9Sstevel@tonic-gate */ 273*7c478bd9Sstevel@tonic-gate 274*7c478bd9Sstevel@tonic-gate /* (None Defined) */ 275*7c478bd9Sstevel@tonic-gate 276*7c478bd9Sstevel@tonic-gate /* 277*7c478bd9Sstevel@tonic-gate * Group 1 Commands, Processor Devices 278*7c478bd9Sstevel@tonic-gate */ 279*7c478bd9Sstevel@tonic-gate 280*7c478bd9Sstevel@tonic-gate /* (None Defined) */ 281*7c478bd9Sstevel@tonic-gate 282*7c478bd9Sstevel@tonic-gate /* 283*7c478bd9Sstevel@tonic-gate * Group 1 Commands, WORM Devices 284*7c478bd9Sstevel@tonic-gate */ 285*7c478bd9Sstevel@tonic-gate 286*7c478bd9Sstevel@tonic-gate /* SCMD_READ_CAPACITY 0x25 */ 287*7c478bd9Sstevel@tonic-gate /* SCMD_READ_G1 0x28 */ 288*7c478bd9Sstevel@tonic-gate /* SCMD_WRITE_G1 0x2a */ 289*7c478bd9Sstevel@tonic-gate /* SCMD_SEEK_G1 0x2b */ 290*7c478bd9Sstevel@tonic-gate /* SCMD_WRITE_VERIFY 0x2e */ 291*7c478bd9Sstevel@tonic-gate /* SCMD_VERIFY 0x2f */ 292*7c478bd9Sstevel@tonic-gate /* SCMD_SEARCH_HIGH 0x30 */ 293*7c478bd9Sstevel@tonic-gate /* SCMD_SEARCH_EQUAL 0x31 */ 294*7c478bd9Sstevel@tonic-gate /* SCMD_SEARCH_LOW 0x32 */ 295*7c478bd9Sstevel@tonic-gate /* SCMD_SET_LIMITS 0x33 */ 296*7c478bd9Sstevel@tonic-gate 297*7c478bd9Sstevel@tonic-gate /* 298*7c478bd9Sstevel@tonic-gate * Group 1 Commands, Read Only Devices 299*7c478bd9Sstevel@tonic-gate */ 300*7c478bd9Sstevel@tonic-gate 301*7c478bd9Sstevel@tonic-gate /* SCMD_READ_CAPACITY 0x25 */ 302*7c478bd9Sstevel@tonic-gate /* SCMD_READ_G1 0x28 */ 303*7c478bd9Sstevel@tonic-gate /* SCMD_SEEK_G1 0x2b */ 304*7c478bd9Sstevel@tonic-gate /* SCMD_VERIFY 0x2f */ 305*7c478bd9Sstevel@tonic-gate /* SCMD_SEARCH_HIGH 0x30 */ 306*7c478bd9Sstevel@tonic-gate /* SCMD_SEARCH_EQUAL 0x31 */ 307*7c478bd9Sstevel@tonic-gate /* SCMD_SEARCH_LOW 0x32 */ 308*7c478bd9Sstevel@tonic-gate /* SCMD_SET_LIMITS 0x33 */ 309*7c478bd9Sstevel@tonic-gate 310*7c478bd9Sstevel@tonic-gate /* 311*7c478bd9Sstevel@tonic-gate * Group 4 Commands, All Devices 312*7c478bd9Sstevel@tonic-gate */ 313*7c478bd9Sstevel@tonic-gate #define SCMD_GROUP4 0x80 314*7c478bd9Sstevel@tonic-gate #define SCMD_EXTENDED_COPY 0x83 315*7c478bd9Sstevel@tonic-gate 316*7c478bd9Sstevel@tonic-gate /* 317*7c478bd9Sstevel@tonic-gate * Group 4 Commands, Direct Access Devices 318*7c478bd9Sstevel@tonic-gate */ 319*7c478bd9Sstevel@tonic-gate #define SCMD_READ_G4 0x88 320*7c478bd9Sstevel@tonic-gate #define SCMD_WRITE_G4 0x8a 321*7c478bd9Sstevel@tonic-gate #define SCMD_SVC_ACTION_IN_G4 0x9e 322*7c478bd9Sstevel@tonic-gate #define SCMD_SVC_ACTION_OUT_G4 0x9f 323*7c478bd9Sstevel@tonic-gate 324*7c478bd9Sstevel@tonic-gate /* 325*7c478bd9Sstevel@tonic-gate * Group 4 Service Actions for Service Action In (16) 326*7c478bd9Sstevel@tonic-gate */ 327*7c478bd9Sstevel@tonic-gate #define SSVC_ACTION_READ_CAPACITY_G4 0x10 328*7c478bd9Sstevel@tonic-gate #define SSVC_ACTION_READ_LONG_G4 0x11 329*7c478bd9Sstevel@tonic-gate 330*7c478bd9Sstevel@tonic-gate /* 331*7c478bd9Sstevel@tonic-gate * Group 4 Service Actions for Service Action Out (16) 332*7c478bd9Sstevel@tonic-gate */ 333*7c478bd9Sstevel@tonic-gate #define SSVC_ACTION_WRITE_LONG_G4 0x11 334*7c478bd9Sstevel@tonic-gate 335*7c478bd9Sstevel@tonic-gate /* 336*7c478bd9Sstevel@tonic-gate * Define for Group 5 command. 337*7c478bd9Sstevel@tonic-gate */ 338*7c478bd9Sstevel@tonic-gate #define SCMD_GROUP5 0xA0 339*7c478bd9Sstevel@tonic-gate #define SCMD_READ_G5 0xA8 340*7c478bd9Sstevel@tonic-gate #define SCMD_WRITE_G5 0xAA 341*7c478bd9Sstevel@tonic-gate #define SCMD_GET_PERFORMANCE 0xAC 342*7c478bd9Sstevel@tonic-gate #define SCMD_REPORT_LUNS 0xA0 343*7c478bd9Sstevel@tonic-gate 344*7c478bd9Sstevel@tonic-gate 345*7c478bd9Sstevel@tonic-gate #ifdef __cplusplus 346*7c478bd9Sstevel@tonic-gate } 347*7c478bd9Sstevel@tonic-gate #endif 348*7c478bd9Sstevel@tonic-gate 349*7c478bd9Sstevel@tonic-gate 350*7c478bd9Sstevel@tonic-gate /* 351*7c478bd9Sstevel@tonic-gate * Below are inclusions of files describing various command structures 352*7c478bd9Sstevel@tonic-gate * of interest. 353*7c478bd9Sstevel@tonic-gate */ 354*7c478bd9Sstevel@tonic-gate 355*7c478bd9Sstevel@tonic-gate #include <sys/scsi/generic/inquiry.h> 356*7c478bd9Sstevel@tonic-gate #include <sys/scsi/generic/sense.h> 357*7c478bd9Sstevel@tonic-gate 358*7c478bd9Sstevel@tonic-gate /* 359*7c478bd9Sstevel@tonic-gate * Private Vendor Unique Commands - Each implementation provides this. 360*7c478bd9Sstevel@tonic-gate */ 361*7c478bd9Sstevel@tonic-gate 362*7c478bd9Sstevel@tonic-gate #include <sys/scsi/impl/commands.h> 363*7c478bd9Sstevel@tonic-gate 364*7c478bd9Sstevel@tonic-gate #endif /* _SYS_SCSI_GENERIC_COMMANDS_H */ 365