"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "lib/sg_cmds_extra.c" between
sg3_utils-1.47r908.tgz and sg3_utils-1.47r915.tar.xz

About: sg3_utils contains utilities that send SCSI commands to devices. Beta version.

sg_cmds_extra.c  (sg3_utils-1.47r908.tgz):sg_cmds_extra.c  (sg3_utils-1.47r915.tar.xz)
/* /*
* Copyright (c) 1999-2020 Douglas Gilbert. * Copyright (c) 1999-2021 Douglas Gilbert.
* All rights reserved. * All rights reserved.
* Use of this source code is governed by a BSD-style * Use of this source code is governed by a BSD-style
* license that can be found in the BSD_LICENSE file. * license that can be found in the BSD_LICENSE file.
* *
* SPDX-License-Identifier: BSD-2-Clause * SPDX-License-Identifier: BSD-2-Clause
*/ */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdarg.h> #include <stdarg.h>
skipping to change at line 150 skipping to change at line 150
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, getLbaStatCmd, sizeof(getLbaStatCmd)); set_scsi_pt_cdb(ptvp, getLbaStatCmd, sizeof(getLbaStatCmd));
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, alloc_len); set_scsi_pt_data_in(ptvp, (uint8_t *)resp, alloc_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else { } else {
skipping to change at line 226 skipping to change at line 229
b)); b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, gls32_cmd, sizeof(gls32_cmd)); set_scsi_pt_cdb(ptvp, gls32_cmd, sizeof(gls32_cmd));
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, alloc_len); set_scsi_pt_data_in(ptvp, (uint8_t *)resp, alloc_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else { } else {
skipping to change at line 296 skipping to change at line 302
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, rtpg_cdb, sizeof(rtpg_cdb)); set_scsi_pt_cdb(ptvp, rtpg_cdb, sizeof(rtpg_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, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else { } else {
skipping to change at line 360 skipping to change at line 369
} }
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, stpg_cdb, sizeof(stpg_cdb)); set_scsi_pt_cdb(ptvp, stpg_cdb, sizeof(stpg_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_out(ptvp, (uint8_t *)paramp, param_len); set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, param_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 412 skipping to change at line 424
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, repRef_cdb, sizeof(repRef_cdb)); set_scsi_pt_cdb(ptvp, repRef_cdb, sizeof(repRef_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, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else { } else {
skipping to change at line 512 skipping to change at line 527
} else { } else {
ptvp = construct_scsi_pt_obj_with_fd(sg_fd, vb); ptvp = construct_scsi_pt_obj_with_fd(sg_fd, vb);
if (NULL == ptvp) if (NULL == ptvp)
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, senddiag_cdb, sizeof(senddiag_cdb)); set_scsi_pt_cdb(ptvp, senddiag_cdb, sizeof(senddiag_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_out(ptvp, (uint8_t *)paramp, param_len); set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, param_len);
res = do_scsi_pt(ptvp, -1, tmout, vb); res = do_scsi_pt(ptvp, -1, tmout, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 616 skipping to change at line 634
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, rcvdiag_cdb, sizeof(rcvdiag_cdb)); set_scsi_pt_cdb(ptvp, rcvdiag_cdb, sizeof(rcvdiag_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, timeout_secs, vb); res = do_scsi_pt(ptvp, -1, timeout_secs, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat);
resid = get_scsi_pt_resid(ptvp); resid = get_scsi_pt_resid(ptvp);
if (residp) if (residp)
*residp = resid; *residp = resid;
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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else { } else {
skipping to change at line 722 skipping to change at line 743
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, rdef_cdb, sizeof(rdef_cdb)); set_scsi_pt_cdb(ptvp, rdef_cdb, sizeof(rdef_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, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else { } else {
skipping to change at line 782 skipping to change at line 806
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, rmsn_cdb, sizeof(rmsn_cdb)); set_scsi_pt_cdb(ptvp, rmsn_cdb, sizeof(rmsn_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, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else { } else {
skipping to change at line 845 skipping to change at line 872
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, rii_cdb, sizeof(rii_cdb)); set_scsi_pt_cdb(ptvp, rii_cdb, sizeof(rii_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, max_resp_len); set_scsi_pt_data_in(ptvp, (uint8_t *)resp, max_resp_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else { } else {
skipping to change at line 911 skipping to change at line 941
} }
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, sii_cdb, sizeof(sii_cdb)); set_scsi_pt_cdb(ptvp, sii_cdb, sizeof(sii_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_out(ptvp, (uint8_t *)paramp, param_len); set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, param_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 1004 skipping to change at line 1037
} }
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, fu_cdb, sizeof(fu_cdb)); set_scsi_pt_cdb(ptvp, fu_cdb, sizeof(fu_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_out(ptvp, (uint8_t *)paramp, param_len); set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, param_len);
res = do_scsi_pt(ptvp, sg_fd, tmout, vb); res = do_scsi_pt(ptvp, sg_fd, tmout, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 1059 skipping to change at line 1095
hex2stderr((const uint8_t *)paramp, param_len, -1); hex2stderr((const uint8_t *)paramp, param_len, -1);
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, reass_cdb, sizeof(reass_cdb)); set_scsi_pt_cdb(ptvp, reass_cdb, sizeof(reass_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_out(ptvp, (uint8_t *)paramp, param_len); set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, param_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 1111 skipping to change at line 1150
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, prin_cdb, sizeof(prin_cdb)); set_scsi_pt_cdb(ptvp, prin_cdb, sizeof(prin_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, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else { } else {
skipping to change at line 1180 skipping to change at line 1222
} }
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, prout_cdb, sizeof(prout_cdb)); set_scsi_pt_cdb(ptvp, prout_cdb, sizeof(prout_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_out(ptvp, (uint8_t *)paramp, param_len); set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, param_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 1256 skipping to change at line 1301
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, readLong_cdb, sizeof(readLong_cdb)); set_scsi_pt_cdb(ptvp, readLong_cdb, sizeof(readLong_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, xfer_len); set_scsi_pt_data_in(ptvp, (uint8_t *)resp, xfer_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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;
case SG_LIB_CAT_ILLEGAL_REQ: case SG_LIB_CAT_ILLEGAL_REQ:
{ {
bool valid, ili; bool valid, ili;
int slen; int slen;
uint64_t ull = 0; uint64_t ull = 0;
skipping to change at line 1346 skipping to change at line 1394
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, readLong_cdb, sizeof(readLong_cdb)); set_scsi_pt_cdb(ptvp, readLong_cdb, sizeof(readLong_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, xfer_len); set_scsi_pt_data_in(ptvp, (uint8_t *)resp, xfer_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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;
case SG_LIB_CAT_ILLEGAL_REQ: case SG_LIB_CAT_ILLEGAL_REQ:
{ {
bool valid, ili; bool valid, ili;
int slen; int slen;
uint64_t ull = 0; uint64_t ull = 0;
skipping to change at line 1437 skipping to change at line 1488
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, writeLong_cdb, sizeof(writeLong_cdb)); set_scsi_pt_cdb(ptvp, writeLong_cdb, sizeof(writeLong_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_out(ptvp, (uint8_t *)data_out, xfer_len); set_scsi_pt_data_out(ptvp, (uint8_t *)data_out, xfer_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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;
case SG_LIB_CAT_ILLEGAL_REQ: case SG_LIB_CAT_ILLEGAL_REQ:
{ {
int valid, slen, ili; int valid, slen, ili;
uint64_t ull = 0; uint64_t ull = 0;
skipping to change at line 1517 skipping to change at line 1571
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, writeLong_cdb, sizeof(writeLong_cdb)); set_scsi_pt_cdb(ptvp, writeLong_cdb, sizeof(writeLong_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_out(ptvp, (uint8_t *)data_out, xfer_len); set_scsi_pt_data_out(ptvp, (uint8_t *)data_out, xfer_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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;
case SG_LIB_CAT_ILLEGAL_REQ: case SG_LIB_CAT_ILLEGAL_REQ:
{ {
bool valid, ili; bool valid, ili;
int slen; int slen;
uint64_t ull = 0; uint64_t ull = 0;
skipping to change at line 1602 skipping to change at line 1659
} }
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, v_cdb, sizeof(v_cdb)); set_scsi_pt_cdb(ptvp, v_cdb, sizeof(v_cdb));
set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b));
if (data_out_len > 0) if (data_out_len > 0)
set_scsi_pt_data_out(ptvp, (uint8_t *)data_out, data_out_len); set_scsi_pt_data_out(ptvp, (uint8_t *)data_out, data_out_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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;
case SG_LIB_CAT_MEDIUM_HARD: case SG_LIB_CAT_MEDIUM_HARD:
{ {
bool valid; bool valid;
uint64_t ull = 0; uint64_t ull = 0;
skipping to change at line 1681 skipping to change at line 1741
} }
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return sg_convert_errno(ENOMEM); return sg_convert_errno(ENOMEM);
set_scsi_pt_cdb(ptvp, v_cdb, sizeof(v_cdb)); set_scsi_pt_cdb(ptvp, v_cdb, sizeof(v_cdb));
set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b));
if (data_out_len > 0) if (data_out_len > 0)
set_scsi_pt_data_out(ptvp, (uint8_t *)data_out, data_out_len); set_scsi_pt_data_out(ptvp, (uint8_t *)data_out, data_out_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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;
case SG_LIB_CAT_MEDIUM_HARD: case SG_LIB_CAT_MEDIUM_HARD:
{ {
bool valid; bool valid;
uint64_t ull = 0; uint64_t ull = 0;
skipping to change at line 1921 skipping to change at line 1984
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return -1; return -1;
set_scsi_pt_cdb(ptvp, rbuf_cdb, sizeof(rbuf_cdb)); set_scsi_pt_cdb(ptvp, rbuf_cdb, sizeof(rbuf_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, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else { } else {
skipping to change at line 1994 skipping to change at line 2060
} }
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return -1; return -1;
set_scsi_pt_cdb(ptvp, wbuf_cdb, sizeof(wbuf_cdb)); set_scsi_pt_cdb(ptvp, wbuf_cdb, sizeof(wbuf_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_out(ptvp, (uint8_t *)paramp, param_len); set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, param_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 2071 skipping to change at line 2140
ptvp = construct_scsi_pt_obj(); ptvp = construct_scsi_pt_obj();
if (NULL == ptvp) { if (NULL == ptvp) {
pr2ws("%s: out of memory\n", __func__); pr2ws("%s: out of memory\n", __func__);
return -1; return -1;
} }
set_scsi_pt_cdb(ptvp, wbuf_cdb, sizeof(wbuf_cdb)); set_scsi_pt_cdb(ptvp, wbuf_cdb, sizeof(wbuf_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_out(ptvp, (uint8_t *)paramp, param_len); set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, param_len);
res = do_scsi_pt(ptvp, sg_fd, timeout_secs, vb); res = do_scsi_pt(ptvp, sg_fd, timeout_secs, vb);
ret = sg_cmds_process_resp(ptvp, "Write buffer", res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, "Write buffer", res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 2137 skipping to change at line 2209
} }
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return -1; return -1;
set_scsi_pt_cdb(ptvp, u_cdb, sizeof(u_cdb)); set_scsi_pt_cdb(ptvp, u_cdb, sizeof(u_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_out(ptvp, (uint8_t *)paramp, param_len); set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, param_len);
res = do_scsi_pt(ptvp, sg_fd, tmout, vb); res = do_scsi_pt(ptvp, sg_fd, tmout, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 2183 skipping to change at line 2258
false, sizeof(b), b)); false, sizeof(b), b));
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return -1; return -1;
set_scsi_pt_cdb(ptvp, rl_cdb, sizeof(rl_cdb)); set_scsi_pt_cdb(ptvp, rl_cdb, sizeof(rl_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, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else { } else {
skipping to change at line 2250 skipping to change at line 2328
false, sizeof(d), d)); false, sizeof(d), d));
} }
if (NULL == ((ptvp = create_pt_obj(b)))) if (NULL == ((ptvp = create_pt_obj(b))))
return -1; return -1;
set_scsi_pt_cdb(ptvp, rcvcopyres_cdb, sizeof(rcvcopyres_cdb)); set_scsi_pt_cdb(ptvp, rcvcopyres_cdb, sizeof(rcvcopyres_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, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, b, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, b, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 2308 skipping to change at line 2389
} }
} }
if (NULL == ((ptvp = create_pt_obj(cdb_s)))) if (NULL == ((ptvp = create_pt_obj(cdb_s))))
return -1; return -1;
set_scsi_pt_cdb(ptvp, xcopy_cdb, sizeof(xcopy_cdb)); set_scsi_pt_cdb(ptvp, xcopy_cdb, sizeof(xcopy_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_out(ptvp, (uint8_t *)paramp, param_len); set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, param_len);
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, vb);
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 2385 skipping to change at line 2469
} }
} }
if (NULL == ((ptvp = create_pt_obj(cname)))) if (NULL == ((ptvp = create_pt_obj(cname))))
return -1; return -1;
set_scsi_pt_cdb(ptvp, xcopy_cdb, sizeof(xcopy_cdb)); set_scsi_pt_cdb(ptvp, xcopy_cdb, sizeof(xcopy_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_out(ptvp, (uint8_t *)paramp, param_len); set_scsi_pt_data_out(ptvp, (uint8_t *)paramp, param_len);
res = do_scsi_pt(ptvp, sg_fd, tmout, vb); res = do_scsi_pt(ptvp, sg_fd, tmout, vb);
ret = sg_cmds_process_resp(ptvp, cname, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cname, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
skipping to change at line 2489 skipping to change at line 2576
int sstat = get_scsi_pt_status_response(ptvp); int sstat = get_scsi_pt_status_response(ptvp);
if (SG_LIB_CAT_CONDITION_MET == sstat) { if (SG_LIB_CAT_CONDITION_MET == sstat) {
ret = SG_LIB_CAT_CONDITION_MET; ret = SG_LIB_CAT_CONDITION_MET;
if (vb > 2) if (vb > 2)
pr2ws("%s: returns SG_LIB_CAT_CONDITION_MET\n", __func__); pr2ws("%s: returns SG_LIB_CAT_CONDITION_MET\n", __func__);
goto fini; goto fini;
} }
} }
ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_cat); ret = sg_cmds_process_resp(ptvp, cdb_s, res, noisy, vb, &s_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 (s_cat) { switch (s_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 = s_cat; ret = s_cat;
break; break;
} }
} else } else
 End of changes. 31 change blocks. 
91 lines changed or deleted 181 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)