1*bb4ee6a4SAndroid Build Coastguard Worker // Copyright 2023 The ChromiumOS Authors 2*bb4ee6a4SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*bb4ee6a4SAndroid Build Coastguard Worker // found in the LICENSE file. 4*bb4ee6a4SAndroid Build Coastguard Worker 5*bb4ee6a4SAndroid Build Coastguard Worker #![deny(missing_docs)] 6*bb4ee6a4SAndroid Build Coastguard Worker //! This file contains values specified in spec. 7*bb4ee6a4SAndroid Build Coastguard Worker //! SPC-3: <https://www.t10.org/cgi-bin/ac.pl?t=f&f=spc3r23.pdf> 8*bb4ee6a4SAndroid Build Coastguard Worker //! SAM-5: <https://www.t10.org/cgi-bin/ac.pl?t=f&f=sam5r21.pdf> 9*bb4ee6a4SAndroid Build Coastguard Worker 10*bb4ee6a4SAndroid Build Coastguard Worker // SCSI opcodes 11*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for TEST UNIT READY command. 12*bb4ee6a4SAndroid Build Coastguard Worker pub const TEST_UNIT_READY: u8 = 0x00; 13*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for REQUEST SENSE command. 14*bb4ee6a4SAndroid Build Coastguard Worker pub const REQUEST_SENSE: u8 = 0x03; 15*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for READ(6) command. 16*bb4ee6a4SAndroid Build Coastguard Worker pub const READ_6: u8 = 0x08; 17*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for INQUIRY command. 18*bb4ee6a4SAndroid Build Coastguard Worker pub const INQUIRY: u8 = 0x12; 19*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for MODE SELECT(6) command. 20*bb4ee6a4SAndroid Build Coastguard Worker pub const MODE_SELECT_6: u8 = 0x15; 21*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for MODE SENSE(6) command. 22*bb4ee6a4SAndroid Build Coastguard Worker pub const MODE_SENSE_6: u8 = 0x1a; 23*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for READ CAPACITY(10) command. 24*bb4ee6a4SAndroid Build Coastguard Worker pub const READ_CAPACITY_10: u8 = 0x25; 25*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for READ(10) command. 26*bb4ee6a4SAndroid Build Coastguard Worker pub const READ_10: u8 = 0x28; 27*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for WRITE(10) command. 28*bb4ee6a4SAndroid Build Coastguard Worker pub const WRITE_10: u8 = 0x2a; 29*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for SYNCHRONIZE CACHE(10) command. 30*bb4ee6a4SAndroid Build Coastguard Worker pub const SYNCHRONIZE_CACHE_10: u8 = 0x35; 31*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for WRITE SAME(10) command. 32*bb4ee6a4SAndroid Build Coastguard Worker pub const WRITE_SAME_10: u8 = 0x41; 33*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for UNMAP command. 34*bb4ee6a4SAndroid Build Coastguard Worker pub const UNMAP: u8 = 0x42; 35*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for WRITE SAME(16) command. 36*bb4ee6a4SAndroid Build Coastguard Worker pub const WRITE_SAME_16: u8 = 0x93; 37*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for SERVICE ACTION IN(16) command. 38*bb4ee6a4SAndroid Build Coastguard Worker pub const SERVICE_ACTION_IN_16: u8 = 0x9e; 39*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for REPORT LUNS command. 40*bb4ee6a4SAndroid Build Coastguard Worker pub const REPORT_LUNS: u8 = 0xa0; 41*bb4ee6a4SAndroid Build Coastguard Worker /// Opcode for MAINTENANCE IN command. 42*bb4ee6a4SAndroid Build Coastguard Worker pub const MAINTENANCE_IN: u8 = 0xa3; 43*bb4ee6a4SAndroid Build Coastguard Worker 44*bb4ee6a4SAndroid Build Coastguard Worker // The service actions of MAINTENANCE IN command. 45*bb4ee6a4SAndroid Build Coastguard Worker /// REPORT SUPPORTED TASK MANAGEMENT FUNCTIONS 46*bb4ee6a4SAndroid Build Coastguard Worker pub const REPORT_SUPPORTED_TASK_MANAGEMENT_FUNCTIONS: u8 = 0x0d; 47*bb4ee6a4SAndroid Build Coastguard Worker 48*bb4ee6a4SAndroid Build Coastguard Worker // The service actions of SERVICE ACTION IN(16) command. 49*bb4ee6a4SAndroid Build Coastguard Worker /// READ CAPACITY(16) 50*bb4ee6a4SAndroid Build Coastguard Worker pub const READ_CAPACITY_16: u8 = 0x10; 51*bb4ee6a4SAndroid Build Coastguard Worker 52*bb4ee6a4SAndroid Build Coastguard Worker // SAM status code 53*bb4ee6a4SAndroid Build Coastguard Worker /// Indicates the completion of the command without error. 54*bb4ee6a4SAndroid Build Coastguard Worker pub const GOOD: u8 = 0x00; 55*bb4ee6a4SAndroid Build Coastguard Worker /// Indicates that sense data has been delivered in the buffer. 56*bb4ee6a4SAndroid Build Coastguard Worker pub const CHECK_CONDITION: u8 = 0x02; 57*bb4ee6a4SAndroid Build Coastguard Worker 58*bb4ee6a4SAndroid Build Coastguard Worker // Device Types 59*bb4ee6a4SAndroid Build Coastguard Worker /// Indicates the id of disk type. 60*bb4ee6a4SAndroid Build Coastguard Worker pub const TYPE_DISK: u8 = 0x00; 61*bb4ee6a4SAndroid Build Coastguard Worker 62*bb4ee6a4SAndroid Build Coastguard Worker // SENSE KEYS 63*bb4ee6a4SAndroid Build Coastguard Worker /// Indicates that there is no specific sense data to be reported. 64*bb4ee6a4SAndroid Build Coastguard Worker pub const NO_SENSE: u8 = 0x00; 65*bb4ee6a4SAndroid Build Coastguard Worker /// Indicates an error that may have been caused by a flaw in the medium or an error in the 66*bb4ee6a4SAndroid Build Coastguard Worker /// recorded data. 67*bb4ee6a4SAndroid Build Coastguard Worker pub const MEDIUM_ERROR: u8 = 0x03; 68*bb4ee6a4SAndroid Build Coastguard Worker /// Indicates an illegal request. 69*bb4ee6a4SAndroid Build Coastguard Worker pub const ILLEGAL_REQUEST: u8 = 0x05; 70*bb4ee6a4SAndroid Build Coastguard Worker /// Indicates that a unit attention condition has been established. 71*bb4ee6a4SAndroid Build Coastguard Worker pub const UNIT_ATTENTION: u8 = 0x06; 72