Date: Sun, 1 Mar 2009 16:24:57 +0000 (UTC) From: Scott Long <scottl@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org Subject: svn commit: r189239 - in stable/7/sys: . cam/scsi contrib/pf dev/ath/ath_hal dev/cxgb Message-ID: <200903011624.n21GOvOi048222@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: scottl Date: Sun Mar 1 16:24:57 2009 New Revision: 189239 URL: http://svn.freebsd.org/changeset/base/189239 Log: Merge 181381: Update SCSI opcodes and ASCs from t10.org. Modified: stable/7/sys/ (props changed) stable/7/sys/cam/scsi/scsi_all.c stable/7/sys/cam/scsi/scsi_all.h stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) Modified: stable/7/sys/cam/scsi/scsi_all.c ============================================================================== --- stable/7/sys/cam/scsi/scsi_all.c Sun Mar 1 15:08:33 2009 (r189238) +++ stable/7/sys/cam/scsi/scsi_all.c Sun Mar 1 16:24:57 2009 (r189239) @@ -103,23 +103,27 @@ static int set_scsi_delay(int delay); #if !defined(SCSI_NO_OP_STRINGS) -#define D 0x001 -#define T 0x002 -#define L 0x004 -#define P 0x008 -#define W 0x010 -#define R 0x020 -#define S 0x040 -#define O 0x080 -#define M 0x100 -#define C 0x200 -#define A 0x400 -#define E 0x800 +#define D (1 << T_DIRECT) +#define T (1 << T_SEQUENTIAL) +#define L (1 << T_PRINTER) +#define P (1 << T_PROCESSOR) +#define W (1 << T_WORM) +#define R (1 << T_CDROM) +#define O (1 << T_OPTICAL) +#define M (1 << T_CHANGER) +#define A (1 << T_STORARRAY) +#define E (1 << T_ENCLOSURE) +#define B (1 << T_RBC) +#define K (1 << T_OCRW) +#define V (1 << T_ADC) +#define F (1 << T_OSD) +#define S (1 << T_SCANNER) +#define C (1 << T_COMM) -#define ALL 0xFFF +#define ALL (D | T | L | P | W | R | O | M | A | E | B | K | V | F | S | C) static struct op_table_entry plextor_cd_ops[] = { - {0xD8, R, "CD-DA READ"} + { 0xD8, R, "CD-DA READ" } }; static struct scsi_op_quirk_entry scsi_op_quirk_table[] = { @@ -140,519 +144,456 @@ static struct scsi_op_quirk_entry scsi_o }; static struct op_table_entry scsi_op_codes[] = { -/* - * From: ftp://ftp.symbios.com/pub/standards/io/t10/drafts/spc/op-num.txt - * Modifications by Kenneth Merry (ken@FreeBSD.ORG) - * - * Note: order is important in this table, scsi_op_desc() currently - * depends on the opcodes in the table being in order to save search time. - */ -/* - * File: OP-NUM.TXT - * - * SCSI Operation Codes - * Numeric Sorted Listing - * as of 11/13/96 - * - * D - DIRECT ACCESS DEVICE (SBC) device column key - * .T - SEQUENTIAL ACCESS DEVICE (SSC) ------------------- - * . L - PRINTER DEVICE (SSC) M = Mandatory - * . P - PROCESSOR DEVICE (SPC) O = Optional - * . .W - WRITE ONCE READ MULTIPLE DEVICE (SBC) V = Vendor specific - * . . R - CD DEVICE (MMC) R = Reserved - * . . S - SCANNER DEVICE (SGC) Z = Obsolete - * . . .O - OPTICAL MEMORY DEVICE (SBC) - * . . . M - MEDIA CHANGER DEVICE (SMC) - * . . . C - COMMUNICATION DEVICE (SSC) - * . . . .A - STORAGE ARRAY DEVICE (SCC) - * . . . . E - ENCLOSURE SERVICES DEVICE (SES) - * OP DTLPWRSOMCAE Description - * -- ------------ ---------------------------------------------------- */ -/* 00 MMMMMMMMMMMM TEST UNIT READY */ -{0x00, ALL, "TEST UNIT READY"}, - -/* 01 M REWIND */ -{0x01, T, "REWIND"}, -/* 01 Z V ZO ZO REZERO UNIT */ -{0x01, D|L|W|O|M, "REZERO UNIT"}, - -/* 02 VVVVVV V */ - -/* 03 MMMMMMMMMMMM REQUEST SENSE */ -{0x03, ALL, "REQUEST SENSE"}, - -/* 04 M O O FORMAT UNIT */ -{0x04, D|R|O, "FORMAT UNIT"}, -/* 04 O FORMAT MEDIUM */ -{0x04, T, "FORMAT MEDIUM"}, -/* 04 O FORMAT */ -{0x04, L, "FORMAT"}, - -/* 05 VMVVVV V READ BLOCK LIMITS */ -{0x05, T, "READ BLOCK LIMITS"}, - -/* 06 VVVVVV V */ - -/* 07 OVV O OV REASSIGN BLOCKS */ -{0x07, D|W|O, "REASSIGN BLOCKS"}, -/* 07 O INITIALIZE ELEMENT STATUS */ -{0x07, M, "INITIALIZE ELEMENT STATUS"}, - -/* 08 OMV OO OV READ(06) */ -{0x08, D|T|W|R|O, "READ(06)"}, -/* 08 O RECEIVE */ -{0x08, P, "RECEIVE"}, -/* 08 M GET MESSAGE(06) */ -{0x08, C, "GET MESSAGE(06)"}, - -/* 09 VVVVVV V */ - -/* 0A OM O OV WRITE(06) */ -{0x0A, D|T|W|O, "WRITE(06)"}, -/* 0A M SEND(06) */ -{0x0A, P, "SEND(06)"}, -/* 0A M SEND MESSAGE(06) */ -{0x0A, C, "SEND MESSAGE(06)"}, -/* 0A M PRINT */ -{0x0A, L, "PRINT"}, - -/* 0B Z ZO ZV SEEK(06) */ -{0x0B, D|W|R|O, "SEEK(06)"}, -/* 0B O SLEW AND PRINT */ -{0x0B, L, "SLEW AND PRINT"}, - -/* 0C VVVVVV V */ -/* 0D VVVVVV V */ -/* 0E VVVVVV V */ -/* 0F VOVVVV V READ REVERSE */ -{0x0F, T, "READ REVERSE"}, - -/* 10 VM VVV WRITE FILEMARKS */ -{0x10, T, "WRITE FILEMARKS"}, -/* 10 O O SYNCHRONIZE BUFFER */ -{0x10, L|W, "SYNCHRONIZE BUFFER"}, - -/* 11 VMVVVV SPACE */ -{0x11, T, "SPACE"}, - -/* 12 MMMMMMMMMMMM INQUIRY */ -{0x12, ALL, "INQUIRY"}, - -/* 13 VOVVVV VERIFY(06) */ -{0x13, T, "VERIFY(06)"}, - -/* 14 VOOVVV RECOVER BUFFERED DATA */ -{0x14, T|L, "RECOVER BUFFERED DATA"}, - -/* 15 OMO OOOOOOOO MODE SELECT(06) */ -{0x15, ALL & ~(P), "MODE SELECT(06)"}, - -/* 16 MMMOMMMM O RESERVE(06) */ -{0x16, D|T|L|P|W|R|S|O|E, "RESERVE(06)"}, -/* 16 M RESERVE ELEMENT(06) */ -{0x16, M, "RESERVE ELEMENT(06)"}, - -/* 17 MMMOMMMM O RELEASE(06) */ -{0x17, ALL & ~(M|C|A), "RELEASE(06)"}, -/* 17 M RELEASE ELEMENT(06) */ -{0x17, M, "RELEASE ELEMENT(06)"}, - -/* 18 OOOOOOOO COPY */ -{0x18, ALL & ~(M|C|A|E), "COPY"}, - -/* 19 VMVVVV ERASE */ -{0x19, T, "ERASE"}, - -/* 1A OMO OOOOOOOO MODE SENSE(06) */ -{0x1A, ALL & ~(P), "MODE SENSE(06)"}, - -/* 1B O OM O STOP START UNIT */ -{0x1B, D|W|R|O, "STOP START UNIT"}, -/* 1B O LOAD UNLOAD */ -{0x1B, T, "LOAD UNLOAD"}, -/* 1B O SCAN */ -{0x1B, S, "SCAN"}, -/* 1B O STOP PRINT */ -{0x1B, L, "STOP PRINT"}, - -/* 1C OOOOOOOOOO M RECEIVE DIAGNOSTIC RESULTS */ -{0x1C, ALL & ~(A), "RECEIVE DIAGNOSTIC RESULTS"}, - -/* 1D MMMMMMMMMMMM SEND DIAGNOSTIC */ -{0x1D, ALL, "SEND DIAGNOSTIC"}, - -/* 1E OO OM OO PREVENT ALLOW MEDIUM REMOVAL */ -{0x1E, D|T|W|R|O|M, "PREVENT ALLOW MEDIUM REMOVAL"}, - -/* 1F */ -/* 20 V VV V */ -/* 21 V VV V */ -/* 22 V VV V */ -/* 23 V VV V */ - -/* 24 V VVM SET WINDOW */ -{0x24, S, "SET WINDOW"}, - -/* 25 M M M READ CAPACITY */ -{0x25, D|W|O, "READ CAPACITY"}, -/* 25 M READ CD RECORDED CAPACITY */ -{0x25, R, "READ CD RECORDED CAPACITY"}, -/* 25 O GET WINDOW */ -{0x25, S, "GET WINDOW"}, - -/* 26 V VV */ -/* 27 V VV */ - -/* 28 M MMMM READ(10) */ -{0x28, D|W|R|S|O, "READ(10)"}, -/* 28 O GET MESSAGE(10) */ -{0x28, C, "GET MESSAGE(10)"}, - -/* 29 V VV O READ GENERATION */ -{0x29, O, "READ GENERATION"}, - -/* 2A M MM M WRITE(10) */ -{0x2A, D|W|R|O, "WRITE(10)"}, -/* 2A O SEND(10) */ -{0x2A, S, "SEND(10)"}, -/* 2A O SEND MESSAGE(10) */ -{0x2A, C, "SEND MESSAGE(10)"}, - -/* 2B O OM O SEEK(10) */ -{0x2B, D|W|R|O, "SEEK(10)"}, -/* 2B O LOCATE */ -{0x2B, T, "LOCATE"}, -/* 2B O POSITION TO ELEMENT */ -{0x2B, M, "POSITION TO ELEMENT"}, - -/* 2C V O ERASE(10) */ -{0x2C, O, "ERASE(10)"}, - -/* 2D V O O READ UPDATED BLOCK */ -{0x2D, W|O, "READ UPDATED BLOCK"}, - -/* 2E O O O WRITE AND VERIFY(10) */ -{0x2E, D|W|O, "WRITE AND VERIFY(10)"}, - -/* 2F O OO O VERIFY(10) */ -{0x2F, D|W|R|O, "VERIFY(10)"}, - -/* 30 Z ZO Z SEARCH DATA HIGH(10) */ -{0x30, D|W|R|O, "SEARCH DATA HIGH(10)"}, - -/* 31 Z ZO Z SEARCH DATA EQUAL(10) */ -{0x31, D|W|R|O, "SEARCH DATA EQUAL(10)"}, -/* 31 O OBJECT POSITION */ -{0x31, S, "OBJECT POSITION"}, - -/* 32 Z ZO Z SEARCH DATA LOW(10) */ -{0x32, D|W|R|O, "SEARCH DATA LOW(10"}, - -/* 33 O OO O SET LIMITS(10) */ -{0x33, D|W|R|O, "SET LIMITS(10)"}, - -/* 34 O OO O PRE-FETCH */ -{0x34, D|W|R|O, "PRE-FETCH"}, -/* 34 O READ POSITION */ -{0x34, T, "READ POSITION"}, -/* 34 O GET DATA BUFFER STATUS */ -{0x34, S, "GET DATA BUFFER STATUS"}, - -/* 35 O OM O SYNCHRONIZE CACHE */ -{0x35, D|W|R|O, "SYNCHRONIZE CACHE"}, - -/* 36 O OO O LOCK UNLOCK CACHE */ -{0x36, D|W|R|O, "LOCK UNLOCK CACHE"}, - -/* 37 O O READ DEFECT DATA(10) */ -{0x37, D|O, "READ DEFECT DATA(10)"}, - -/* 38 O O MEDIUM SCAN */ -{0x38, W|O, "MEDIUM SCAN"}, - -/* 39 OOOOOOOO COMPARE */ -{0x39, ALL & ~(M|C|A|E), "COMPARE"}, - -/* 3A OOOOOOOO COPY AND VERIFY */ -{0x3A, ALL & ~(M|C|A|E), "COPY AND VERIFY"}, - -/* 3B OOOOOOOOOO O WRITE BUFFER */ -{0x3B, ALL & ~(A), "WRITE BUFFER"}, - -/* 3C OOOOOOOOOO READ BUFFER */ -{0x3C, ALL & ~(A|E),"READ BUFFER"}, - -/* 3D O O UPDATE BLOCK */ -{0x3D, W|O, "UPDATE BLOCK"}, - -/* 3E O OO O READ LONG */ -{0x3E, D|W|R|O, "READ LONG"}, - -/* 3F O O O WRITE LONG */ -{0x3F, D|W|O, "WRITE LONG"}, - -/* 40 OOOOOOOOOO CHANGE DEFINITION */ -{0x40, ALL & ~(A|E),"CHANGE DEFINITION"}, - -/* 41 O WRITE SAME */ -{0x41, D, "WRITE SAME"}, - -/* 42 M READ SUB-CHANNEL */ -{0x42, R, "READ SUB-CHANNEL"}, - -/* 43 M READ TOC/PMA/ATIP {MMC Proposed} */ -{0x43, R, "READ TOC/PMA/ATIP {MMC Proposed}"}, - -/* 44 M REPORT DENSITY SUPPORT */ -{0x44, T, "REPORT DENSITY SUPPORT"}, -/* 44 M READ HEADER */ -{0x44, R, "READ HEADER"}, - -/* 45 O PLAY AUDIO(10) */ -{0x45, R, "PLAY AUDIO(10)"}, - -/* 46 */ - -/* 47 O PLAY AUDIO MSF */ -{0x47, R, "PLAY AUDIO MSF"}, - -/* 48 O PLAY AUDIO TRACK INDEX */ -{0x48, R, "PLAY AUDIO TRACK INDEX"}, - -/* 49 O PLAY TRACK RELATIVE(10) */ -{0x49, R, "PLAY TRACK RELATIVE(10)"}, - -/* 4A */ - -/* 4B O PAUSE/RESUME */ -{0x4B, R, "PAUSE/RESUME"}, - -/* 4C OOOOOOOOOOO LOG SELECT */ -{0x4C, ALL & ~(E), "LOG SELECT"}, - -/* 4D OOOOOOOOOOO LOG SENSE */ -{0x4D, ALL & ~(E), "LOG SENSE"}, - -/* 4E O STOP PLAY/SCAN {MMC Proposed} */ -{0x4E, R, "STOP PLAY/SCAN {MMC Proposed}"}, - -/* 4F */ - -/* 50 O XDWRITE(10) */ -{0x50, D, "XDWRITE(10)"}, - -/* 51 O XPWRITE(10) */ -{0x51, D, "XPWRITE(10)"}, -/* 51 M READ DISC INFORMATION {MMC Proposed} */ -{0x51, R, "READ DISC INFORMATION {MMC Proposed}"}, - -/* 52 O XDREAD(10) */ -{0x52, D, "XDREAD(10)"}, -/* 52 M READ TRACK INFORMATION {MMC Proposed} */ -{0x52, R, "READ TRACK INFORMATION {MMC Proposed}"}, - -/* 53 M RESERVE TRACK {MMC Proposed} */ -{0x53, R, "RESERVE TRACK {MMC Proposed}"}, - -/* 54 O SEND OPC INFORMATION {MMC Proposed} */ -{0x54, R, "SEND OPC INFORMATION {MMC Proposed}"}, - -/* 55 OOO OOOOOOOO MODE SELECT(10) */ -{0x55, ALL & ~(P), "MODE SELECT(10)"}, - -/* 56 MMMOMMMM O RESERVE(10) */ -{0x56, ALL & ~(M|C|A), "RESERVE(10)"}, -/* 56 M RESERVE ELEMENT(10) */ -{0x56, M, "RESERVE ELEMENT(10)"}, - -/* 57 MMMOMMMM O RELEASE(10) */ -{0x57, ALL & ~(M|C|A), "RELEASE(10"}, -/* 57 M RELEASE ELEMENT(10) */ -{0x57, M, "RELEASE ELEMENT(10)"}, - -/* 58 O REPAIR TRACK {MMC Proposed} */ -{0x58, R, "REPAIR TRACK {MMC Proposed}"}, - -/* 59 O READ MASTER CUE {MMC Proposed} */ -{0x59, R, "READ MASTER CUE {MMC Proposed}"}, - -/* 5A OOO OOOOOOOO MODE SENSE(10) */ -{0x5A, ALL & ~(P), "MODE SENSE(10)"}, - -/* 5B M CLOSE TRACK/SESSION {MMC Proposed} */ -{0x5B, R, "CLOSE TRACK/SESSION {MMC Proposed}"}, - -/* 5C O READ BUFFER CAPACITY {MMC Proposed} */ -{0x5C, R, "READ BUFFER CAPACITY {MMC Proposed}"}, - -/* 5D O SEND CUE SHEET {MMC Proposed} */ -{0x5D, R, "SEND CUE SHEET {MMC Proposed}"}, - -/* 5E OOOOOOOOO O PERSISTENT RESERVE IN */ -{0x5E, ALL & ~(C|A),"PERSISTENT RESERVE IN"}, - -/* 5F OOOOOOOOO O PERSISTENT RESERVE OUT */ -{0x5F, ALL & ~(C|A),"PERSISTENT RESERVE OUT"}, - -/* 80 O XDWRITE EXTENDED(16) */ -{0x80, D, "XDWRITE EXTENDED(16)"}, - -/* 81 O REBUILD(16) */ -{0x81, D, "REBUILD(16)"}, - -/* 82 O REGENERATE(16) */ -{0x82, D, "REGENERATE(16)"}, - -/* 83 */ -/* 84 */ -/* 85 */ -/* 86 */ -/* 87 */ -/* 88 MM OO O O READ(16) */ -{0x88, D|T|W|R|O, "READ(16)"}, -/* 89 */ -/* 8A OM O O O WRITE(16) */ -{0x8A, D|T|W|R|O, "WRITE(16)"}, -/* 8B */ -/* 8C */ -/* 8D */ -/* 8E */ -/* 8F */ -/* 90 */ -/* 91 */ -/* 92 */ -/* 93 */ -/* 94 */ -/* 95 */ -/* 96 */ -/* 97 */ -/* 98 */ -/* 99 */ -/* 9A */ -/* 9B */ -/* 9C */ -/* 9D */ -/* XXX KDM ALL for these? op-num.txt defines them for none.. */ -/* 9E SERVICE ACTION IN(16) */ -{0x9E, ALL, "SERVICE ACTION IN(16)"}, -/* 9F SERVICE ACTION OUT(16) */ -{0x9F, ALL, "SERVICE ACTION OUT(16)"}, - -/* A0 OOOOOOOOOOO REPORT LUNS */ -{0xA0, ALL & ~(E), "REPORT LUNS"}, - -/* A1 O BLANK {MMC Proposed} */ -{0xA1, R, "BLANK {MMC Proposed}"}, - -/* A2 O WRITE CD MSF {MMC Proposed} */ -{0xA2, R, "WRITE CD MSF {MMC Proposed}"}, - -/* A3 M MAINTENANCE (IN) */ -{0xA3, A, "MAINTENANCE (IN)"}, - -/* A4 O MAINTENANCE (OUT) */ -{0xA4, A, "MAINTENANCE (OUT)"}, - -/* A5 O M MOVE MEDIUM */ -{0xA5, T|M, "MOVE MEDIUM"}, -/* A5 O PLAY AUDIO(12) */ -{0xA5, R, "PLAY AUDIO(12)"}, - -/* A6 O EXCHANGE MEDIUM */ -{0xA6, M, "EXCHANGE MEDIUM"}, -/* A6 O LOAD/UNLOAD CD {MMC Proposed} */ -{0xA6, R, "LOAD/UNLOAD CD {MMC Proposed}"}, - -/* A7 OO OO OO MOVE MEDIUM ATTACHED */ -{0xA7, D|T|W|R|O|M, "MOVE MEDIUM ATTACHED"}, - -/* A8 O OM O READ(12) */ -{0xA8,D|W|R|O, "READ(12)"}, -/* A8 O GET MESSAGE(12) */ -{0xA8, C, "GET MESSAGE(12)"}, - -/* A9 O PLAY TRACK RELATIVE(12) */ -{0xA9, R, "PLAY TRACK RELATIVE(12)"}, - -/* AA O O O WRITE(12) */ -{0xAA,D|W|O, "WRITE(12)"}, -/* AA O WRITE CD(12) {MMC Proposed} */ -{0xAA, R, "WRITE CD(12) {MMC Proposed}"}, -/* AA O SEND MESSAGE(12) */ -{0xAA, C, "SEND MESSAGE(12)"}, - -/* AB */ - -/* AC O ERASE(12) */ -{0xAC, O, "ERASE(12)"}, - -/* AD */ - -/* AE O O WRITE AND VERIFY(12) */ -{0xAE, W|O, "WRITE AND VERIFY(12)"}, - -/* AF OO O VERIFY(12) */ -{0xAF, W|R|O, "VERIFY(12)"}, - -/* B0 ZO Z SEARCH DATA HIGH(12) */ -{0xB0, W|R|O, "SEARCH DATA HIGH(12)"}, - -/* B1 ZO Z SEARCH DATA EQUAL(12) */ -{0xB1, W|R|O, "SEARCH DATA EQUAL(12)"}, - -/* B2 ZO Z SEARCH DATA LOW(12) */ -{0xB2, W|R|O, "SEARCH DATA LOW(12)"}, - -/* B3 OO O SET LIMITS(12) */ -{0xB3, W|R|O, "SET LIMITS(12)"}, - -/* B4 OO OO OO READ ELEMENT STATUS ATTACHED */ -{0xB4, D|T|W|R|O|M, "READ ELEMENT STATUS ATTACHED"}, - -/* B5 O REQUEST VOLUME ELEMENT ADDRESS */ -{0xB5, M, "REQUEST VOLUME ELEMENT ADDRESS"}, - -/* B6 O SEND VOLUME TAG */ -{0xB6, M, "SEND VOLUME TAG"}, - -/* B7 O READ DEFECT DATA(12) */ -{0xB7, O, "READ DEFECT DATA(12)"}, - -/* B8 O M READ ELEMENT STATUS */ -{0xB8, T|M, "READ ELEMENT STATUS"}, -/* B8 O SET CD SPEED {MMC Proposed} */ -{0xB8, R, "SET CD SPEED {MMC Proposed}"}, - -/* B9 M READ CD MSF {MMC Proposed} */ -{0xB9, R, "READ CD MSF {MMC Proposed}"}, - -/* BA O SCAN {MMC Proposed} */ -{0xBA, R, "SCAN {MMC Proposed}"}, -/* BA M REDUNDANCY GROUP (IN) */ -{0xBA, A, "REDUNDANCY GROUP (IN)"}, - -/* BB O SET CD-ROM SPEED {proposed} */ -{0xBB, R, "SET CD-ROM SPEED {proposed}"}, -/* BB O REDUNDANCY GROUP (OUT) */ -{0xBB, A, "REDUNDANCY GROUP (OUT)"}, - -/* BC O PLAY CD {MMC Proposed} */ -{0xBC, R, "PLAY CD {MMC Proposed}"}, -/* BC M SPARE (IN) */ -{0xBC, A, "SPARE (IN)"}, - -/* BD M MECHANISM STATUS {MMC Proposed} */ -{0xBD, R, "MECHANISM STATUS {MMC Proposed}"}, -/* BD O SPARE (OUT) */ -{0xBD, A, "SPARE (OUT)"}, - -/* BE O READ CD {MMC Proposed} */ -{0xBE, R, "READ CD {MMC Proposed}"}, -/* BE M VOLUME SET (IN) */ -{0xBE, A, "VOLUME SET (IN)"}, - -/* BF O VOLUME SET (OUT) */ -{0xBF, A, "VOLUME SET (OUT)"} + /* + * From: http://www.t10.org/lists/op-num.txt + * Modifications by Kenneth Merry (ken@FreeBSD.ORG) + * and Jung-uk Kim (jkim@FreeBSD.org) + * + * Note: order is important in this table, scsi_op_desc() currently + * depends on the opcodes in the table being in order to save + * search time. + * Note: scanner and comm. devices are carried over from the previous + * version because they were removed in the latest spec. + */ + /* File: OP-NUM.TXT + * + * SCSI Operation Codes + * Numeric Sorted Listing + * as of 3/11/08 + * + * D - DIRECT ACCESS DEVICE (SBC-2) device column key + * .T - SEQUENTIAL ACCESS DEVICE (SSC-2) ----------------- + * . L - PRINTER DEVICE (SSC) M = Mandatory + * . P - PROCESSOR DEVICE (SPC) O = Optional + * . .W - WRITE ONCE READ MULTIPLE DEVICE (SBC-2) V = Vendor spec. + * . . R - CD/DVE DEVICE (MMC-3) Z = Obsolete + * . . O - OPTICAL MEMORY DEVICE (SBC-2) + * . . .M - MEDIA CHANGER DEVICE (SMC-2) + * . . . A - STORAGE ARRAY DEVICE (SCC-2) + * . . . .E - ENCLOSURE SERVICES DEVICE (SES) + * . . . .B - SIMPLIFIED DIRECT-ACCESS DEVICE (RBC) + * . . . . K - OPTICAL CARD READER/WRITER DEVICE (OCRW) + * . . . . V - AUTOMATION/DRIVE INTERFACE (ADC) + * . . . . .F - OBJECT-BASED STORAGE (OSD) + * OP DTLPWROMAEBKVF Description + * -- -------------- ---------------------------------------------- */ + /* 00 MMMMMMMMMMMMMM TEST UNIT READY */ + { 0x00, ALL, "TEST UNIT READY" }, + /* 01 M REWIND */ + { 0x01, T, "REWIND" }, + /* 01 Z V ZZZZ REZERO UNIT */ + { 0x01, D | W | R | O | M, "REZERO UNIT" }, + /* 02 VVVVVV V */ + /* 03 MMMMMMMMMMOMMM REQUEST SENSE */ + { 0x03, ALL, "REQUEST SENSE" }, + /* 04 M OO FORMAT UNIT */ + { 0x04, D | R | O, "FORMAT UNIT" }, + /* 04 O FORMAT MEDIUM */ + { 0x04, T, "FORMAT MEDIUM" }, + /* 04 O FORMAT */ + { 0x04, L, "FORMAT" }, + /* 05 VMVVVV V READ BLOCK LIMITS */ + { 0x05, T, "READ BLOCK LIMITS" }, + /* 06 VVVVVV V */ + /* 07 OVV O OV REASSIGN BLOCKS */ + { 0x07, D | W | O, "REASSIGN BLOCKS" }, + /* 07 O INITIALIZE ELEMENT STATUS */ + { 0x07, M, "INITIALIZE ELEMENT STATUS" }, + /* 08 MOV O OV READ(6) */ + { 0x08, D | T | W | O, "READ(6)" }, + /* 08 O RECEIVE */ + { 0x08, P, "RECEIVE" }, + /* 08 GET MESSAGE(6) */ + { 0x08, C, "GET MESSAGE(6)" }, + /* 09 VVVVVV V */ + /* 0A OO O OV WRITE(6) */ + { 0x0A, D | T | W | O, "WRITE(6)" }, + /* 0A M SEND(6) */ + { 0x0A, P, "SEND(6)" }, + /* 0A SEND MESSAGE(6) */ + { 0x0A, C, "SEND MESSAGE(6)" }, + /* 0A M PRINT */ + { 0x0A, L, "PRINT" }, + /* 0B Z ZOZV SEEK(6) */ + { 0x0B, D | W | R | O, "SEEK(6)" }, + /* 0B O SET CAPACITY */ + { 0x0B, T, "SET CAPACITY" }, + /* 0B O SLEW AND PRINT */ + { 0x0B, L, "SLEW AND PRINT" }, + /* 0C VVVVVV V */ + /* 0D VVVVVV V */ + /* 0E VVVVVV V */ + /* 0F VOVVVV V READ REVERSE(6) */ + { 0x0F, T, "READ REVERSE(6)" }, + /* 10 VM VVV WRITE FILEMARKS(6) */ + { 0x10, T, "WRITE FILEMARKS(6)" }, + /* 10 O SYNCHRONIZE BUFFER */ + { 0x10, L, "SYNCHRONIZE BUFFER" }, + /* 11 VMVVVV SPACE(6) */ + { 0x11, T, "SPACE(6)" }, + /* 12 MMMMMMMMMMMMMM INQUIRY */ + { 0x12, ALL, "INQUIRY" }, + /* 13 V VVVV */ + /* 13 O VERIFY(6) */ + { 0x13, T, "VERIFY(6)" }, + /* 14 VOOVVV RECOVER BUFFERED DATA */ + { 0x14, T | L, "RECOVER BUFFERED DATA" }, + /* 15 OMO O OOOO OO MODE SELECT(6) */ + { 0x15, ALL & ~(P | R | B | F), "MODE SELECT(6)" }, + /* 16 ZZMZO OOOZ O RESERVE(6) */ + { 0x16, ALL & ~(R | B | V | F | C), "RESERVE(6)" }, + /* 16 Z RESERVE ELEMENT(6) */ + { 0x16, M, "RESERVE ELEMENT(6)" }, + /* 17 ZZMZO OOOZ O RELEASE(6) */ + { 0x17, ALL & ~(R | B | V | F | C), "RELEASE(6)" }, + /* 17 Z RELEASE ELEMENT(6) */ + { 0x17, M, "RELEASE ELEMENT(6)" }, + /* 18 ZZZZOZO Z COPY */ + { 0x18, D | T | L | P | W | R | O | K | S, "COPY" }, + /* 19 VMVVVV ERASE(6) */ + { 0x19, T, "ERASE(6)" }, + /* 1A OMO O OOOO OO MODE SENSE(6) */ + { 0x1A, ALL & ~(P | R | B | F), "MODE SENSE(6)" }, + /* 1B O OOO O MO O START STOP UNIT */ + { 0x1B, D | W | R | O | A | B | K | F, "START STOP UNIT" }, + /* 1B O M LOAD UNLOAD */ + { 0x1B, T | V, "LOAD UNLOAD" }, + /* 1B SCAN */ + { 0x1B, S, "SCAN" }, + /* 1B O STOP PRINT */ + { 0x1B, L, "STOP PRINT" }, + /* 1B O OPEN/CLOSE IMPORT/EXPORT ELEMENT */ + { 0x1B, M, "OPEN/CLOSE IMPORT/EXPORT ELEMENT" }, + /* 1C OOOOO OOOM OOO RECEIVE DIAGNOSTIC RESULTS */ + { 0x1C, ALL & ~(R | B), "RECEIVE DIAGNOSTIC RESULTS" }, + /* 1D MMMMM MMOM MMM SEND DIAGNOSTIC */ + { 0x1D, ALL & ~(R | B), "SEND DIAGNOSTIC" }, + /* 1E OO OOOO O O PREVENT ALLOW MEDIUM REMOVAL */ + { 0x1E, D | T | W | R | O | M | K | F, "PREVENT ALLOW MEDIUM REMOVAL" }, + /* 1F */ + /* 20 V VVV V */ + /* 21 V VVV V */ + /* 22 V VVV V */ + /* 23 V V V V */ + /* 23 O READ FORMAT CAPACITIES */ + { 0x23, R, "READ FORMAT CAPACITIES" }, + /* 24 V VV SET WINDOW */ + { 0x24, S, "SET WINDOW" }, + /* 25 M M M M READ CAPACITY(10) */ + { 0x25, D | W | O | B, "READ CAPACITY(10)" }, + /* 25 O READ CAPACITY */ + { 0x25, R, "READ CAPACITY" }, + /* 25 M READ CARD CAPACITY */ + { 0x25, K, "READ CARD CAPACITY" }, + /* 25 GET WINDOW */ + { 0x25, S, "GET WINDOW" }, + /* 26 V VV */ + /* 27 V VV */ + /* 28 M MOM MM READ(10) */ + { 0x28, D | W | R | O | B | K | S, "READ(10)" }, + /* 28 GET MESSAGE(10) */ + { 0x28, C, "GET MESSAGE(10)" }, + /* 29 V VVO READ GENERATION */ + { 0x29, O, "READ GENERATION" }, + /* 2A O MOM MO WRITE(10) */ + { 0x2A, D | W | R | O | B | K, "WRITE(10)" }, + /* 2A SEND(10) */ + { 0x2A, S, "SEND(10)" }, + /* 2A SEND MESSAGE(10) */ + { 0x2A, C, "SEND MESSAGE(10)" }, + /* 2B Z OOO O SEEK(10) */ + { 0x2B, D | W | R | O | K, "SEEK(10)" }, + /* 2B O LOCATE(10) */ + { 0x2B, T, "LOCATE(10)" }, + /* 2B O POSITION TO ELEMENT */ + { 0x2B, M, "POSITION TO ELEMENT" }, + /* 2C V OO ERASE(10) */ + { 0x2C, R | O, "ERASE(10)" }, + /* 2D O READ UPDATED BLOCK */ + { 0x2D, O, "READ UPDATED BLOCK" }, + /* 2D V */ + /* 2E O OOO MO WRITE AND VERIFY(10) */ + { 0x2E, D | W | R | O | B | K, "WRITE AND VERIFY(10)" }, + /* 2F O OOO VERIFY(10) */ + { 0x2F, D | W | R | O, "VERIFY(10)" }, + /* 30 Z ZZZ SEARCH DATA HIGH(10) */ + { 0x30, D | W | R | O, "SEARCH DATA HIGH(10)" }, + /* 31 Z ZZZ SEARCH DATA EQUAL(10) */ + { 0x31, D | W | R | O, "SEARCH DATA EQUAL(10)" }, + /* 31 OBJECT POSITION */ + { 0x31, S, "OBJECT POSITION" }, + /* 32 Z ZZZ SEARCH DATA LOW(10) */ + { 0x32, D | W | R | O, "SEARCH DATA LOW(10)" }, + /* 33 Z OZO SET LIMITS(10) */ + { 0x33, D | W | R | O, "SET LIMITS(10)" }, + /* 34 O O O O PRE-FETCH(10) */ + { 0x34, D | W | O | K, "PRE-FETCH(10)" }, + /* 34 M READ POSITION */ + { 0x34, T, "READ POSITION" }, + /* 34 GET DATA BUFFER STATUS */ + { 0x34, S, "GET DATA BUFFER STATUS" }, + /* 35 O OOO MO SYNCHRONIZE CACHE(10) */ + { 0x35, D | W | R | O | B | K, "SYNCHRONIZE CACHE(10)" }, + /* 36 Z O O O LOCK UNLOCK CACHE(10) */ + { 0x36, D | W | O | K, "LOCK UNLOCK CACHE(10)" }, + /* 37 O O READ DEFECT DATA(10) */ + { 0x37, D | O, "READ DEFECT DATA(10)" }, + /* 37 O INITIALIZE ELEMENT STATUS WITH RANGE */ + { 0x37, M, "INITIALIZE ELEMENT STATUS WITH RANGE" }, + /* 38 O O O MEDIUM SCAN */ + { 0x38, W | O | K, "MEDIUM SCAN" }, + /* 39 ZZZZOZO Z COMPARE */ + { 0x39, D | T | L | P | W | R | O | K | S, "COMPARE" }, + /* 3A ZZZZOZO Z COPY AND VERIFY */ + { 0x3A, D | T | L | P | W | R | O | K | S, "COPY AND VERIFY" }, + /* 3B OOOOOOOOOOMOOO WRITE BUFFER */ + { 0x3B, ALL, "WRITE BUFFER" }, + /* 3C OOOOOOOOOO OOO READ BUFFER */ + { 0x3C, ALL & ~(B), "READ BUFFER" }, + /* 3D O UPDATE BLOCK */ + { 0x3D, O, "UPDATE BLOCK" }, + /* 3E O O O READ LONG(10) */ + { 0x3E, D | W | O, "READ LONG(10)" }, + /* 3F O O O WRITE LONG(10) */ + { 0x3F, D | W | O, "WRITE LONG(10)" }, + /* 40 ZZZZOZOZ CHANGE DEFINITION */ + { 0x40, D | T | L | P | W | R | O | M | S | C, "CHANGE DEFINITION" }, + /* 41 O WRITE SAME(10) */ + { 0x41, D, "WRITE SAME(10)" }, + /* 42 O READ SUB-CHANNEL */ + { 0x42, R, "READ SUB-CHANNEL" }, + /* 43 O READ TOC/PMA/ATIP */ + { 0x43, R, "READ TOC/PMA/ATIP" }, + /* 44 M M REPORT DENSITY SUPPORT */ + { 0x44, T | V, "REPORT DENSITY SUPPORT" }, + /* 44 READ HEADER */ + /* 45 O PLAY AUDIO(10) */ + { 0x45, R, "PLAY AUDIO(10)" }, + /* 46 M GET CONFIGURATION */ + { 0x46, R, "GET CONFIGURATION" }, + /* 47 O PLAY AUDIO MSF */ + { 0x47, R, "PLAY AUDIO MSF" }, + /* 48 */ + /* 49 */ + /* 4A M GET EVENT STATUS NOTIFICATION */ + { 0x4A, R, "GET EVENT STATUS NOTIFICATION" }, + /* 4B O PAUSE/RESUME */ + { 0x4B, R, "PAUSE/RESUME" }, + /* 4C OOOOO OOOO OOO LOG SELECT */ + { 0x4C, ALL & ~(R | B), "LOG SELECT" }, + /* 4D OOOOO OOOO OMO LOG SENSE */ + { 0x4D, ALL & ~(R | B), "LOG SENSE" }, + /* 4E O STOP PLAY/SCAN */ + { 0x4E, R, "STOP PLAY/SCAN" }, + /* 4F */ + /* 50 O XDWRITE(10) */ + { 0x50, D, "XDWRITE(10)" }, + /* 51 O XPWRITE(10) */ + { 0x51, D, "XPWRITE(10)" }, + /* 51 O READ DISC INFORMATION */ + { 0x51, R, "READ DISC INFORMATION" }, + /* 52 O XDREAD(10) */ + { 0x52, D, "XDREAD(10)" }, + /* 52 O READ TRACK INFORMATION */ + { 0x52, R, "READ TRACK INFORMATION" }, + /* 53 O RESERVE TRACK */ + { 0x53, R, "RESERVE TRACK" }, + /* 54 O SEND OPC INFORMATION */ + { 0x54, R, "SEND OPC INFORMATION" }, + /* 55 OOO OMOOOOMOMO MODE SELECT(10) */ + { 0x55, ALL & ~(P), "MODE SELECT(10)" }, + /* 56 ZZMZO OOOZ RESERVE(10) */ + { 0x56, ALL & ~(R | B | K | V | F | C), "RESERVE(10)" }, + /* 56 Z RESERVE ELEMENT(10) */ + { 0x56, M, "RESERVE ELEMENT(10)" }, + /* 57 ZZMZO OOOZ RELEASE(10) */ + { 0x57, ALL & ~(R | B | K | V | F | C), "RELEASE(10)" }, + /* 57 Z RELEASE ELEMENT(10) */ + { 0x57, M, "RELEASE ELEMENT(10)" }, + /* 58 O REPAIR TRACK */ + { 0x58, R, "REPAIR TRACK" }, + /* 59 */ + /* 5A OOO OMOOOOMOMO MODE SENSE(10) */ + { 0x5A, ALL & ~(P), "MODE SENSE(10)" }, + /* 5B O CLOSE TRACK/SESSION */ + { 0x5B, R, "CLOSE TRACK/SESSION" }, + /* 5C O READ BUFFER CAPACITY */ + { 0x5C, R, "READ BUFFER CAPACITY" }, + /* 5D O SEND CUE SHEET */ + { 0x5D, R, "SEND CUE SHEET" }, + /* 5E OOOOO OOOO M PERSISTENT RESERVE IN */ + { 0x5E, ALL & ~(R | B | K | V | C), "PERSISTENT RESERVE IN" }, + /* 5F OOOOO OOOO M PERSISTENT RESERVE OUT */ + { 0x5F, ALL & ~(R | B | K | V | C), "PERSISTENT RESERVE OUT" }, + /* 7E OO O OOOO O extended CDB */ + { 0x7E, D | T | R | M | A | E | B | V, "extended CDB" }, + /* 7F O M variable length CDB (more than 16 bytes) */ + { 0x7F, D | F, "variable length CDB (more than 16 bytes)" }, + /* 80 Z XDWRITE EXTENDED(16) */ + { 0x80, D, "XDWRITE EXTENDED(16)" }, + /* 80 M WRITE FILEMARKS(16) */ + { 0x80, T, "WRITE FILEMARKS(16)" }, + /* 81 Z REBUILD(16) */ + { 0x81, D, "REBUILD(16)" }, + /* 81 O READ REVERSE(16) */ + { 0x81, T, "READ REVERSE(16)" }, + /* 82 Z REGENERATE(16) */ + { 0x82, D, "REGENERATE(16)" }, + /* 83 OOOOO O OO EXTENDED COPY */ + { 0x83, D | T | L | P | W | O | K | V, "EXTENDED COPY" }, + /* 84 OOOOO O OO RECEIVE COPY RESULTS */ + { 0x84, D | T | L | P | W | O | K | V, "RECEIVE COPY RESULTS" }, + /* 85 O O O ATA COMMAND PASS THROUGH(16) */ + { 0x85, D | R | B, "ATA COMMAND PASS THROUGH(16)" }, + /* 86 OO OO OOOOOOO ACCESS CONTROL IN */ + { 0x86, ALL & ~(L | R | F), "ACCESS CONTROL IN" }, + /* 87 OO OO OOOOOOO ACCESS CONTROL OUT */ + { 0x87, ALL & ~(L | R | F), "ACCESS CONTROL OUT" }, + /* + * XXX READ(16)/WRITE(16) were not listed for CD/DVE in op-num.txt + * but we had it since r1.40. Do we really want them? + */ + /* 88 MM O O O READ(16) */ + { 0x88, D | T | W | O | B, "READ(16)" }, + /* 89 */ + /* 8A OM O O O WRITE(16) */ + { 0x8A, D | T | W | O | B, "WRITE(16)" }, + /* 8B O ORWRITE */ + { 0x8B, D, "ORWRITE" }, + /* 8C OO O OO O M READ ATTRIBUTE */ + { 0x8C, D | T | W | O | M | B | V, "READ ATTRIBUTE" }, + /* 8D OO O OO O O WRITE ATTRIBUTE */ + { 0x8D, D | T | W | O | M | B | V, "WRITE ATTRIBUTE" }, + /* 8E O O O O WRITE AND VERIFY(16) */ + { 0x8E, D | W | O | B, "WRITE AND VERIFY(16)" }, + /* 8F OO O O O VERIFY(16) */ + { 0x8F, D | T | W | O | B, "VERIFY(16)" }, + /* 90 O O O O PRE-FETCH(16) */ + { 0x90, D | W | O | B, "PRE-FETCH(16)" }, + /* 91 O O O O SYNCHRONIZE CACHE(16) */ + { 0x91, D | W | O | B, "SYNCHRONIZE CACHE(16)" }, + /* 91 O SPACE(16) */ + { 0x91, T, "SPACE(16)" }, + /* 92 Z O O LOCK UNLOCK CACHE(16) */ + { 0x92, D | W | O, "LOCK UNLOCK CACHE(16)" }, + /* 92 O LOCATE(16) */ + { 0x92, T, "LOCATE(16)" }, + /* 93 O WRITE SAME(16) */ + { 0x93, D, "WRITE SAME(16)" }, + /* 93 M ERASE(16) */ + { 0x93, T, "ERASE(16)" }, + /* 94 [usage proposed by SCSI Socket Services project] */ + /* 95 [usage proposed by SCSI Socket Services project] */ + /* 96 [usage proposed by SCSI Socket Services project] */ + /* 97 [usage proposed by SCSI Socket Services project] */ + /* 98 */ + /* 99 */ + /* 9A */ + /* 9B */ + /* 9C */ + /* 9D */ + /* XXX KDM ALL for this? op-num.txt defines it for none.. */ + /* 9E SERVICE ACTION IN(16) */ + { 0x9E, ALL, "SERVICE ACTION IN(16)" }, + /* XXX KDM ALL for this? op-num.txt defines it for ADC.. */ + /* 9F M SERVICE ACTION OUT(16) */ + { 0x9F, ALL, "SERVICE ACTION OUT(16)" }, + /* A0 MMOOO OMMM OMO REPORT LUNS */ + { 0xA0, ALL & ~(R | B), "REPORT LUNS" }, + /* A1 O BLANK */ + { 0xA1, R, "BLANK" }, + /* A1 O O ATA COMMAND PASS THROUGH(12) */ + { 0xA1, D | B, "ATA COMMAND PASS THROUGH(12)" }, + /* A2 OO O O SECURITY PROTOCOL IN */ + { 0xA2, D | T | R | V, "SECURITY PROTOCOL IN" }, + /* A3 OOO O OOMOOOM MAINTENANCE (IN) */ + { 0xA3, ALL & ~(P | R | F), "MAINTENANCE (IN)" }, + /* A3 O SEND KEY */ + { 0xA3, R, "SEND KEY" }, + /* A4 OOO O OOOOOOO MAINTENANCE (OUT) */ + { 0xA4, ALL & ~(P | R | F), "MAINTENANCE (OUT)" }, + /* A4 O REPORT KEY */ + { 0xA4, R, "REPORT KEY" }, + /* A5 O O OM MOVE MEDIUM */ + { 0xA5, T | W | O | M, "MOVE MEDIUM" }, + /* A5 O PLAY AUDIO(12) */ + { 0xA5, R, "PLAY AUDIO(12)" }, + /* A6 O EXCHANGE MEDIUM */ + { 0xA6, M, "EXCHANGE MEDIUM" }, + /* A6 O LOAD/UNLOAD C/DVD */ + { 0xA6, R, "LOAD/UNLOAD C/DVD" }, + /* A7 ZZ O O MOVE MEDIUM ATTACHED */ + { 0xA7, D | T | W | O, "MOVE MEDIUM ATTACHED" }, + /* A7 O SET READ AHEAD */ + { 0xA7, R, "SET READ AHEAD" }, + /* A8 O OOO READ(12) */ + { 0xA8, D | W | R | O, "READ(12)" }, + /* A8 GET MESSAGE(12) */ + { 0xA8, C, "GET MESSAGE(12)" }, + /* A9 O SERVICE ACTION OUT(12) */ + { 0xA9, V, "SERVICE ACTION OUT(12)" }, + /* AA O OOO WRITE(12) */ + { 0xAA, D | W | R | O, "WRITE(12)" }, + /* AA SEND MESSAGE(12) */ + { 0xAA, C, "SEND MESSAGE(12)" }, + /* AB O O SERVICE ACTION IN(12) */ + { 0xAB, R | V, "SERVICE ACTION IN(12)" }, + /* AC O ERASE(12) */ + { 0xAC, O, "ERASE(12)" }, + /* AC O GET PERFORMANCE */ + { 0xAC, R, "GET PERFORMANCE" }, + /* AD O READ DVD STRUCTURE */ + { 0xAD, R, "READ DVD STRUCTURE" }, + /* AE O O O WRITE AND VERIFY(12) */ + { 0xAE, D | W | O, "WRITE AND VERIFY(12)" }, + /* AF O OZO VERIFY(12) */ + { 0xAF, D | W | R | O, "VERIFY(12)" }, + /* B0 ZZZ SEARCH DATA HIGH(12) */ + { 0xB0, W | R | O, "SEARCH DATA HIGH(12)" }, + /* B1 ZZZ SEARCH DATA EQUAL(12) */ + { 0xB1, W | R | O, "SEARCH DATA EQUAL(12)" }, + /* B2 ZZZ SEARCH DATA LOW(12) */ + { 0xB2, W | R | O, "SEARCH DATA LOW(12)" }, + /* B3 Z OZO SET LIMITS(12) */ + { 0xB3, D | W | R | O, "SET LIMITS(12)" }, + /* B4 ZZ OZO READ ELEMENT STATUS ATTACHED */ + { 0xB4, D | T | W | R | O, "READ ELEMENT STATUS ATTACHED" }, + /* B5 OO O O SECURITY PROTOCOL OUT */ + { 0xB5, D | T | R | V, "SECURITY PROTOCOL OUT" }, + /* B5 O REQUEST VOLUME ELEMENT ADDRESS */ + { 0xB5, M, "REQUEST VOLUME ELEMENT ADDRESS" }, + /* B6 O SEND VOLUME TAG */ + { 0xB6, M, "SEND VOLUME TAG" }, + /* B6 O SET STREAMING */ + { 0xB6, R, "SET STREAMING" }, + /* B7 O O READ DEFECT DATA(12) */ + { 0xB7, D | O, "READ DEFECT DATA(12)" }, + /* B8 O OZOM READ ELEMENT STATUS */ + { 0xB8, T | W | R | O | M, "READ ELEMENT STATUS" }, + /* B9 O READ CD MSF */ + { 0xB9, R, "READ CD MSF" }, + /* BA O O OOMO REDUNDANCY GROUP (IN) */ + { 0xBA, D | W | O | M | A | E, "REDUNDANCY GROUP (IN)" }, + /* BA O SCAN */ + { 0xBA, R, "SCAN" }, + /* BB O O OOOO REDUNDANCY GROUP (OUT) */ + { 0xBB, D | W | O | M | A | E, "REDUNDANCY GROUP (OUT)" }, + /* BB O SET CD SPEED */ + { 0xBB, R, "SET CD SPEED" }, + /* BC O O OOMO SPARE (IN) */ + { 0xBC, D | W | O | M | A | E, "SPARE (IN)" }, + /* BD O O OOOO SPARE (OUT) */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200903011624.n21GOvOi048222>