diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sg_cmds_basic.c | 27 | ||||
-rw-r--r-- | lib/sg_cmds_basic2.c | 99 | ||||
-rw-r--r-- | lib/sg_cmds_extra.c | 263 | ||||
-rw-r--r-- | lib/sg_cmds_mmc.c | 36 | ||||
-rw-r--r-- | lib/sg_lib.c | 22 | ||||
-rw-r--r-- | lib/sg_pt_win32.c | 4 |
6 files changed, 158 insertions, 293 deletions
diff --git a/lib/sg_cmds_basic.c b/lib/sg_cmds_basic.c index 35a49912..7eb61d6d 100644 --- a/lib/sg_cmds_basic.c +++ b/lib/sg_cmds_basic.c @@ -509,12 +509,9 @@ sg_ll_test_unit_ready_progress(int sg_fd, int pack_id, int * progress, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, tur_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { if (progress) { int slen = get_scsi_pt_sense_len(ptvp); @@ -583,12 +580,9 @@ sg_ll_request_sense(int sg_fd, bool desc, void * resp, int mx_resp_len, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, rq_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -641,12 +635,9 @@ sg_ll_report_luns(int sg_fd, int select_report, void * resp, int mx_resp_len, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, report_luns_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: diff --git a/lib/sg_cmds_basic2.c b/lib/sg_cmds_basic2.c index 18b6cd7e..3925ba81 100644 --- a/lib/sg_cmds_basic2.c +++ b/lib/sg_cmds_basic2.c @@ -137,12 +137,9 @@ sg_ll_sync_cache_10(int sg_fd, bool sync_nv, bool immed, int group, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -193,12 +190,9 @@ sg_ll_readcap_16(int sg_fd, bool pmi, uint64_t llba, void * resp, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -246,12 +240,9 @@ sg_ll_readcap_10(int sg_fd, bool pmi, unsigned int lba, void * resp, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -304,12 +295,9 @@ sg_ll_mode_sense6(int sg_fd, bool dbd, int pc, int pg_code, int sub_pg_code, ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); resid = get_scsi_pt_resid(ptvp); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -407,12 +395,9 @@ sg_ll_mode_sense10_v2(int sg_fd, bool llbaa, bool dbd, int pc, int pg_code, resid = get_scsi_pt_resid(ptvp); if (residp) *residp = resid; - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -492,12 +477,9 @@ sg_ll_mode_select6(int sg_fd, bool pf, bool sp, void * paramp, int param_len, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -552,12 +534,9 @@ sg_ll_mode_select10(int sg_fd, bool pf, bool sp, void * paramp, int param_len, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -845,12 +824,9 @@ sg_ll_log_sense_v2(int sg_fd, bool ppc, bool sp, int pc, int pg_code, resid = get_scsi_pt_resid(ptvp); if (residp) *residp = resid; - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -927,12 +903,9 @@ sg_ll_log_select(int sg_fd, bool pcr, bool sp, int pc, int pg_code, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -992,12 +965,9 @@ sg_ll_start_stop_unit(int sg_fd, bool immed, int pc_mod__fl_num, res = do_scsi_pt(ptvp, sg_fd, START_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -1047,12 +1017,9 @@ sg_ll_prevent_allow(int sg_fd, int prevent, bool noisy, int verbose) res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: diff --git a/lib/sg_cmds_extra.c b/lib/sg_cmds_extra.c index bebc8592..5b168bf8 100644 --- a/lib/sg_cmds_extra.c +++ b/lib/sg_cmds_extra.c @@ -164,12 +164,9 @@ sg_ll_get_lba_status16(int sg_fd, uint64_t start_llba, uint8_t rt, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, alloc_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -243,12 +240,9 @@ sg_ll_get_lba_status32(int sg_fd, uint64_t start_llba, uint32_t scan_len, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, alloc_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -316,12 +310,9 @@ sg_ll_report_tgt_prt_grp2(int sg_fd, void * resp, int mx_resp_len, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -383,12 +374,9 @@ sg_ll_set_tgt_prt_grp(int sg_fd, void * paramp, int param_len, bool noisy, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -438,12 +426,9 @@ sg_ll_report_referrals(int sg_fd, uint64_t start_llba, bool one_seg, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -525,12 +510,9 @@ sg_ll_send_diag(int sg_fd, int st_code, bool pf_bit, bool st_bit, res = do_scsi_pt(ptvp, sg_fd, tmout, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -600,12 +582,9 @@ sg_ll_receive_diag_v2(int sg_fd, bool pcv, int pg_code, void * resp, resid = get_scsi_pt_resid(ptvp); if (residp) *residp = resid; - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -671,12 +650,9 @@ sg_ll_read_defect10(int sg_fd, bool req_plist, bool req_glist, int dl_format, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -734,12 +710,9 @@ sg_ll_read_media_serial_num(int sg_fd, void * resp, int mx_resp_len, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -800,12 +773,9 @@ sg_ll_report_id_info(int sg_fd, int itype, void * resp, int max_resp_len, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, max_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -869,12 +839,9 @@ sg_ll_set_id_info(int sg_fd, int itype, void * paramp, int param_len, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -966,12 +933,9 @@ sg_ll_format_unit_v2(int sg_fd, int fmtpinfo, bool longlist, bool fmtdata, res = do_scsi_pt(ptvp, sg_fd, tmout, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -1024,12 +988,9 @@ sg_ll_reassign_blocks(int sg_fd, bool longlba, bool longlist, void * paramp, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -1079,12 +1040,9 @@ sg_ll_persistent_reserve_in(int sg_fd, int rq_servact, void * resp, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -1151,12 +1109,9 @@ sg_ll_persistent_reserve_out(int sg_fd, int rq_servact, int rq_scope, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -1229,12 +1184,9 @@ sg_ll_read_long10(int sg_fd, bool pblock, bool correct, unsigned int lba, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, xfer_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -1322,12 +1274,9 @@ sg_ll_read_long16(int sg_fd, bool pblock, bool correct, uint64_t llba, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, xfer_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -1417,7 +1366,7 @@ sg_ll_write_long10(int sg_fd, bool cor_dis, bool wr_uncor, bool pblock, ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); if (-1 == ret) - ; + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: @@ -1496,12 +1445,9 @@ sg_ll_write_long16(int sg_fd, bool cor_dis, bool wr_uncor, bool pblock, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -1583,12 +1529,9 @@ sg_ll_verify10(int sg_fd, int vrprotect, bool dpo, int bytchk, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -1664,12 +1607,9 @@ sg_ll_verify16(int sg_fd, int vrprotect, bool dpo, int bytchk, uint64_t llba, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -1907,12 +1847,9 @@ sg_ll_read_buffer(int sg_fd, int mode, int buffer_id, int buffer_offset, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -1983,12 +1920,9 @@ sg_ll_write_buffer(int sg_fd, int mode, int buffer_id, int buffer_offset, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -2063,12 +1997,9 @@ sg_ll_write_buffer_v2(int sg_fd, int mode, int m_specific, int buffer_id, res = do_scsi_pt(ptvp, sg_fd, timeout_secs, verbose); ret = sg_cmds_process_resp(ptvp, "Write buffer", res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -2132,12 +2063,9 @@ sg_ll_unmap_v2(int sg_fd, bool anchor, int group_num, int timeout_secs, res = do_scsi_pt(ptvp, sg_fd, tmout, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -2181,12 +2109,9 @@ sg_ll_read_block_limits(int sg_fd, void * resp, int mx_resp_len, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -2251,12 +2176,9 @@ sg_ll_receive_copy_results(int sg_fd, int sa, int list_id, void * resp, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, b, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -2313,12 +2235,9 @@ sg_ll_extended_copy(int sg_fd, void * paramp, int param_len, bool noisy, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, opcode_name, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -2393,12 +2312,9 @@ sg_ll_3party_copy_out(int sg_fd, int sa, unsigned int list_id, int group_num, res = do_scsi_pt(ptvp, sg_fd, tmout, verbose); ret = sg_cmds_process_resp(ptvp, cname, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: @@ -2501,12 +2417,9 @@ sg_ll_pre_fetch_x(int sg_fd, bool do_seek10, bool cdb16, bool immed, } ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: diff --git a/lib/sg_cmds_mmc.c b/lib/sg_cmds_mmc.c index 18f6ae1a..0b8bc5b2 100644 --- a/lib/sg_cmds_mmc.c +++ b/lib/sg_cmds_mmc.c @@ -99,12 +99,9 @@ sg_ll_set_cd_speed(int sg_fd, int rot_control, int drv_read_speed, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_NOT_READY: case SG_LIB_CAT_UNIT_ATTENTION: @@ -174,12 +171,9 @@ sg_ll_get_config(int sg_fd, int rt, int starting, void * resp, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_INVALID_OP: case SG_LIB_CAT_ILLEGAL_REQ: @@ -269,12 +263,9 @@ sg_ll_get_performance(int sg_fd, int data_type, unsigned int starting_lba, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_INVALID_OP: case SG_LIB_CAT_ILLEGAL_REQ: @@ -353,12 +344,9 @@ sg_ll_set_streaming(int sg_fd, int type, void * paramp, int param_len, res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, cdb_name_s, res, SG_NO_DATA_IN, sense_b, noisy, verbose, &sense_cat); - if (-1 == ret) { - int os_err = get_scsi_pt_os_err(ptvp); - - if ((os_err > 0) && (os_err < 47)) - ret = SG_LIB_OS_BASE_ERR + os_err; - } else if (-2 == ret) { + if (-1 == ret) + ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); + else if (-2 == ret) { switch (sense_cat) { case SG_LIB_CAT_NOT_READY: case SG_LIB_CAT_INVALID_OP: diff --git a/lib/sg_lib.c b/lib/sg_lib.c index 53a17d40..c1a92c75 100644 --- a/lib/sg_lib.c +++ b/lib/sg_lib.c @@ -1895,6 +1895,9 @@ sg_if_can2stderr(const char * leadin, int exit_status) case SG_LIB_NVME_STATUS: /* 48 */ pr2ws("%sNVMe error (non-zero status)\n", s); return true; + case SG_LIB_OS_BASE_ERR: /* 50 */ + pr2ws("%sAn OS error occurred\n", s); + return true; case SG_LIB_OS_BASE_ERR + EACCES: /* 50 + */ pr2ws("%sPermission denied\n", s); return true; @@ -1926,19 +1929,19 @@ sg_if_can2stderr(const char * leadin, int exit_status) } /* If os_err_num is within bounds then the returned value is 'os_err_num + - * SG_LIB_OS_BASE_ERR' otherwise -1 is returned. If os_err_num is 0 then 0 - * is returned. */ + * SG_LIB_OS_BASE_ERR' otherwise SG_LIB_OS_BASE_ERR is returned. If + * os_err_num is 0 then 0 is returned. */ int sg_convert_errno(int os_err_num) { if (os_err_num <= 0) { - if (os_err_num < -1) - return -1; + if (os_err_num < 0) + return SG_LIB_OS_BASE_ERR; return os_err_num; } if (os_err_num < (SG_LIB_CAT_MALFORMED - SG_LIB_OS_BASE_ERR)) return SG_LIB_OS_BASE_ERR + os_err_num; - return -1; + return SG_LIB_OS_BASE_ERR; } /* See description in sg_lib.h header file */ @@ -2379,12 +2382,15 @@ sg_get_category_sense_str(int sense_cat, int buff_len, char * buff, "issue"); break; default: - if ((sense_cat > SG_LIB_OS_BASE_ERR) && + if ((sense_cat >= SG_LIB_OS_BASE_ERR) && (sense_cat < (SG_LIB_OS_BASE_ERR + 47))) { int k = sense_cat - SG_LIB_OS_BASE_ERR; - n = scnpr(buff, buff_len, "OS error: %s [%d]", safe_strerror(k), - k); + if (k > 0) + n = scnpr(buff, buff_len, "OS error: %s [%d]", + safe_strerror(k), k); + else + n = scnpr(buff, buff_len, "OS error occurred"); } else { n = scnpr(buff, buff_len, "Sense category: %d", sense_cat); if ((0 == verbose) && (n < (buff_len - 1))) diff --git a/lib/sg_pt_win32.c b/lib/sg_pt_win32.c index e70a349d..0796837c 100644 --- a/lib/sg_pt_win32.c +++ b/lib/sg_pt_win32.c @@ -5,7 +5,7 @@ * license that can be found in the BSD_LICENSE file. */ -/* sg_pt_win32 version 1.21 20180207 */ +/* sg_pt_win32 version 1.22 20180210 */ #include <stdio.h> #include <stdlib.h> @@ -2757,7 +2757,7 @@ do_nvme_pt(struct sg_pt_win32_scsi * psp, struct sg_pt_handle * shp, if (vb) pr2ws("%s: not supported [time_secs=%d]\n", __func__, time_secs); if (psp) { ; } /* suppress warning */ - if (dhp) { ; } /* suppress warning */ + if (shp) { ; } /* suppress warning */ return -ENOTTY; /* inappropriate ioctl error */ } |