smartmontools  SVN Rev 4721
Utility to control and monitor storage systems with "S.M.A.R.T."
Classes | Macros | Functions | Variables
scsicmds.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
Include dependency graph for scsicmds.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


struct  scsi_cmnd_io
struct  scsi_sense_disect
struct  scsi_iec_mode_page
struct  scsiErrorCounter
struct  scsiNonMediumError
struct  scsi_readcap_resp
class  supported_vpd_pages


#define SCSICMDS_H_CVSID   "$Id: scsicmds.h 4683 2018-01-07 22:46:30Z dpgilbert $\n"
#define TEST_UNIT_READY   0x0
#define LOG_SELECT   0x4c
#define LOG_SENSE   0x4d
#define MODE_SENSE   0x1a
#define MODE_SENSE_10   0x5a
#define MODE_SELECT   0x15
#define MODE_SELECT_10   0x55
#define INQUIRY   0x12
#define REQUEST_SENSE   0x03
#define SEND_DIAGNOSTIC   0x1d
#define READ_DEFECT_10   0x37
#define READ_DEFECT_12   0xb7
#define START_STOP_UNIT   0x1b
#define REPORT_LUNS   0xa0
#define READ_CAPACITY_10   0x25
#define READ_CAPACITY_16   0x9e
#define SAI_READ_CAPACITY_16   0x10
#define SAT_ATA_PASSTHROUGH_12   0xa1
#define SAT_ATA_PASSTHROUGH_16   0x85
#define DXFER_NONE   0
#define DXFER_TO_DEVICE   2
#define SCSI_IECMP_RAW_LEN   64
#define SCSI_PT_CDROM   0x5
#define SCSI_PT_ENCLOSURE   0xd
#define SCSI_TPROTO_FCP   0
#define SCSI_TPROTO_SPI   1
#define SCSI_TPROTO_SSA   2
#define SCSI_TPROTO_1394   3
#define SCSI_TPROTO_SRP   4 /* SCSI over RDMA */
#define SCSI_TPROTO_SAS   6
#define SCSI_TPROTO_ADT   7
#define SCSI_TPROTO_ATA   8
#define SCSI_TPROTO_UAS   9 /* USB attached SCSI */
#define SCSI_TPROTO_SOP   0xa /* SCSI over PCIe */
#define SCSI_TPROTO_PCIE   0xb /* includes NVMe */
#define SCSI_TPROTO_NONE   0xf
#define SUPPORTED_LPAGES   0x00
#define FORMAT_STATUS_LPAGE   0x08
#define LAST_N_DEFERRED_LPAGE   0x0b /* or async events */
#define LB_PROV_LPAGE   0x0c /* SBC-3 */
#define TEMPERATURE_LPAGE   0x0d
#define SS_MEDIA_LPAGE   0x11 /* SBC-3 */
#define BACKGROUND_RESULTS_LPAGE   0x15 /* SBC-3 */
#define ATA_PT_RESULTS_LPAGE   0x16 /* SAT */
#define NONVOL_CACHE_LPAGE   0x17 /* SBC-3 */
#define GEN_STATS_PERF_LPAGE   0x19
#define IE_LPAGE   0x2f
#define NO_SUBPAGE_L_SPAGE   0x0 /* 0x0-0x3f,0x0 */
#define LAST_N_INQ_DAT_L_SPAGE   0x1 /* 0xb,0x1 */
#define LAST_N_MODE_PG_L_SPAGE   0x2 /* 0xb,0x2 */
#define ENVIRO_REP_L_SPAGE   0x1 /* 0xd,0x1 */
#define ENVIRO_LIMITS_L_SPAGE   0x2 /* 0xd,0x2 */
#define UTILIZATION_L_SPAGE   0x1 /* 0xe,0x1 */
#define ZB_DEV_STATS_L_SPAGE   0x1 /* 0x14,0x1 */
#define PEND_DEFECTS_L_SPAGE   0x1 /* 0x15,0x1 */
#define BACKGROUND_OP_L_SPAGE   0x2 /* 0x15,0x2 */
#define LPS_MISALIGN_L_SPAGE   0x3 /* 0x15,0x3 */
#define SUPP_SPAGE_L_SPAGE   0xff /* 0x0,0xff pages+subpages */
#define SEAGATE_CACHE_LPAGE   0x37
#define LOG_RESP_SELF_TEST_LEN   0x194
#define TAPE_ALERTS_LPAGE   0x2e
#define VENDOR_UNIQUE_PAGE   0x00
#define FORMAT_DEVICE_PAGE   0x03
#define FLEXIBLE_DISK_PAGE   0x05
#define CACHING_PAGE   0x08
#define XOR_CONTROL_MODE_PAGE   0x10
#define CONTROL_MODE_PAGE   0x0a
#define NOTCH_PAGE   0x0c
#define CD_DEVICE_PAGE   0x0d
#define CD_AUDIO_CONTROL_PAGE   0x0e
#define ALL_MODE_PAGES   0x3f
#define SCSI_VPD_BLOCK_LIMITS   0xb0
#define SCSI_SK_NO_SENSE   0x0
#define SCSI_SK_NOT_READY   0x2
#define SCSI_SK_MEDIUM_ERROR   0x3
#define SCSI_ASC_NOT_READY   0x4 /* more info in ASCQ code */
#define SCSI_ASC_NO_MEDIUM   0x3a /* more info in ASCQ code */
#define SCSI_ASC_WARNING   0xb
#define SIMPLE_NO_ERROR   0
#define SIMPLE_ERR_BAD_FIELD   3 /* in cbd */
#define SIMPLE_ERR_BAD_PARAM   4 /* in data */
#define SIMPLE_ERR_BAD_RESP   5 /* response fails sanity */
#define SIMPLE_ERR_NO_MEDIUM   6 /* no medium present */
#define SIMPLE_ERR_BECOMING_READY   7 /* device will be ready soon */
#define SIMPLE_ERR_TRY_AGAIN   8 /* some warning, try again */
#define SIMPLE_ERR_MEDIUM_HARDWARE   9 /* medium or hardware error */
#define SIMPLE_ERR_UNKNOWN   10 /* unknown sense value */
#define SIMPLE_ERR_ABORTED_COMMAND   11 /* probably transport error */
#define SCSI_DIAG_NO_SELF_TEST   0x00
#define SCSI_DIAG_DEF_SELF_TEST   0xff
#define SCSI_TIMEOUT_SELF_TEST   (5 * 60 * 60) /* allow max 5 hours for */


bool is_scsi_cdb (const uint8_t *cdbp, int clen)
void scsi_do_sense_disect (const struct scsi_cmnd_io *in, struct scsi_sense_disect *out)
int scsiSimpleSenseFilter (const struct scsi_sense_disect *sinfo)
const char * scsiErrString (int scsiErr)
int scsi_vpd_dev_id_iter (const unsigned char *initial_desig_desc, int page_len, int *off, int m_assoc, int m_desig_type, int m_code_set)
int scsi_decode_lu_dev_id (const unsigned char *b, int blen, char *s, int slen, int *transport)
int scsiTestUnitReady (scsi_device *device)
int scsiStdInquiry (scsi_device *device, uint8_t *pBuf, int bufLen)
int scsiInquiryVpd (scsi_device *device, int vpd_page, uint8_t *pBuf, int bufLen)
int scsiLogSense (scsi_device *device, int pagenum, int subpagenum, uint8_t *pBuf, int bufLen, int known_resp_len)
int scsiLogSelect (scsi_device *device, int pcr, int sp, int pc, int pagenum, int subpagenum, uint8_t *pBuf, int bufLen)
int scsiModeSense (scsi_device *device, int pagenum, int subpagenum, int pc, uint8_t *pBuf, int bufLen)
int scsiModeSelect (scsi_device *device, int sp, uint8_t *pBuf, int bufLen)
int scsiModeSense10 (scsi_device *device, int pagenum, int subpagenum, int pc, uint8_t *pBuf, int bufLen)
int scsiModeSelect10 (scsi_device *device, int sp, uint8_t *pBuf, int bufLen)
int scsiModePageOffset (const uint8_t *resp, int len, int modese_len)
int scsiRequestSense (scsi_device *device, struct scsi_sense_disect *sense_info)
int scsiSendDiagnostic (scsi_device *device, int functioncode, uint8_t *pBuf, int bufLen)
int scsiReadDefect10 (scsi_device *device, int req_plist, int req_glist, int dl_format, uint8_t *pBuf, int bufLen)
int scsiReadDefect12 (scsi_device *device, int req_plist, int req_glist, int dl_format, int addrDescIndex, uint8_t *pBuf, int bufLen)
int scsiReadCapacity10 (scsi_device *device, unsigned int *last_lbp, unsigned int *lb_sizep)
int scsiReadCapacity16 (scsi_device *device, uint8_t *pBuf, int bufLen)
int scsiCheckIE (scsi_device *device, int hasIELogPage, int hasTempLogPage, uint8_t *asc, uint8_t *ascq, uint8_t *currenttemp, uint8_t *triptemp)
int scsiFetchIECmpage (scsi_device *device, struct scsi_iec_mode_page *iecp, int modese_len)
int scsi_IsExceptionControlEnabled (const struct scsi_iec_mode_page *iecp)
int scsi_IsWarningEnabled (const struct scsi_iec_mode_page *iecp)
int scsiSetExceptionControlAndWarning (scsi_device *device, int enabled, const struct scsi_iec_mode_page *iecp)
void scsiDecodeErrCounterPage (unsigned char *resp, struct scsiErrorCounter *ecp)
void scsiDecodeNonMediumErrPage (unsigned char *resp, struct scsiNonMediumError *nmep)
int scsiFetchExtendedSelfTestTime (scsi_device *device, int *durationSec, int modese_len)
int scsiCountFailedSelfTests (scsi_device *device, int noisy)
int scsiSelfTestInProgress (scsi_device *device, int *inProgress)
int scsiFetchControlGLTSD (scsi_device *device, int modese_len, int current)
int scsiSetControlGLTSD (scsi_device *device, int enabled, int modese_len)
int scsiFetchTransportProtocol (scsi_device *device, int modese_len)
int scsiGetRPM (scsi_device *device, int modese_len, int *form_factorp, int *haw_zbcp)
int scsiGetSetCache (scsi_device *device, int modese_len, short int *wce, short int *rcd)
uint64_t scsiGetSize (scsi_device *device, bool avoid_rcap16, struct scsi_readcap_resp *srrp)
const char * scsiGetIEString (uint8_t asc, uint8_t ascq)
int scsiGetTemp (scsi_device *device, uint8_t *currenttemp, uint8_t *triptemp)
int scsiSmartDefaultSelfTest (scsi_device *device)
int scsiSmartShortSelfTest (scsi_device *device)
int scsiSmartExtendSelfTest (scsi_device *device)
int scsiSmartShortCapSelfTest (scsi_device *device)
int scsiSmartExtendCapSelfTest (scsi_device *device)
int scsiSmartSelfTestAbort (scsi_device *device)
const char * scsiTapeAlertsTapeDevice (unsigned short code)
const char * scsiTapeAlertsChangerDevice (unsigned short code)
const char * scsi_get_opcode_name (uint8_t opcode)
void scsi_format_id_string (char *out, const uint8_t *in, int n)
void dStrHex (const uint8_t *up, int len, int no_ascii)
const unsigned char * sg_scsi_sense_desc_find (const unsigned char *sensep, int sense_len, int desc_type)


unsigned char scsi_debugmode

Macro Definition Documentation

#define ALL_MODE_PAGES   0x3f

Definition at line 280 of file scsicmds.h.


Definition at line 218 of file scsicmds.h.

#define ATA_PT_RESULTS_LPAGE   0x16 /* SAT */

Definition at line 222 of file scsicmds.h.


Definition at line 278 of file scsicmds.h.

#define BACKGROUND_OP_L_SPAGE   0x2 /* 0x15,0x2 */

Definition at line 238 of file scsicmds.h.

#define BACKGROUND_RESULTS_LPAGE   0x15 /* SBC-3 */

Definition at line 221 of file scsicmds.h.


Definition at line 206 of file scsicmds.h.

#define CACHING_PAGE   0x08

Definition at line 261 of file scsicmds.h.

#define CD_AUDIO_CONTROL_PAGE   0x0e

Definition at line 268 of file scsicmds.h.

#define CD_DEVICE_PAGE   0x0d

Definition at line 267 of file scsicmds.h.

#define CONTROL_MODE_PAGE   0x0a

Definition at line 264 of file scsicmds.h.


Definition at line 269 of file scsicmds.h.


Definition at line 256 of file scsicmds.h.


Definition at line 108 of file scsicmds.h.

#define DXFER_NONE   0

Definition at line 107 of file scsicmds.h.

#define DXFER_TO_DEVICE   2

Definition at line 109 of file scsicmds.h.


Definition at line 270 of file scsicmds.h.

#define ENVIRO_LIMITS_L_SPAGE   0x2 /* 0xd,0x2 */

Definition at line 234 of file scsicmds.h.

#define ENVIRO_REP_L_SPAGE   0x1 /* 0xd,0x1 */

Definition at line 233 of file scsicmds.h.


Definition at line 275 of file scsicmds.h.

#define FLEXIBLE_DISK_PAGE   0x05

Definition at line 259 of file scsicmds.h.

#define FORMAT_DEVICE_PAGE   0x03

Definition at line 257 of file scsicmds.h.

#define FORMAT_STATUS_LPAGE   0x08

Definition at line 213 of file scsicmds.h.

#define GEN_STATS_PERF_LPAGE   0x19

Definition at line 225 of file scsicmds.h.

#define IE_LPAGE   0x2f

Definition at line 227 of file scsicmds.h.


Definition at line 274 of file scsicmds.h.

#define INQUIRY   0x12

Definition at line 66 of file scsicmds.h.

#define LAST_N_DEFERRED_LPAGE   0x0b /* or async events */

Definition at line 214 of file scsicmds.h.


Definition at line 212 of file scsicmds.h.

#define LAST_N_INQ_DAT_L_SPAGE   0x1 /* 0xb,0x1 */

Definition at line 231 of file scsicmds.h.

#define LAST_N_MODE_PG_L_SPAGE   0x2 /* 0xb,0x2 */

Definition at line 232 of file scsicmds.h.

#define LB_PROV_LPAGE   0x0c /* SBC-3 */

Definition at line 215 of file scsicmds.h.

#define LOG_RESP_SELF_TEST_LEN   0x194

Definition at line 247 of file scsicmds.h.

#define LOG_SELECT   0x4c

Definition at line 48 of file scsicmds.h.

#define LOG_SENSE   0x4d

Definition at line 51 of file scsicmds.h.


Definition at line 358 of file scsicmds.h.

#define LPS_MISALIGN_L_SPAGE   0x3 /* 0x15,0x3 */

Definition at line 239 of file scsicmds.h.


Definition at line 265 of file scsicmds.h.

#define MODE_SELECT   0x15

Definition at line 60 of file scsicmds.h.

#define MODE_SELECT_10   0x55

Definition at line 63 of file scsicmds.h.

#define MODE_SENSE   0x1a

Definition at line 54 of file scsicmds.h.

#define MODE_SENSE_10   0x5a

Definition at line 57 of file scsicmds.h.


Definition at line 284 of file scsicmds.h.


Definition at line 283 of file scsicmds.h.


Definition at line 285 of file scsicmds.h.


Definition at line 286 of file scsicmds.h.

#define NO_SUBPAGE_L_SPAGE   0x0 /* 0x0-0x3f,0x0 */

Definition at line 230 of file scsicmds.h.


Definition at line 211 of file scsicmds.h.

#define NONVOL_CACHE_LPAGE   0x17 /* SBC-3 */

Definition at line 223 of file scsicmds.h.

#define NOTCH_PAGE   0x0c

Definition at line 266 of file scsicmds.h.

#define PEND_DEFECTS_L_SPAGE   0x1 /* 0x15,0x1 */

Definition at line 237 of file scsicmds.h.


Definition at line 262 of file scsicmds.h.


Definition at line 226 of file scsicmds.h.


Definition at line 273 of file scsicmds.h.


Definition at line 224 of file scsicmds.h.


Definition at line 271 of file scsicmds.h.


Definition at line 272 of file scsicmds.h.

#define READ_CAPACITY_10   0x25

Definition at line 90 of file scsicmds.h.

#define READ_CAPACITY_16   0x9e

Definition at line 93 of file scsicmds.h.

#define READ_DEFECT_10   0x37

Definition at line 78 of file scsicmds.h.

#define READ_DEFECT_12   0xb7

Definition at line 81 of file scsicmds.h.


Definition at line 208 of file scsicmds.h.


Definition at line 209 of file scsicmds.h.


Definition at line 255 of file scsicmds.h.


Definition at line 72 of file scsicmds.h.

#define REPORT_LUNS   0xa0

Definition at line 87 of file scsicmds.h.

#define REQUEST_SENSE   0x03

Definition at line 69 of file scsicmds.h.


Definition at line 258 of file scsicmds.h.

#define SAI_READ_CAPACITY_16   0x10

Definition at line 96 of file scsicmds.h.

#define SAT_ATA_PASSTHROUGH_12   0xa1

Definition at line 100 of file scsicmds.h.

#define SAT_ATA_PASSTHROUGH_16   0x85

Definition at line 103 of file scsicmds.h.


Definition at line 320 of file scsicmds.h.


Definition at line 317 of file scsicmds.h.

#define SCSI_ASC_NO_MEDIUM   0x3a /* more info in ASCQ code */

Definition at line 315 of file scsicmds.h.

#define SCSI_ASC_NOT_READY   0x4 /* more info in ASCQ code */

Definition at line 314 of file scsicmds.h.


Definition at line 316 of file scsicmds.h.


Definition at line 318 of file scsicmds.h.

#define SCSI_ASC_WARNING   0xb

Definition at line 319 of file scsicmds.h.


Definition at line 322 of file scsicmds.h.


Definition at line 346 of file scsicmds.h.


Definition at line 343 of file scsicmds.h.


Definition at line 342 of file scsicmds.h.

#define SCSI_DIAG_DEF_SELF_TEST   0xff

Definition at line 341 of file scsicmds.h.


Definition at line 345 of file scsicmds.h.


Definition at line 344 of file scsicmds.h.

#define SCSI_DIAG_NO_SELF_TEST   0x00

Definition at line 340 of file scsicmds.h.

#define SCSI_IECMP_RAW_LEN   64

Definition at line 139 of file scsicmds.h.

#define SCSI_PT_CDROM   0x5

Definition at line 184 of file scsicmds.h.


Definition at line 182 of file scsicmds.h.

#define SCSI_PT_ENCLOSURE   0xd

Definition at line 186 of file scsicmds.h.


Definition at line 185 of file scsicmds.h.


Definition at line 183 of file scsicmds.h.


Definition at line 311 of file scsicmds.h.


Definition at line 308 of file scsicmds.h.


Definition at line 309 of file scsicmds.h.

#define SCSI_SK_MEDIUM_ERROR   0x3

Definition at line 307 of file scsicmds.h.

#define SCSI_SK_NO_SENSE   0x0

Definition at line 304 of file scsicmds.h.

#define SCSI_SK_NOT_READY   0x2

Definition at line 306 of file scsicmds.h.


Definition at line 305 of file scsicmds.h.


Definition at line 310 of file scsicmds.h.


Definition at line 301 of file scsicmds.h.


Definition at line 350 of file scsicmds.h.

#define SCSI_TIMEOUT_SELF_TEST   (5 * 60 * 60) /* allow max 5 hours for */

Definition at line 353 of file scsicmds.h.

#define SCSI_TPROTO_1394   3

Definition at line 192 of file scsicmds.h.

#define SCSI_TPROTO_ADT   7

Definition at line 196 of file scsicmds.h.

#define SCSI_TPROTO_ATA   8

Definition at line 197 of file scsicmds.h.

#define SCSI_TPROTO_FCP   0

Definition at line 189 of file scsicmds.h.


Definition at line 194 of file scsicmds.h.

#define SCSI_TPROTO_NONE   0xf

Definition at line 201 of file scsicmds.h.

#define SCSI_TPROTO_PCIE   0xb /* includes NVMe */

Definition at line 200 of file scsicmds.h.

#define SCSI_TPROTO_SAS   6

Definition at line 195 of file scsicmds.h.

#define SCSI_TPROTO_SOP   0xa /* SCSI over PCIe */

Definition at line 199 of file scsicmds.h.

#define SCSI_TPROTO_SPI   1

Definition at line 190 of file scsicmds.h.

#define SCSI_TPROTO_SRP   4 /* SCSI over RDMA */

Definition at line 193 of file scsicmds.h.

#define SCSI_TPROTO_SSA   2

Definition at line 191 of file scsicmds.h.

#define SCSI_TPROTO_UAS   9 /* USB attached SCSI */

Definition at line 198 of file scsicmds.h.


Definition at line 293 of file scsicmds.h.


Definition at line 297 of file scsicmds.h.

#define SCSI_VPD_BLOCK_LIMITS   0xb0

Definition at line 296 of file scsicmds.h.


Definition at line 291 of file scsicmds.h.


Definition at line 292 of file scsicmds.h.


Definition at line 298 of file scsicmds.h.


Definition at line 294 of file scsicmds.h.


Definition at line 295 of file scsicmds.h.


Definition at line 289 of file scsicmds.h.


Definition at line 290 of file scsicmds.h.

#define SCSICMDS_H_CVSID   "$Id: scsicmds.h 4683 2018-01-07 22:46:30Z dpgilbert $\n"

Definition at line 33 of file scsicmds.h.

#define SEAGATE_CACHE_LPAGE   0x37

Definition at line 243 of file scsicmds.h.


Definition at line 244 of file scsicmds.h.


Definition at line 219 of file scsicmds.h.

#define SEND_DIAGNOSTIC   0x1d

Definition at line 75 of file scsicmds.h.

#define SIMPLE_ERR_ABORTED_COMMAND   11 /* probably transport error */

Definition at line 336 of file scsicmds.h.

#define SIMPLE_ERR_BAD_FIELD   3 /* in cbd */

Definition at line 328 of file scsicmds.h.


Definition at line 327 of file scsicmds.h.

#define SIMPLE_ERR_BAD_PARAM   4 /* in data */

Definition at line 329 of file scsicmds.h.

#define SIMPLE_ERR_BAD_RESP   5 /* response fails sanity */

Definition at line 330 of file scsicmds.h.

#define SIMPLE_ERR_BECOMING_READY   7 /* device will be ready soon */

Definition at line 332 of file scsicmds.h.

#define SIMPLE_ERR_MEDIUM_HARDWARE   9 /* medium or hardware error */

Definition at line 334 of file scsicmds.h.

#define SIMPLE_ERR_NO_MEDIUM   6 /* no medium present */

Definition at line 331 of file scsicmds.h.


Definition at line 326 of file scsicmds.h.

#define SIMPLE_ERR_TRY_AGAIN   8 /* some warning, try again */

Definition at line 333 of file scsicmds.h.

#define SIMPLE_ERR_UNKNOWN   10 /* unknown sense value */

Definition at line 335 of file scsicmds.h.

#define SIMPLE_NO_ERROR   0

Definition at line 325 of file scsicmds.h.

#define SS_MEDIA_LPAGE   0x11 /* SBC-3 */

Definition at line 220 of file scsicmds.h.

#define START_STOP_UNIT   0x1b

Definition at line 84 of file scsicmds.h.


Definition at line 217 of file scsicmds.h.

#define SUPP_SPAGE_L_SPAGE   0xff /* 0x0,0xff pages+subpages */

Definition at line 240 of file scsicmds.h.

#define SUPPORTED_LPAGES   0x00

Definition at line 205 of file scsicmds.h.

#define TAPE_ALERTS_LPAGE   0x2e

Definition at line 251 of file scsicmds.h.

#define TEMPERATURE_LPAGE   0x0d

Definition at line 216 of file scsicmds.h.

#define TEST_UNIT_READY   0x0

Definition at line 45 of file scsicmds.h.

#define UTILIZATION_L_SPAGE   0x1 /* 0xe,0x1 */

Definition at line 235 of file scsicmds.h.

#define VENDOR_UNIQUE_PAGE   0x00

Definition at line 254 of file scsicmds.h.


Definition at line 210 of file scsicmds.h.


Definition at line 260 of file scsicmds.h.


Definition at line 207 of file scsicmds.h.

#define XOR_CONTROL_MODE_PAGE   0x10

Definition at line 263 of file scsicmds.h.

#define ZB_DEV_STATS_L_SPAGE   0x1 /* 0x14,0x1 */

Definition at line 236 of file scsicmds.h.

Function Documentation

void dStrHex ( const uint8_t *  up,
int  len,
int  no_ascii 

Definition at line 90 of file scsicmds.cpp.

bool is_scsi_cdb ( const uint8_t *  cdbp,
int  clen 

Definition at line 163 of file scsicmds.cpp.

int scsi_decode_lu_dev_id ( const unsigned char *  b,
int  blen,
char *  s,
int  slen,
int *  transport 

Definition at line 398 of file scsicmds.cpp.

void scsi_do_sense_disect ( const struct scsi_cmnd_io in,
struct scsi_sense_disect out 

Definition at line 265 of file scsicmds.cpp.

void scsi_format_id_string ( char *  out,
const uint8_t *  in,
int  n 

Definition at line 2781 of file scsicmds.cpp.

const char* scsi_get_opcode_name ( uint8_t  opcode)

Definition at line 248 of file scsicmds.cpp.

int scsi_IsExceptionControlEnabled ( const struct scsi_iec_mode_page iecp)

Definition at line 1425 of file scsicmds.cpp.

int scsi_IsWarningEnabled ( const struct scsi_iec_mode_page iecp)

Definition at line 1439 of file scsicmds.cpp.

int scsi_vpd_dev_id_iter ( const unsigned char *  initial_desig_desc,
int  page_len,
int *  off,
int  m_assoc,
int  m_desig_type,
int  m_code_set 

Definition at line 369 of file scsicmds.cpp.

int scsiCheckIE ( scsi_device device,
int  hasIELogPage,
int  hasTempLogPage,
uint8_t *  asc,
uint8_t *  ascq,
uint8_t *  currenttemp,
uint8_t *  triptemp 

Definition at line 1562 of file scsicmds.cpp.

int scsiCountFailedSelfTests ( scsi_device device,
int  noisy 

Definition at line 2385 of file scsicmds.cpp.

void scsiDecodeErrCounterPage ( unsigned char *  resp,
struct scsiErrorCounter ecp 

Definition at line 2286 of file scsicmds.cpp.

void scsiDecodeNonMediumErrPage ( unsigned char *  resp,
struct scsiNonMediumError nmep 

Definition at line 2324 of file scsicmds.cpp.

const char* scsiErrString ( int  scsiErr)

Definition at line 325 of file scsicmds.cpp.

int scsiFetchControlGLTSD ( scsi_device device,
int  modese_len,
int  current 

Definition at line 2464 of file scsicmds.cpp.

int scsiFetchExtendedSelfTestTime ( scsi_device device,
int *  durationSec,
int  modese_len 

Definition at line 2248 of file scsicmds.cpp.

int scsiFetchIECmpage ( scsi_device device,
struct scsi_iec_mode_page iecp,
int  modese_len 

Definition at line 1378 of file scsicmds.cpp.

int scsiFetchTransportProtocol ( scsi_device device,
int  modese_len 

Definition at line 2720 of file scsicmds.cpp.

const char* scsiGetIEString ( uint8_t  asc,
uint8_t  ascq 

Definition at line 2148 of file scsicmds.cpp.

int scsiGetRPM ( scsi_device device,
int  modese_len,
int *  form_factorp,
int *  haw_zbcp 

Definition at line 2499 of file scsicmds.cpp.

int scsiGetSetCache ( scsi_device device,
int  modese_len,
short int *  wce,
short int *  rcd 

Definition at line 2545 of file scsicmds.cpp.

uint64_t scsiGetSize ( scsi_device device,
bool  avoid_rcap16,
struct scsi_readcap_resp srrp 

Definition at line 1254 of file scsicmds.cpp.

int scsiGetTemp ( scsi_device device,
uint8_t *  currenttemp,
uint8_t *  triptemp 

Definition at line 1538 of file scsicmds.cpp.

int scsiInquiryVpd ( scsi_device device,
int  vpd_page,
uint8_t *  pBuf,
int  bufLen 

Definition at line 880 of file scsicmds.cpp.

int scsiLogSelect ( scsi_device device,
int  pcr,
int  sp,
int  pc,
int  pagenum,
int  subpagenum,
uint8_t *  pBuf,
int  bufLen 

Definition at line 619 of file scsicmds.cpp.

int scsiLogSense ( scsi_device device,
int  pagenum,
int  subpagenum,
uint8_t *  pBuf,
int  bufLen,
int  known_resp_len 

Definition at line 524 of file scsicmds.cpp.

int scsiModePageOffset ( const uint8_t *  resp,
int  len,
int  modese_len 

Definition at line 1335 of file scsicmds.cpp.

int scsiModeSelect ( scsi_device device,
int  sp,
uint8_t *  pBuf,
int  bufLen 

Definition at line 709 of file scsicmds.cpp.

int scsiModeSelect10 ( scsi_device device,
int  sp,
uint8_t *  pBuf,
int  bufLen 

Definition at line 804 of file scsicmds.cpp.

int scsiModeSense ( scsi_device device,
int  pagenum,
int  subpagenum,
int  pc,
uint8_t *  pBuf,
int  bufLen 

Definition at line 654 of file scsicmds.cpp.

int scsiModeSense10 ( scsi_device device,
int  pagenum,
int  subpagenum,
int  pc,
uint8_t *  pBuf,
int  bufLen 

Definition at line 751 of file scsicmds.cpp.

int scsiReadCapacity10 ( scsi_device device,
unsigned int *  last_lbp,
unsigned int *  lb_sizep 

Definition at line 1181 of file scsicmds.cpp.

int scsiReadCapacity16 ( scsi_device device,
uint8_t *  pBuf,
int  bufLen 

Definition at line 1221 of file scsicmds.cpp.

int scsiReadDefect10 ( scsi_device device,
int  req_plist,
int  req_glist,
int  dl_format,
uint8_t *  pBuf,
int  bufLen 

Definition at line 1107 of file scsicmds.cpp.

int scsiReadDefect12 ( scsi_device device,
int  req_plist,
int  req_glist,
int  dl_format,
int  addrDescIndex,
uint8_t *  pBuf,
int  bufLen 

Definition at line 1144 of file scsicmds.cpp.

int scsiRequestSense ( scsi_device device,
struct scsi_sense_disect sense_info 

Definition at line 941 of file scsicmds.cpp.

int scsiSelfTestInProgress ( scsi_device device,
int *  inProgress 

Definition at line 2436 of file scsicmds.cpp.

int scsiSendDiagnostic ( scsi_device device,
int  functioncode,
uint8_t *  pBuf,
int  bufLen 

Definition at line 1020 of file scsicmds.cpp.

int scsiSetControlGLTSD ( scsi_device device,
int  enabled,
int  modese_len 

Definition at line 2649 of file scsicmds.cpp.

int scsiSetExceptionControlAndWarning ( scsi_device device,
int  enabled,
const struct scsi_iec_mode_page iecp 

Definition at line 1468 of file scsicmds.cpp.

int scsiSimpleSenseFilter ( const struct scsi_sense_disect sinfo)

Definition at line 287 of file scsicmds.cpp.

int scsiSmartDefaultSelfTest ( scsi_device device)

Definition at line 2178 of file scsicmds.cpp.

int scsiSmartExtendCapSelfTest ( scsi_device device)

Definition at line 2223 of file scsicmds.cpp.

int scsiSmartExtendSelfTest ( scsi_device device)

Definition at line 2200 of file scsicmds.cpp.

int scsiSmartSelfTestAbort ( scsi_device device)

Definition at line 2235 of file scsicmds.cpp.

int scsiSmartShortCapSelfTest ( scsi_device device)

Definition at line 2212 of file scsicmds.cpp.

int scsiSmartShortSelfTest ( scsi_device device)

Definition at line 2189 of file scsicmds.cpp.

int scsiStdInquiry ( scsi_device device,
uint8_t *  pBuf,
int  bufLen 

Definition at line 847 of file scsicmds.cpp.

const char* scsiTapeAlertsChangerDevice ( unsigned short  code)

Definition at line 2012 of file scsicmds.cpp.

const char* scsiTapeAlertsTapeDevice ( unsigned short  code)

Definition at line 1864 of file scsicmds.cpp.

int scsiTestUnitReady ( scsi_device device)

Definition at line 1083 of file scsicmds.cpp.

const unsigned char* sg_scsi_sense_desc_find ( const unsigned char *  sensep,
int  sense_len,
int  desc_type 

Definition at line 2754 of file scsicmds.cpp.

Variable Documentation

unsigned char scsi_debugmode

Definition at line 57 of file scsicmds.cpp.

supported_vpd_pages* supported_vpd_pages_p

Definition at line 59 of file scsicmds.cpp.