aboutsummaryrefslogtreecommitdiff
path: root/lib/sg_cmds_basic.c
diff options
context:
space:
mode:
authorDouglas Gilbert <dgilbert@interlog.com>2018-02-22 07:00:28 +0000
committerDouglas Gilbert <dgilbert@interlog.com>2018-02-22 07:00:28 +0000
commit252086533f8af0736c2a4987cd70a44366837ec1 (patch)
tree1f9245e247673fdb6ebea13b9aa559e1f869d78c /lib/sg_cmds_basic.c
parent39ea1b548f21c006c311ace897b221b100bfa88d (diff)
downloadsg3_utils-252086533f8af0736c2a4987cd70a44366837ec1.tar.gz
sg_lib: add sg_if_can2stdout(); use uint8_t instead of unsigned char; Windows pass-through work
git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@754 6180dd3e-e324-4e3e-922d-17de1ae2f315
Diffstat (limited to 'lib/sg_cmds_basic.c')
-rw-r--r--lib/sg_cmds_basic.c44
1 files changed, 22 insertions, 22 deletions
diff --git a/lib/sg_cmds_basic.c b/lib/sg_cmds_basic.c
index 7eb61d6d..36a3d4dd 100644
--- a/lib/sg_cmds_basic.c
+++ b/lib/sg_cmds_basic.c
@@ -36,7 +36,7 @@
#endif
-static const char * const version_str = "1.83 20180204";
+static const char * const version_str = "1.84 20180219";
#define SENSE_BUFF_LEN 64 /* Arbitrary, could be larger */
@@ -117,7 +117,7 @@ static const char * const pass_through_s = "pass-through";
static int
sg_cmds_process_helper(const char * leadin, int mx_di_len, int resid,
- const unsigned char * sbp, int slen, bool noisy,
+ const uint8_t * sbp, int slen, bool noisy,
int verbose, int * o_sense_cat)
{
int scat, got;
@@ -184,7 +184,7 @@ sg_cmds_process_helper(const char * leadin, int mx_di_len, int resid,
* categories also have data in bytes received; -2 is still returned. */
int
sg_cmds_process_resp(struct sg_pt_base * ptvp, const char * leadin,
- int pt_res, int mx_di_len, const unsigned char * sbp,
+ int pt_res, int mx_di_len, const uint8_t * sbp,
bool noisy, int verbose, int * o_sense_cat)
{
int got, cat, duration, slen, resid, resp_code, sstat;
@@ -339,16 +339,16 @@ sg_ll_inquiry_com(int sg_fd, bool cmddt, bool evpd, int pg_op, void * resp,
bool noisy, int verbose)
{
int res, ret, k, sense_cat, resid;
- unsigned char inq_cdb[INQUIRY_CMDLEN] = {INQUIRY_CMD, 0, 0, 0, 0, 0};
- unsigned char sense_b[SENSE_BUFF_LEN];
- unsigned char * up;
+ uint8_t inq_cdb[INQUIRY_CMDLEN] = {INQUIRY_CMD, 0, 0, 0, 0, 0};
+ uint8_t sense_b[SENSE_BUFF_LEN];
+ uint8_t * up;
struct sg_pt_base * ptvp;
if (cmddt)
inq_cdb[1] |= 0x2;
if (evpd)
inq_cdb[1] |= 0x1;
- inq_cdb[2] = (unsigned char)pg_op;
+ inq_cdb[2] = (uint8_t)pg_op;
/* 16 bit allocation length (was 8, increased in spc3r09, 200209) */
sg_put_unaligned_be16((uint16_t)mx_resp_len, inq_cdb + 3);
if (verbose) {
@@ -358,7 +358,7 @@ sg_ll_inquiry_com(int sg_fd, bool cmddt, bool evpd, int pg_op, void * resp,
pr2ws("\n");
}
if (resp && (mx_resp_len > 0)) {
- up = (unsigned char *)resp;
+ up = (uint8_t *)resp;
up[0] = 0x7f; /* defensive prefill */
if (mx_resp_len > 4)
up[4] = 0;
@@ -374,7 +374,7 @@ sg_ll_inquiry_com(int sg_fd, bool cmddt, bool evpd, int pg_op, void * resp,
}
set_scsi_pt_cdb(ptvp, inq_cdb, sizeof(inq_cdb));
set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b));
- set_scsi_pt_data_in(ptvp, (unsigned char *)resp, mx_resp_len);
+ set_scsi_pt_data_in(ptvp, (uint8_t *)resp, mx_resp_len);
res = do_scsi_pt(ptvp, sg_fd, timeout_secs, verbose);
ret = sg_cmds_process_resp(ptvp, inquiry_s, res, mx_resp_len, sense_b,
noisy, verbose, &sense_cat);
@@ -408,7 +408,7 @@ sg_ll_inquiry_com(int sg_fd, bool cmddt, bool evpd, int pg_op, void * resp,
return ret ? ret : SG_LIB_CAT_MALFORMED;
}
/* zero unfilled section of response buffer, based on resid */
- memset((unsigned char *)resp + (mx_resp_len - resid), 0, resid);
+ memset((uint8_t *)resp + (mx_resp_len - resid), 0, resid);
}
return ret;
}
@@ -432,7 +432,7 @@ sg_simple_inquiry(int sg_fd, struct sg_simple_inquiry_resp * inq_data,
bool noisy, int verbose)
{
int ret;
- unsigned char inq_resp[SAFE_STD_INQ_RESP_LEN];
+ uint8_t inq_resp[SAFE_STD_INQ_RESP_LEN];
if (inq_data) {
memset(inq_data, 0, sizeof(* inq_data));
@@ -490,8 +490,8 @@ sg_ll_test_unit_ready_progress(int sg_fd, int pack_id, int * progress,
{
static const char * const tur_s = "test unit ready";
int res, ret, k, sense_cat;
- unsigned char tur_cdb[TUR_CMDLEN] = {TUR_CMD, 0, 0, 0, 0, 0};
- unsigned char sense_b[SENSE_BUFF_LEN];
+ uint8_t tur_cdb[TUR_CMDLEN] = {TUR_CMD, 0, 0, 0, 0, 0};
+ uint8_t sense_b[SENSE_BUFF_LEN];
struct sg_pt_base * ptvp;
if (verbose) {
@@ -510,7 +510,7 @@ sg_ll_test_unit_ready_progress(int sg_fd, int pack_id, int * progress,
ret = sg_cmds_process_resp(ptvp, tur_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));
+ ret = sg_convert_errno(get_scsi_pt_os_err(ptvp));
else if (-2 == ret) {
if (progress) {
int slen = get_scsi_pt_sense_len(ptvp);
@@ -553,9 +553,9 @@ sg_ll_request_sense(int sg_fd, bool desc, void * resp, int mx_resp_len,
{
static const char * const rq_s = "request sense";
int k, ret, res, sense_cat;
- unsigned char rs_cdb[REQUEST_SENSE_CMDLEN] =
+ uint8_t rs_cdb[REQUEST_SENSE_CMDLEN] =
{REQUEST_SENSE_CMD, 0, 0, 0, 0, 0};
- unsigned char sense_b[SENSE_BUFF_LEN];
+ uint8_t sense_b[SENSE_BUFF_LEN];
struct sg_pt_base * ptvp;
if (desc)
@@ -576,12 +576,12 @@ sg_ll_request_sense(int sg_fd, bool desc, void * resp, int mx_resp_len,
return -1;
set_scsi_pt_cdb(ptvp, rs_cdb, sizeof(rs_cdb));
set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b));
- set_scsi_pt_data_in(ptvp, (unsigned char *)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);
ret = sg_cmds_process_resp(ptvp, rq_s, res, mx_resp_len, sense_b, noisy,
verbose, &sense_cat);
if (-1 == ret)
- ret = sg_convert_errno(get_scsi_pt_os_err(ptvp));
+ ret = sg_convert_errno(get_scsi_pt_os_err(ptvp));
else if (-2 == ret) {
switch (sense_cat) {
case SG_LIB_CAT_RECOVERED:
@@ -613,9 +613,9 @@ sg_ll_report_luns(int sg_fd, int select_report, void * resp, int mx_resp_len,
{
static const char * const report_luns_s = "report luns";
int k, ret, res, sense_cat;
- unsigned char rl_cdb[REPORT_LUNS_CMDLEN] =
+ uint8_t rl_cdb[REPORT_LUNS_CMDLEN] =
{REPORT_LUNS_CMD, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
- unsigned char sense_b[SENSE_BUFF_LEN];
+ uint8_t sense_b[SENSE_BUFF_LEN];
struct sg_pt_base * ptvp;
rl_cdb[2] = select_report & 0xff;
@@ -631,12 +631,12 @@ sg_ll_report_luns(int sg_fd, int select_report, void * resp, int mx_resp_len,
return -1;
set_scsi_pt_cdb(ptvp, rl_cdb, sizeof(rl_cdb));
set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b));
- set_scsi_pt_data_in(ptvp, (unsigned char *)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);
ret = sg_cmds_process_resp(ptvp, report_luns_s, res, mx_resp_len,
sense_b, noisy, verbose, &sense_cat);
if (-1 == ret)
- ret = sg_convert_errno(get_scsi_pt_os_err(ptvp));
+ ret = sg_convert_errno(get_scsi_pt_os_err(ptvp));
else if (-2 == ret) {
switch (sense_cat) {
case SG_LIB_CAT_RECOVERED: