sg_opcodes.c (sg3_utils-1.47r908.tgz) | : | sg_opcodes.c (sg3_utils-1.47r915.tar.xz) | ||
---|---|---|---|---|
skipping to change at line 36 | skipping to change at line 36 | |||
#include "config.h" | #include "config.h" | |||
#endif | #endif | |||
#include "sg_lib.h" | #include "sg_lib.h" | |||
#include "sg_cmds_basic.h" | #include "sg_cmds_basic.h" | |||
#include "sg_cmds_extra.h" | #include "sg_cmds_extra.h" | |||
#include "sg_unaligned.h" | #include "sg_unaligned.h" | |||
#include "sg_pr2serr.h" | #include "sg_pr2serr.h" | |||
#include "sg_pt.h" | #include "sg_pt.h" | |||
static const char * version_str = "0.70 20210610"; /* spc6r05 */ | static const char * version_str = "0.71 20210830"; /* spc6r05 */ | |||
#define SENSE_BUFF_LEN 64 /* Arbitrary, could be larger */ | #define SENSE_BUFF_LEN 64 /* Arbitrary, could be larger */ | |||
#define DEF_TIMEOUT_SECS 60 | #define DEF_TIMEOUT_SECS 60 | |||
#define SG_MAINTENANCE_IN 0xa3 | #define SG_MAINTENANCE_IN 0xa3 | |||
#define RSOC_SA 0xc | #define RSOC_SA 0xc | |||
#define RSTMF_SA 0xd | #define RSTMF_SA 0xd | |||
#define RSOC_CMD_LEN 12 | #define RSOC_CMD_LEN 12 | |||
#define RSTMF_CMD_LEN 12 | #define RSTMF_CMD_LEN 12 | |||
#define MX_ALLOC_LEN 8192 | #define MX_ALLOC_LEN 8192 | |||
skipping to change at line 223 | skipping to change at line 223 | |||
pr2serr(" %s cdb: %s\n", rsoc_s, | pr2serr(" %s cdb: %s\n", rsoc_s, | |||
sg_get_command_str(rsoc_cdb, RSOC_CMD_LEN, false, | sg_get_command_str(rsoc_cdb, RSOC_CMD_LEN, false, | |||
sizeof(b), b)); | sizeof(b), b)); | |||
} | } | |||
clear_scsi_pt_obj(ptvp); | clear_scsi_pt_obj(ptvp); | |||
set_scsi_pt_cdb(ptvp, rsoc_cdb, sizeof(rsoc_cdb)); | set_scsi_pt_cdb(ptvp, rsoc_cdb, sizeof(rsoc_cdb)); | |||
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, -1, DEF_TIMEOUT_SECS, verbose); | res = do_scsi_pt(ptvp, -1, DEF_TIMEOUT_SECS, verbose); | |||
ret = sg_cmds_process_resp(ptvp, rsoc_s, res, noisy, verbose, &sense_cat); | ret = sg_cmds_process_resp(ptvp, rsoc_s, res, noisy, verbose, &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 279 | skipping to change at line 282 | |||
sg_get_command_str(rstmf_cdb, RSTMF_CMD_LEN, false, | sg_get_command_str(rstmf_cdb, RSTMF_CMD_LEN, false, | |||
sizeof(b), b)); | sizeof(b), b)); | |||
} | } | |||
clear_scsi_pt_obj(ptvp); | clear_scsi_pt_obj(ptvp); | |||
set_scsi_pt_cdb(ptvp, rstmf_cdb, sizeof(rstmf_cdb)); | set_scsi_pt_cdb(ptvp, rstmf_cdb, sizeof(rstmf_cdb)); | |||
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, -1, DEF_TIMEOUT_SECS, verbose); | res = do_scsi_pt(ptvp, -1, DEF_TIMEOUT_SECS, verbose); | |||
ret = sg_cmds_process_resp(ptvp, rstmf_s, res, noisy, verbose, | ret = sg_cmds_process_resp(ptvp, rstmf_s, 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 |