smartmontools  SVN Rev 4814
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 4760 2018-08-19 18:45:53Z chrfranke $\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_PT_HOST_MANAGED   0x14
#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 270 of file scsicmds.h.


Definition at line 208 of file scsicmds.h.

#define ATA_PT_RESULTS_LPAGE   0x16 /* SAT */

Definition at line 212 of file scsicmds.h.


Definition at line 268 of file scsicmds.h.

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

Definition at line 228 of file scsicmds.h.

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

Definition at line 211 of file scsicmds.h.


Definition at line 196 of file scsicmds.h.

#define CACHING_PAGE   0x08

Definition at line 251 of file scsicmds.h.

#define CD_AUDIO_CONTROL_PAGE   0x0e

Definition at line 258 of file scsicmds.h.

#define CD_DEVICE_PAGE   0x0d

Definition at line 257 of file scsicmds.h.

#define CONTROL_MODE_PAGE   0x0a

Definition at line 254 of file scsicmds.h.


Definition at line 259 of file scsicmds.h.


Definition at line 246 of file scsicmds.h.


Definition at line 97 of file scsicmds.h.

#define DXFER_NONE   0

Definition at line 96 of file scsicmds.h.

#define DXFER_TO_DEVICE   2

Definition at line 98 of file scsicmds.h.


Definition at line 260 of file scsicmds.h.

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

Definition at line 224 of file scsicmds.h.

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

Definition at line 223 of file scsicmds.h.


Definition at line 265 of file scsicmds.h.

#define FLEXIBLE_DISK_PAGE   0x05

Definition at line 249 of file scsicmds.h.

#define FORMAT_DEVICE_PAGE   0x03

Definition at line 247 of file scsicmds.h.

#define FORMAT_STATUS_LPAGE   0x08

Definition at line 203 of file scsicmds.h.

#define GEN_STATS_PERF_LPAGE   0x19

Definition at line 215 of file scsicmds.h.

#define IE_LPAGE   0x2f

Definition at line 217 of file scsicmds.h.


Definition at line 264 of file scsicmds.h.

#define INQUIRY   0x12

Definition at line 55 of file scsicmds.h.

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

Definition at line 204 of file scsicmds.h.


Definition at line 202 of file scsicmds.h.

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

Definition at line 221 of file scsicmds.h.

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

Definition at line 222 of file scsicmds.h.

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

Definition at line 205 of file scsicmds.h.

#define LOG_RESP_SELF_TEST_LEN   0x194

Definition at line 237 of file scsicmds.h.

#define LOG_SELECT   0x4c

Definition at line 37 of file scsicmds.h.

#define LOG_SENSE   0x4d

Definition at line 40 of file scsicmds.h.


Definition at line 348 of file scsicmds.h.

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

Definition at line 229 of file scsicmds.h.


Definition at line 255 of file scsicmds.h.

#define MODE_SELECT   0x15

Definition at line 49 of file scsicmds.h.

#define MODE_SELECT_10   0x55

Definition at line 52 of file scsicmds.h.

#define MODE_SENSE   0x1a

Definition at line 43 of file scsicmds.h.

#define MODE_SENSE_10   0x5a

Definition at line 46 of file scsicmds.h.


Definition at line 274 of file scsicmds.h.


Definition at line 273 of file scsicmds.h.


Definition at line 275 of file scsicmds.h.


Definition at line 276 of file scsicmds.h.

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

Definition at line 220 of file scsicmds.h.


Definition at line 201 of file scsicmds.h.

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

Definition at line 213 of file scsicmds.h.

#define NOTCH_PAGE   0x0c

Definition at line 256 of file scsicmds.h.

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

Definition at line 227 of file scsicmds.h.


Definition at line 252 of file scsicmds.h.


Definition at line 216 of file scsicmds.h.


Definition at line 263 of file scsicmds.h.


Definition at line 214 of file scsicmds.h.


Definition at line 261 of file scsicmds.h.


Definition at line 262 of file scsicmds.h.

#define READ_CAPACITY_10   0x25

Definition at line 79 of file scsicmds.h.

#define READ_CAPACITY_16   0x9e

Definition at line 82 of file scsicmds.h.

#define READ_DEFECT_10   0x37

Definition at line 67 of file scsicmds.h.

#define READ_DEFECT_12   0xb7

Definition at line 70 of file scsicmds.h.


Definition at line 198 of file scsicmds.h.


Definition at line 199 of file scsicmds.h.


Definition at line 245 of file scsicmds.h.


Definition at line 61 of file scsicmds.h.

#define REPORT_LUNS   0xa0

Definition at line 76 of file scsicmds.h.

#define REQUEST_SENSE   0x03

Definition at line 58 of file scsicmds.h.


Definition at line 248 of file scsicmds.h.

#define SAI_READ_CAPACITY_16   0x10

Definition at line 85 of file scsicmds.h.

#define SAT_ATA_PASSTHROUGH_12   0xa1

Definition at line 89 of file scsicmds.h.

#define SAT_ATA_PASSTHROUGH_16   0x85

Definition at line 92 of file scsicmds.h.


Definition at line 310 of file scsicmds.h.


Definition at line 307 of file scsicmds.h.

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

Definition at line 305 of file scsicmds.h.

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

Definition at line 304 of file scsicmds.h.


Definition at line 306 of file scsicmds.h.


Definition at line 308 of file scsicmds.h.

#define SCSI_ASC_WARNING   0xb

Definition at line 309 of file scsicmds.h.


Definition at line 312 of file scsicmds.h.


Definition at line 336 of file scsicmds.h.


Definition at line 333 of file scsicmds.h.


Definition at line 332 of file scsicmds.h.

#define SCSI_DIAG_DEF_SELF_TEST   0xff

Definition at line 331 of file scsicmds.h.


Definition at line 335 of file scsicmds.h.


Definition at line 334 of file scsicmds.h.

#define SCSI_DIAG_NO_SELF_TEST   0x00

Definition at line 330 of file scsicmds.h.

#define SCSI_IECMP_RAW_LEN   64

Definition at line 128 of file scsicmds.h.

#define SCSI_PT_CDROM   0x5

Definition at line 173 of file scsicmds.h.


Definition at line 171 of file scsicmds.h.

#define SCSI_PT_ENCLOSURE   0xd

Definition at line 175 of file scsicmds.h.

#define SCSI_PT_HOST_MANAGED   0x14

Definition at line 176 of file scsicmds.h.


Definition at line 174 of file scsicmds.h.


Definition at line 172 of file scsicmds.h.


Definition at line 301 of file scsicmds.h.


Definition at line 298 of file scsicmds.h.


Definition at line 299 of file scsicmds.h.

#define SCSI_SK_MEDIUM_ERROR   0x3

Definition at line 297 of file scsicmds.h.

#define SCSI_SK_NO_SENSE   0x0

Definition at line 294 of file scsicmds.h.

#define SCSI_SK_NOT_READY   0x2

Definition at line 296 of file scsicmds.h.


Definition at line 295 of file scsicmds.h.


Definition at line 300 of file scsicmds.h.


Definition at line 291 of file scsicmds.h.


Definition at line 340 of file scsicmds.h.

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

Definition at line 343 of file scsicmds.h.

#define SCSI_TPROTO_1394   3

Definition at line 182 of file scsicmds.h.

#define SCSI_TPROTO_ADT   7

Definition at line 186 of file scsicmds.h.

#define SCSI_TPROTO_ATA   8

Definition at line 187 of file scsicmds.h.

#define SCSI_TPROTO_FCP   0

Definition at line 179 of file scsicmds.h.


Definition at line 184 of file scsicmds.h.

#define SCSI_TPROTO_NONE   0xf

Definition at line 191 of file scsicmds.h.

#define SCSI_TPROTO_PCIE   0xb /* includes NVMe */

Definition at line 190 of file scsicmds.h.

#define SCSI_TPROTO_SAS   6

Definition at line 185 of file scsicmds.h.

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

Definition at line 189 of file scsicmds.h.

#define SCSI_TPROTO_SPI   1

Definition at line 180 of file scsicmds.h.

#define SCSI_TPROTO_SRP   4 /* SCSI over RDMA */

Definition at line 183 of file scsicmds.h.

#define SCSI_TPROTO_SSA   2

Definition at line 181 of file scsicmds.h.

#define SCSI_TPROTO_UAS   9 /* USB attached SCSI */

Definition at line 188 of file scsicmds.h.


Definition at line 283 of file scsicmds.h.


Definition at line 287 of file scsicmds.h.

#define SCSI_VPD_BLOCK_LIMITS   0xb0

Definition at line 286 of file scsicmds.h.


Definition at line 281 of file scsicmds.h.


Definition at line 282 of file scsicmds.h.


Definition at line 288 of file scsicmds.h.


Definition at line 284 of file scsicmds.h.


Definition at line 285 of file scsicmds.h.


Definition at line 279 of file scsicmds.h.


Definition at line 280 of file scsicmds.h.

#define SCSICMDS_H_CVSID   "$Id: scsicmds.h 4760 2018-08-19 18:45:53Z chrfranke $\n"

Definition at line 22 of file scsicmds.h.

#define SEAGATE_CACHE_LPAGE   0x37

Definition at line 233 of file scsicmds.h.


Definition at line 234 of file scsicmds.h.


Definition at line 209 of file scsicmds.h.

#define SEND_DIAGNOSTIC   0x1d

Definition at line 64 of file scsicmds.h.

#define SIMPLE_ERR_ABORTED_COMMAND   11 /* probably transport error */

Definition at line 326 of file scsicmds.h.

#define SIMPLE_ERR_BAD_FIELD   3 /* in cbd */

Definition at line 318 of file scsicmds.h.


Definition at line 317 of file scsicmds.h.

#define SIMPLE_ERR_BAD_PARAM   4 /* in data */

Definition at line 319 of file scsicmds.h.

#define SIMPLE_ERR_BAD_RESP   5 /* response fails sanity */

Definition at line 320 of file scsicmds.h.

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

Definition at line 322 of file scsicmds.h.

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

Definition at line 324 of file scsicmds.h.

#define SIMPLE_ERR_NO_MEDIUM   6 /* no medium present */

Definition at line 321 of file scsicmds.h.


Definition at line 316 of file scsicmds.h.

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

Definition at line 323 of file scsicmds.h.

#define SIMPLE_ERR_UNKNOWN   10 /* unknown sense value */

Definition at line 325 of file scsicmds.h.

#define SIMPLE_NO_ERROR   0

Definition at line 315 of file scsicmds.h.

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

Definition at line 210 of file scsicmds.h.

#define START_STOP_UNIT   0x1b

Definition at line 73 of file scsicmds.h.


Definition at line 207 of file scsicmds.h.

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

Definition at line 230 of file scsicmds.h.

#define SUPPORTED_LPAGES   0x00

Definition at line 195 of file scsicmds.h.

#define TAPE_ALERTS_LPAGE   0x2e

Definition at line 241 of file scsicmds.h.

#define TEMPERATURE_LPAGE   0x0d

Definition at line 206 of file scsicmds.h.

#define TEST_UNIT_READY   0x0

Definition at line 34 of file scsicmds.h.

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

Definition at line 225 of file scsicmds.h.

#define VENDOR_UNIQUE_PAGE   0x00

Definition at line 244 of file scsicmds.h.


Definition at line 200 of file scsicmds.h.


Definition at line 250 of file scsicmds.h.


Definition at line 197 of file scsicmds.h.

#define XOR_CONTROL_MODE_PAGE   0x10

Definition at line 253 of file scsicmds.h.

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

Definition at line 226 of file scsicmds.h.

Function Documentation

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

Definition at line 79 of file scsicmds.cpp.

bool is_scsi_cdb ( const uint8_t *  cdbp,
int  clen 

Definition at line 152 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 387 of file scsicmds.cpp.

void scsi_do_sense_disect ( const struct scsi_cmnd_io in,
struct scsi_sense_disect out 

Definition at line 254 of file scsicmds.cpp.

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

Definition at line 2770 of file scsicmds.cpp.

const char* scsi_get_opcode_name ( uint8_t  opcode)

Definition at line 237 of file scsicmds.cpp.

int scsi_IsExceptionControlEnabled ( const struct scsi_iec_mode_page iecp)

Definition at line 1414 of file scsicmds.cpp.

int scsi_IsWarningEnabled ( const struct scsi_iec_mode_page iecp)

Definition at line 1428 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 358 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 1551 of file scsicmds.cpp.

int scsiCountFailedSelfTests ( scsi_device device,
int  noisy 

Definition at line 2374 of file scsicmds.cpp.

void scsiDecodeErrCounterPage ( unsigned char *  resp,
struct scsiErrorCounter ecp 

Definition at line 2275 of file scsicmds.cpp.

void scsiDecodeNonMediumErrPage ( unsigned char *  resp,
struct scsiNonMediumError nmep 

Definition at line 2313 of file scsicmds.cpp.

const char* scsiErrString ( int  scsiErr)

Definition at line 314 of file scsicmds.cpp.

int scsiFetchControlGLTSD ( scsi_device device,
int  modese_len,
int  current 

Definition at line 2453 of file scsicmds.cpp.

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

Definition at line 2237 of file scsicmds.cpp.

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

Definition at line 1367 of file scsicmds.cpp.

int scsiFetchTransportProtocol ( scsi_device device,
int  modese_len 

Definition at line 2709 of file scsicmds.cpp.

const char* scsiGetIEString ( uint8_t  asc,
uint8_t  ascq 

Definition at line 2137 of file scsicmds.cpp.

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

Definition at line 2488 of file scsicmds.cpp.

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

Definition at line 2534 of file scsicmds.cpp.

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

Definition at line 1243 of file scsicmds.cpp.

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

Definition at line 1527 of file scsicmds.cpp.

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

Definition at line 869 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 608 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 513 of file scsicmds.cpp.

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

Definition at line 1324 of file scsicmds.cpp.

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

Definition at line 698 of file scsicmds.cpp.

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

Definition at line 793 of file scsicmds.cpp.

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

Definition at line 643 of file scsicmds.cpp.

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

Definition at line 740 of file scsicmds.cpp.

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

Definition at line 1170 of file scsicmds.cpp.

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

Definition at line 1210 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 1096 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 1133 of file scsicmds.cpp.

int scsiRequestSense ( scsi_device device,
struct scsi_sense_disect sense_info 

Definition at line 930 of file scsicmds.cpp.

int scsiSelfTestInProgress ( scsi_device device,
int *  inProgress 

Definition at line 2425 of file scsicmds.cpp.

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

Definition at line 1009 of file scsicmds.cpp.

int scsiSetControlGLTSD ( scsi_device device,
int  enabled,
int  modese_len 

Definition at line 2638 of file scsicmds.cpp.

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

Definition at line 1457 of file scsicmds.cpp.

int scsiSimpleSenseFilter ( const struct scsi_sense_disect sinfo)

Definition at line 276 of file scsicmds.cpp.

int scsiSmartDefaultSelfTest ( scsi_device device)

Definition at line 2167 of file scsicmds.cpp.

int scsiSmartExtendCapSelfTest ( scsi_device device)

Definition at line 2212 of file scsicmds.cpp.

int scsiSmartExtendSelfTest ( scsi_device device)

Definition at line 2189 of file scsicmds.cpp.

int scsiSmartSelfTestAbort ( scsi_device device)

Definition at line 2224 of file scsicmds.cpp.

int scsiSmartShortCapSelfTest ( scsi_device device)

Definition at line 2201 of file scsicmds.cpp.

int scsiSmartShortSelfTest ( scsi_device device)

Definition at line 2178 of file scsicmds.cpp.

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

Definition at line 836 of file scsicmds.cpp.

const char* scsiTapeAlertsChangerDevice ( unsigned short  code)

Definition at line 2001 of file scsicmds.cpp.

const char* scsiTapeAlertsTapeDevice ( unsigned short  code)

Definition at line 1853 of file scsicmds.cpp.

int scsiTestUnitReady ( scsi_device device)

Definition at line 1072 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 2743 of file scsicmds.cpp.

Variable Documentation

unsigned char scsi_debugmode

Definition at line 46 of file scsicmds.cpp.

supported_vpd_pages* supported_vpd_pages_p

Definition at line 48 of file scsicmds.cpp.