aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDouglas Gilbert <dgilbert@interlog.com>2016-03-06 16:37:42 +0000
committerDouglas Gilbert <dgilbert@interlog.com>2016-03-06 16:37:42 +0000
commit70cacd5629374ab1a56c4d372aac986f1de09207 (patch)
treebe9ce8109bcd7d9517405730a8fbb29f82478487 /lib
parentf6ae61b384844df7d322c0b3bad461d080b6790f (diff)
downloadsg3_utils-70cacd5629374ab1a56c4d372aac986f1de09207.tar.gz
sg_logs: fix volume statistics lpage, decode mount history log parameter; sg_ses: expand join debug code
git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@684 6180dd3e-e324-4e3e-922d-17de1ae2f315
Diffstat (limited to 'lib')
-rw-r--r--lib/sg_cmds_basic2.c24
-rw-r--r--lib/sg_cmds_extra.c145
-rw-r--r--lib/sg_cmds_mmc.c24
3 files changed, 139 insertions, 54 deletions
diff --git a/lib/sg_cmds_basic2.c b/lib/sg_cmds_basic2.c
index adb29163..14a2de76 100644
--- a/lib/sg_cmds_basic2.c
+++ b/lib/sg_cmds_basic2.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999-2015 Douglas Gilbert.
+ * Copyright (c) 1999-2016 Douglas Gilbert.
* All rights reserved.
* Use of this source code is governed by a BSD-style
* license that can be found in the BSD_LICENSE file.
@@ -308,9 +308,14 @@ sg_ll_mode_sense6(int sg_fd, int dbd, int pc, int pg_code, int sub_pg_code,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" mode sense (6): response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" mode sense (6): response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -381,9 +386,14 @@ sg_ll_mode_sense10(int sg_fd, int llbaa, int dbd, int pc, int pg_code,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" mode sense (10): response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" mode sense (10): response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
diff --git a/lib/sg_cmds_extra.c b/lib/sg_cmds_extra.c
index ce3948eb..40fd136d 100644
--- a/lib/sg_cmds_extra.c
+++ b/lib/sg_cmds_extra.c
@@ -161,9 +161,14 @@ sg_ll_get_lba_status(int sg_fd, uint64_t start_llba, void * resp,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" get LBA status: response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" get LBA status: response\n");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -229,9 +234,14 @@ sg_ll_report_tgt_prt_grp2(int sg_fd, void * resp, int mx_resp_len,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" report target port group: response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" report target port group: response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -343,9 +353,14 @@ sg_ll_report_referrals(int sg_fd, uint64_t start_llba, int one_seg,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" report referrals: response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" report referrals: response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -470,9 +485,14 @@ sg_ll_receive_diag(int sg_fd, int pcv, int pg_code, void * resp,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" receive diagnostic results: response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" receive diagnostic results: response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -531,9 +551,14 @@ sg_ll_read_defect10(int sg_fd, int req_plist, int req_glist, int dl_format,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" read defect (10): response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" read defect (10): response\n");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -588,9 +613,14 @@ sg_ll_read_media_serial_num(int sg_fd, void * resp, int mx_resp_len,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" read media serial number: response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" read media serial number: response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -648,9 +678,14 @@ sg_ll_report_id_info(int sg_fd, int itype, void * resp, int max_resp_len,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" report identifying information: response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" report identifying information: response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -903,9 +938,14 @@ sg_ll_persistent_reserve_in(int sg_fd, int rq_servact, void * resp,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" persistent reserve in: response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" persistent reserve in: response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -1065,9 +1105,14 @@ sg_ll_read_long10(int sg_fd, int pblock, int correct, unsigned int lba,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" read long(10): response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" read long(10): response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -1150,9 +1195,14 @@ sg_ll_read_long16(int sg_fd, int pblock, int correct, uint64_t llba,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" read long(16): response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" read long(16): response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -1686,9 +1736,14 @@ sg_ll_read_buffer(int sg_fd, int mode, int buffer_id, int buffer_offset,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" read buffer: response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" read buffer: response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -1718,10 +1773,15 @@ sg_ll_write_buffer(int sg_fd, int mode, int buffer_id, int buffer_offset,
pr2ws("%02x ", wbufCmdBlk[k]);
pr2ws("\n");
if ((verbose > 1) && paramp && param_len) {
- pr2ws(" Write buffer parameter list%s:\n",
- ((param_len > 256) ? " (first 256 bytes)" : ""));
- dStrHexErr((const char *)paramp,
- ((param_len > 256) ? 256 : param_len), -1);
+ pr2ws(" Write buffer parameter list");
+ if (2 == verbose) {
+ pr2ws("%s:\n", (param_len > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)paramp,
+ (param_len > 256 ? 256 : param_len), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)paramp, param_len, 0);
+ }
}
}
@@ -1866,9 +1926,14 @@ sg_ll_read_block_limits(int sg_fd, void * resp, int mx_resp_len,
}
} else {
if ((verbose > 2) && (ret > 0)) {
- pr2ws(" read block limits: response%s\n",
- (ret > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ pr2ws(" read block limits: response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
diff --git a/lib/sg_cmds_mmc.c b/lib/sg_cmds_mmc.c
index 8bb85691..3dab6e7b 100644
--- a/lib/sg_cmds_mmc.c
+++ b/lib/sg_cmds_mmc.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2015 Douglas Gilbert.
+ * Copyright (c) 2008-2016 Douglas Gilbert.
* All rights reserved.
* Use of this source code is governed by a BSD-style
* license that can be found in the BSD_LICENSE file.
@@ -194,9 +194,14 @@ sg_ll_get_config(int sg_fd, int rt, int starting, void * resp,
if (len < 0)
len = 0;
len = (ret < len) ? ret : len;
- pr2ws(" get configuration: response%s\n",
- (len > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (len > 256 ? 256 : len), -1);
+ pr2ws(" get configuration: response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}
@@ -282,9 +287,14 @@ sg_ll_get_performance(int sg_fd, int data_type, unsigned int starting_lba,
if (len < 0)
len = 0;
len = (ret < len) ? ret : len;
- pr2ws(" get performance:: response%s\n",
- (len > 256 ? ", first 256 bytes" : ""));
- dStrHexErr((const char *)resp, (len > 256 ? 256 : len), -1);
+ pr2ws(" get performance:: response");
+ if (3 == verbose) {
+ pr2ws("%s:\n", (ret > 256 ? ", first 256 bytes" : ""));
+ dStrHexErr((const char *)resp, (ret > 256 ? 256 : ret), -1);
+ } else {
+ pr2ws(":\n");
+ dStrHexErr((const char *)resp, ret, 0);
+ }
}
ret = 0;
}