sg_read_buffer.c (sg3_utils-1.47r908.tgz) | : | sg_read_buffer.c (sg3_utils-1.47r915.tar.xz) | ||
---|---|---|---|---|
skipping to change at line 42 | skipping to change at line 42 | |||
#include "sg_cmds_extra.h" | #include "sg_cmds_extra.h" | |||
#include "sg_pt.h" | #include "sg_pt.h" | |||
#include "sg_unaligned.h" | #include "sg_unaligned.h" | |||
#include "sg_pr2serr.h" | #include "sg_pr2serr.h" | |||
/* | /* | |||
* This utility issues the SCSI READ BUFFER(10 or 16) command to the given | * This utility issues the SCSI READ BUFFER(10 or 16) command to the given | |||
* device. | * device. | |||
*/ | */ | |||
static const char * version_str = "1.31 20210608"; /* spc6r05 */ | static const char * version_str = "1.32 20210830"; /* spc6r05 */ | |||
#ifndef SG_READ_BUFFER_10_CMD | #ifndef SG_READ_BUFFER_10_CMD | |||
#define SG_READ_BUFFER_10_CMD 0x3c | #define SG_READ_BUFFER_10_CMD 0x3c | |||
#define SG_READ_BUFFER_10_CMDLEN 10 | #define SG_READ_BUFFER_10_CMDLEN 10 | |||
#endif | #endif | |||
#ifndef SG_READ_BUFFER_16_CMD | #ifndef SG_READ_BUFFER_16_CMD | |||
#define SG_READ_BUFFER_16_CMD 0x9b | #define SG_READ_BUFFER_16_CMD 0x9b | |||
#define SG_READ_BUFFER_16_CMDLEN 16 | #define SG_READ_BUFFER_16_CMDLEN 16 | |||
#endif | #endif | |||
skipping to change at line 192 | skipping to change at line 192 | |||
if (NULL == ptvp) { | if (NULL == ptvp) { | |||
pr2serr("Read buffer(10): out of memory\n"); | pr2serr("Read buffer(10): out of memory\n"); | |||
return -1; | return -1; | |||
} | } | |||
set_scsi_pt_cdb(ptvp, rb10_cb, sizeof(rb10_cb)); | set_scsi_pt_cdb(ptvp, rb10_cb, sizeof(rb10_cb)); | |||
set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); | set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); | |||
set_scsi_pt_data_in(ptvp, (uint8_t *)resp, mx_resp_len); | set_scsi_pt_data_in(ptvp, (uint8_t *)resp, mx_resp_len); | |||
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); | res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); | |||
ret = sg_cmds_process_resp(ptvp, "Read buffer(10)", res, noisy, verbose, | ret = sg_cmds_process_resp(ptvp, "Read buffer(10)", res, noisy, verbose, | |||
&sense_cat); | &sense_cat); | |||
if (-1 == ret) | if (-1 == ret) { | |||
ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); | if (get_scsi_pt_transport_err(ptvp)) | |||
else if (-2 == ret) { | ret = SG_LIB_TRANSPORT_ERROR; | |||
else | ||||
ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); | ||||
} else if (-2 == ret) { | ||||
switch (sense_cat) { | switch (sense_cat) { | |||
case SG_LIB_CAT_RECOVERED: | case SG_LIB_CAT_RECOVERED: | |||
case SG_LIB_CAT_NO_SENSE: | case SG_LIB_CAT_NO_SENSE: | |||
ret = 0; | ret = 0; | |||
break; | break; | |||
default: | default: | |||
ret = sense_cat; | ret = sense_cat; | |||
break; | break; | |||
} | } | |||
} else { | } else { | |||
skipping to change at line 257 | skipping to change at line 260 | |||
if (NULL == ptvp) { | if (NULL == ptvp) { | |||
pr2serr("Read buffer(16): out of memory\n"); | pr2serr("Read buffer(16): out of memory\n"); | |||
return -1; | return -1; | |||
} | } | |||
set_scsi_pt_cdb(ptvp, rb16_cb, sizeof(rb16_cb)); | set_scsi_pt_cdb(ptvp, rb16_cb, sizeof(rb16_cb)); | |||
set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); | set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); | |||
set_scsi_pt_data_in(ptvp, (uint8_t *)resp, mx_resp_len); | set_scsi_pt_data_in(ptvp, (uint8_t *)resp, mx_resp_len); | |||
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); | res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); | |||
ret = sg_cmds_process_resp(ptvp, "Read buffer(16)", res, noisy, verbose, | ret = sg_cmds_process_resp(ptvp, "Read buffer(16)", res, noisy, verbose, | |||
&sense_cat); | &sense_cat); | |||
if (-1 == ret) | if (-1 == ret) { | |||
ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); | if (get_scsi_pt_transport_err(ptvp)) | |||
else if (-2 == ret) { | ret = SG_LIB_TRANSPORT_ERROR; | |||
else | ||||
ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); | ||||
} else if (-2 == ret) { | ||||
switch (sense_cat) { | switch (sense_cat) { | |||
case SG_LIB_CAT_RECOVERED: | case SG_LIB_CAT_RECOVERED: | |||
case SG_LIB_CAT_NO_SENSE: | case SG_LIB_CAT_NO_SENSE: | |||
ret = 0; | ret = 0; | |||
break; | break; | |||
default: | default: | |||
ret = sense_cat; | ret = sense_cat; | |||
break; | break; | |||
} | } | |||
} else { | } else { | |||
End of changes. 3 change blocks. | ||||
7 lines changed or deleted | 13 lines changed or added |