aboutsummaryrefslogtreecommitdiff
path: root/lib/sg_pr2serr.c
diff options
context:
space:
mode:
authorDouglas Gilbert <dgilbert@interlog.com>2022-07-19 04:02:56 +0000
committerDouglas Gilbert <dgilbert@interlog.com>2022-07-19 04:02:56 +0000
commit270cd7304dd379ee490df57120d281641c292398 (patch)
tree460d315db53c3b8214402650ad5b94bcba4c56dc /lib/sg_pr2serr.c
parentf1c4468bc5353fa361029e790b3ab370d22d5101 (diff)
downloadsg3_utils-270cd7304dd379ee490df57120d281641c292398.tar.gz
another round of sgj_* function renaming; sg_inq+sg_vpd: add new Block Limits VPD page code
git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@961 6180dd3e-e324-4e3e-922d-17de1ae2f315
Diffstat (limited to 'lib/sg_pr2serr.c')
-rw-r--r--lib/sg_pr2serr.c766
1 files changed, 382 insertions, 384 deletions
diff --git a/lib/sg_pr2serr.c b/lib/sg_pr2serr.c
index 05ea8e31..77ee84b4 100644
--- a/lib/sg_pr2serr.c
+++ b/lib/sg_pr2serr.c
@@ -267,8 +267,8 @@ sgj_init_state(sgj_state * jsp, const char * j_optarg)
}
sgj_opaque_p
-sgj_start(const char * util_name, const char * ver_str, int argc,
- char *argv[], sgj_state * jsp)
+sgj_start_r(const char * util_name, const char * ver_str, int argc,
+ char *argv[], sgj_state * jsp)
{
int k;
json_value * jvp = json_object_new(0);
@@ -336,7 +336,7 @@ sgj_start(const char * util_name, const char * ver_str, int argc,
if (bp) {
sg_json_usage(0, bp, 4096);
- sgj_pr_str_out_hr(jsp, bp, strlen(bp));
+ sgj_js_str_out(jsp, bp, strlen(bp));
free(bp);
}
}
@@ -345,7 +345,7 @@ sgj_start(const char * util_name, const char * ver_str, int argc,
}
void
-sgj_pr2file(sgj_state * jsp, sgj_opaque_p jop, int exit_status, FILE * fp)
+sgj_js2file(sgj_state * jsp, sgj_opaque_p jop, int exit_status, FILE * fp)
{
size_t len;
char * b;
@@ -364,7 +364,7 @@ sgj_pr2file(sgj_state * jsp, sgj_opaque_p jop, int exit_status, FILE * fp)
strncpy(d, "no errors", sizeof(d) - 1);
} else
strncpy(d, "not available", sizeof(d) - 1);
- sgj_add_nv_istr(jsp, jop, "exit_status", exit_status, NULL, d);
+ sgj_js_nv_istr(jsp, jop, "exit_status", exit_status, NULL, d);
}
memcpy(&out_settings, &def_out_settings, sizeof(out_settings));
if (jsp->pr_indent_size != def_out_settings.indent_size)
@@ -448,7 +448,7 @@ sgj_pr_hr(sgj_state * jsp, const char * fmt, ...)
/* jop will 'own' returned value (if non-NULL) */
sgj_opaque_p
-sgj_new_named_object(sgj_state * jsp, sgj_opaque_p jop, const char * name)
+sgj_named_subobject_r(sgj_state * jsp, sgj_opaque_p jop, const char * name)
{
sgj_opaque_p resp = NULL;
@@ -459,8 +459,8 @@ sgj_new_named_object(sgj_state * jsp, sgj_opaque_p jop, const char * name)
}
sgj_opaque_p
-sgj_new_snake_named_object(sgj_state * jsp, sgj_opaque_p jop,
- const char * conv2sname)
+sgj_snake_named_subobject_r(sgj_state * jsp, sgj_opaque_p jop,
+ const char * conv2sname)
{
if (jsp && jsp->pr_as_json && conv2sname) {
int olen = strlen(conv2sname);
@@ -476,7 +476,7 @@ sgj_new_snake_named_object(sgj_state * jsp, sgj_opaque_p jop,
/* jop will 'own' returned value (if non-NULL) */
sgj_opaque_p
-sgj_new_named_array(sgj_state * jsp, sgj_opaque_p jop, const char * name)
+sgj_named_subarray_r(sgj_state * jsp, sgj_opaque_p jop, const char * name)
{
sgj_opaque_p resp = NULL;
@@ -487,8 +487,8 @@ sgj_new_named_array(sgj_state * jsp, sgj_opaque_p jop, const char * name)
}
sgj_opaque_p
-sgj_new_snake_named_array(sgj_state * jsp, sgj_opaque_p jop,
- const char * conv2sname)
+sgj_snake_named_subarray_r(sgj_state * jsp, sgj_opaque_p jop,
+ const char * conv2sname)
{
if (jsp && jsp->pr_as_json && conv2sname) {
int olen = strlen(conv2sname);
@@ -504,21 +504,21 @@ sgj_new_snake_named_array(sgj_state * jsp, sgj_opaque_p jop,
/* Newly created object is un-attached to jsp->basep tree */
sgj_opaque_p
-sgj_new_unattached_object(sgj_state * jsp)
+sgj_new_unattached_object_r(sgj_state * jsp)
{
return (jsp && jsp->pr_as_json) ? json_object_new(0) : NULL;
}
/* Newly created array is un-attached to jsp->basep tree */
sgj_opaque_p
-sgj_new_unattached_array(sgj_state * jsp)
+sgj_new_unattached_array_r(sgj_state * jsp)
{
return (jsp && jsp->pr_as_json) ? json_array_new(0) : NULL;
}
sgj_opaque_p
-sgj_add_nv_s(sgj_state * jsp, sgj_opaque_p jop, const char * name,
- const char * value)
+sgj_js_nv_s(sgj_state * jsp, sgj_opaque_p jop, const char * name,
+ const char * value)
{
if (jsp && jsp->pr_as_json && value) {
if (name)
@@ -532,8 +532,8 @@ sgj_add_nv_s(sgj_state * jsp, sgj_opaque_p jop, const char * name,
}
sgj_opaque_p
-sgj_add_nv_s_len(sgj_state * jsp, sgj_opaque_p jop, const char * name,
- const char * value, int slen)
+sgj_js_nv_s_len(sgj_state * jsp, sgj_opaque_p jop, const char * name,
+ const char * value, int slen)
{
int k;
@@ -553,8 +553,8 @@ sgj_add_nv_s_len(sgj_state * jsp, sgj_opaque_p jop, const char * name,
}
sgj_opaque_p
-sgj_add_nv_i(sgj_state * jsp, sgj_opaque_p jop, const char * name,
- int64_t value)
+sgj_js_nv_i(sgj_state * jsp, sgj_opaque_p jop, const char * name,
+ int64_t value)
{
if (jsp && jsp->pr_as_json) {
if (name)
@@ -569,7 +569,7 @@ sgj_add_nv_i(sgj_state * jsp, sgj_opaque_p jop, const char * name,
}
sgj_opaque_p
-sgj_add_nv_b(sgj_state * jsp, sgj_opaque_p jop, const char * name, bool value)
+sgj_js_nv_b(sgj_state * jsp, sgj_opaque_p jop, const char * name, bool value)
{
if (jsp && jsp->pr_as_json) {
if (name)
@@ -584,8 +584,8 @@ sgj_add_nv_b(sgj_state * jsp, sgj_opaque_p jop, const char * name, bool value)
/* jop will 'own' ua_jop (if returned value is non-NULL) */
sgj_opaque_p
-sgj_add_nv_o(sgj_state * jsp, sgj_opaque_p jop, const char * name,
- sgj_opaque_p ua_jop)
+sgj_js_nv_o(sgj_state * jsp, sgj_opaque_p jop, const char * name,
+ sgj_opaque_p ua_jop)
{
if (jsp && jsp->pr_as_json && ua_jop) {
if (name)
@@ -599,70 +599,70 @@ sgj_add_nv_o(sgj_state * jsp, sgj_opaque_p jop, const char * name,
}
void
-sgj_add_nv_ihex(sgj_state * jsp, sgj_opaque_p jop, const char * name,
- uint64_t value)
+sgj_js_nv_ihex(sgj_state * jsp, sgj_opaque_p jop, const char * name,
+ uint64_t value)
{
if ((NULL == jsp) || (NULL == name) || (! jsp->pr_as_json))
return;
else if (jsp->pr_hex) {
- sgj_opaque_p jo2p = sgj_new_named_object(jsp, jop, name);
+ sgj_opaque_p jo2p = sgj_named_subobject_r(jsp, jop, name);
char b[64];
if (NULL == jo2p)
return;
- sgj_add_nv_i(jsp, jo2p, "i", (int64_t)value);
+ sgj_js_nv_i(jsp, jo2p, "i", (int64_t)value);
snprintf(b, sizeof(b), "%" PRIx64, value);
- sgj_add_nv_s(jsp, jo2p, "hex", b);
+ sgj_js_nv_s(jsp, jo2p, "hex", b);
} else
- sgj_add_nv_i(jsp, jop, name, (int64_t)value);
+ sgj_js_nv_i(jsp, jop, name, (int64_t)value);
}
static const char * sc_mn_s = "meaning";
void
-sgj_add_nv_istr(sgj_state * jsp, sgj_opaque_p jop, const char * name,
- int64_t val_i, const char * str_name, const char * val_s)
+sgj_js_nv_istr(sgj_state * jsp, sgj_opaque_p jop, const char * name,
+ int64_t val_i, const char * str_name, const char * val_s)
{
if ((NULL == jsp) || (! jsp->pr_as_json))
return;
else if (jsp->pr_string) {
- sgj_opaque_p jo2p = sgj_new_named_object(jsp, jop, name);
+ sgj_opaque_p jo2p = sgj_named_subobject_r(jsp, jop, name);
if (NULL == jo2p)
return;
- sgj_add_nv_i(jsp, jo2p, "i", (int64_t)val_i);
+ sgj_js_nv_i(jsp, jo2p, "i", (int64_t)val_i);
if (val_s)
- sgj_add_nv_s(jsp, jo2p, str_name ? str_name : sc_mn_s, val_s);
+ sgj_js_nv_s(jsp, jo2p, str_name ? str_name : sc_mn_s, val_s);
} else
- sgj_add_nv_i(jsp, jop, name, val_i);
+ sgj_js_nv_i(jsp, jop, name, val_i);
}
void
-sgj_add_nv_ihexstr(sgj_state * jsp, sgj_opaque_p jop, const char * name,
- int64_t val_i, const char * str_name, const char * val_s)
+sgj_js_nv_ihexstr(sgj_state * jsp, sgj_opaque_p jop, const char * name,
+ int64_t val_i, const char * str_name, const char * val_s)
{
if ((NULL == jsp) || (! jsp->pr_as_json))
return;
if ((! jsp->pr_hex) && (! jsp->pr_string))
- sgj_add_nv_i(jsp, jop, name, val_i);
+ sgj_js_nv_i(jsp, jop, name, val_i);
else {
char b[64];
- sgj_opaque_p jo2p = sgj_new_named_object(jsp, jop, name);
+ sgj_opaque_p jo2p = sgj_named_subobject_r(jsp, jop, name);
if (NULL == jo2p)
return;
if (jsp->pr_string) {
- sgj_add_nv_i(jsp, jo2p, "i", (int64_t)val_i);
+ sgj_js_nv_i(jsp, jo2p, "i", (int64_t)val_i);
if (jsp->pr_hex) {
snprintf(b, sizeof(b), "%" PRIx64, val_i);
- sgj_add_nv_s(jsp, jo2p, "hex", b);
+ sgj_js_nv_s(jsp, jo2p, "hex", b);
}
if (val_s)
- sgj_add_nv_s(jsp, jo2p, str_name ? str_name : sc_mn_s, val_s);
+ sgj_js_nv_s(jsp, jo2p, str_name ? str_name : sc_mn_s, val_s);
} else if (jsp->pr_hex) {
- sgj_add_nv_i(jsp, jo2p, "i", (int64_t)val_i);
+ sgj_js_nv_i(jsp, jo2p, "i", (int64_t)val_i);
snprintf(b, sizeof(b), "%" PRIx64, val_i);
- sgj_add_nv_s(jsp, jo2p, "hex", b);
+ sgj_js_nv_s(jsp, jo2p, "hex", b);
}
}
}
@@ -670,8 +670,8 @@ sgj_add_nv_ihexstr(sgj_state * jsp, sgj_opaque_p jop, const char * name,
static const char * sc_nex_s = "name_extra";
void
-sgj_add_nv_ihex_nex(sgj_state * jsp, sgj_opaque_p jop, const char * name,
- int64_t val_i, bool want_hex, const char * nex_s)
+sgj_js_nv_ihex_nex(sgj_state * jsp, sgj_opaque_p jop, const char * name,
+ int64_t val_i, bool want_hex, const char * nex_s)
{
bool as_hex = jsp->pr_hex && want_hex;
bool as_nex = jsp->pr_name_ex && nex_s;
@@ -679,32 +679,32 @@ sgj_add_nv_ihex_nex(sgj_state * jsp, sgj_opaque_p jop, const char * name,
if ((NULL == jsp) || (! jsp->pr_as_json))
return;
if (! (as_hex || as_nex))
- sgj_add_nv_i(jsp, jop, name, val_i);
+ sgj_js_nv_i(jsp, jop, name, val_i);
else {
char b[64];
sgj_opaque_p jo2p =
- sgj_new_named_object(jsp, jop, name);
+ sgj_named_subobject_r(jsp, jop, name);
if (NULL == jo2p)
return;
- sgj_add_nv_i(jsp, jo2p, "i", (int64_t)val_i);
+ sgj_js_nv_i(jsp, jo2p, "i", (int64_t)val_i);
if (as_nex) {
if (jsp->pr_hex && want_hex) {
snprintf(b, sizeof(b), "%" PRIx64, val_i);
- sgj_add_nv_s(jsp, jo2p, "hex", b);
+ sgj_js_nv_s(jsp, jo2p, "hex", b);
}
- sgj_add_nv_s(jsp, jo2p, sc_nex_s, nex_s);
+ sgj_js_nv_s(jsp, jo2p, sc_nex_s, nex_s);
} else if (as_hex) {
snprintf(b, sizeof(b), "%" PRIx64, val_i);
- sgj_add_nv_s(jsp, jo2p, "hex", b);
+ sgj_js_nv_s(jsp, jo2p, "hex", b);
}
}
}
/* Add hex byte strings irrespective of jsp->pr_hex setting. */
void
-sgj_add_nv_hex_bytes(sgj_state * jsp, sgj_opaque_p jop, const char * name,
- const uint8_t * byte_arr, int num_bytes)
+sgj_js_nv_hex_bytes(sgj_state * jsp, sgj_opaque_p jop, const char * name,
+ const uint8_t * byte_arr, int num_bytes)
{
int blen = num_bytes * 4;
char * bp;
@@ -714,15 +714,15 @@ sgj_add_nv_hex_bytes(sgj_state * jsp, sgj_opaque_p jop, const char * name,
bp = (char *)calloc(blen + 4, 1);
if (bp) {
hex2str(byte_arr, num_bytes, NULL, 2, blen, bp);
- sgj_add_nv_s(jsp, jop, name, bp);
+ sgj_js_nv_s(jsp, jop, name, bp);
free(bp);
}
}
void
-sgj_add_nv_ihexstr_nex(sgj_state * jsp, sgj_opaque_p jop, const char * name,
- int64_t val_i, bool want_hex, const char * str_name,
- const char * val_s, const char * nex_s)
+sgj_js_nv_ihexstr_nex(sgj_state * jsp, sgj_opaque_p jop, const char * name,
+ int64_t val_i, bool want_hex, const char * str_name,
+ const char * val_s, const char * nex_s)
{
bool as_hex = jsp->pr_hex && want_hex;
bool as_str = jsp->pr_string && val_s;
@@ -732,31 +732,31 @@ sgj_add_nv_ihexstr_nex(sgj_state * jsp, sgj_opaque_p jop, const char * name,
if ((NULL == jsp) || (! jsp->pr_as_json))
return;
if (! (as_hex || as_nex || as_str))
- sgj_add_nv_i(jsp, jop, name, val_i);
+ sgj_js_nv_i(jsp, jop, name, val_i);
else {
char b[64];
sgj_opaque_p jo2p =
- sgj_new_named_object(jsp, jop, name);
+ sgj_named_subobject_r(jsp, jop, name);
if (NULL == jo2p)
return;
- sgj_add_nv_i(jsp, jo2p, "i", (int64_t)val_i);
+ sgj_js_nv_i(jsp, jo2p, "i", (int64_t)val_i);
if (as_nex) {
if (as_hex) {
snprintf(b, sizeof(b), "%" PRIx64, val_i);
- sgj_add_nv_s(jsp, jo2p, "hex", b);
+ sgj_js_nv_s(jsp, jo2p, "hex", b);
}
if (as_str) {
- sgj_add_nv_s(jsp, jo2p, sname, val_s);
+ sgj_js_nv_s(jsp, jo2p, sname, val_s);
}
- sgj_add_nv_s(jsp, jo2p, sc_nex_s, nex_s);
+ sgj_js_nv_s(jsp, jo2p, sc_nex_s, nex_s);
} else if (as_hex) {
snprintf(b, sizeof(b), "%" PRIx64, val_i);
- sgj_add_nv_s(jsp, jo2p, "hex", b);
+ sgj_js_nv_s(jsp, jo2p, "hex", b);
if (as_str)
- sgj_add_nv_s(jsp, jo2p, sname, val_s);
+ sgj_js_nv_s(jsp, jo2p, sname, val_s);
} else if (as_str)
- sgj_add_nv_s(jsp, jo2p, sname, val_s);
+ sgj_js_nv_s(jsp, jo2p, sname, val_s);
}
}
@@ -764,7 +764,7 @@ sgj_add_nv_ihexstr_nex(sgj_state * jsp, sgj_opaque_p jop, const char * name,
* a '\0' is found or slen is exhausted. Add each line to jsp->out_hrp JSON
* array (if conditions met). */
void
-sgj_pr_str_out_hr(sgj_state * jsp, const char * sp, int slen)
+sgj_js_str_out(sgj_state * jsp, const char * sp, int slen)
{
char c;
int k, n;
@@ -781,13 +781,13 @@ sgj_pr_str_out_hr(sgj_state * jsp, const char * sp, int slen)
else if ('\n' == c) {
n = cur_sp - prev_sp;
/* when name is NULL, add to array (jsp->out_hrp) */
- sgj_add_nv_s_len(jsp, jsp->out_hrp, NULL, prev_sp, n);
+ sgj_js_nv_s_len(jsp, jsp->out_hrp, NULL, prev_sp, n);
prev_sp = cur_sp + 1;
}
}
if (prev_sp < cur_sp) {
n = cur_sp - prev_sp;
- sgj_add_nv_s_len(jsp, jsp->out_hrp, NULL, prev_sp, n);
+ sgj_js_nv_s_len(jsp, jsp->out_hrp, NULL, prev_sp, n);
}
}
@@ -874,9 +874,9 @@ sgj_jtype_to_s(char * b, int blen_max, json_value * jvp)
}
static int
-sgj_pr_hr_js_hr(char * b, int blen_max, const char * name,
- enum sgj_separator_t sep, bool use_jvp,
- json_value * jvp, int64_t val_instead)
+sgj_hr_js_helper(char * b, int blen_max, const char * name,
+ enum sgj_separator_t sep, bool use_jvp,
+ json_value * jvp, int64_t val_instead)
{
int n = 0;
@@ -921,9 +921,9 @@ sgj_pr_hr_js_hr(char * b, int blen_max, const char * name,
}
static void
-sgj_pr_hr_js_xx(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
- const char * name, enum sgj_separator_t sep,
- json_value * jvp, const char * nex_s)
+sgj_hr_js_xx(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
+ const char * name, enum sgj_separator_t sep,
+ json_value * jvp, bool hex_as_well, const char * nex_s)
{
bool eaten = false;
bool as_json = (jsp && jsp->pr_as_json);
@@ -972,13 +972,13 @@ sgj_pr_hr_js_xx(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
case json_string:
break;
case json_integer:
- sgj_add_nv_ihex_nex(jsp, jop, jname, jvp->u.integer,
- false, nex_s);
+ sgj_js_nv_ihex_nex(jsp, jop, jname, jvp->u.integer,
+ hex_as_well, nex_s);
done = true;
break;
case json_boolean:
- sgj_add_nv_ihex_nex(jsp, jop, jname, jvp->u.boolean,
- false, nex_s);
+ sgj_js_nv_ihex_nex(jsp, jop, jname, jvp->u.boolean,
+ hex_as_well, nex_s);
done = true;
break;
case json_none:
@@ -994,7 +994,7 @@ sgj_pr_hr_js_xx(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
}
}
if (jvp && ((as_json && jsp->pr_out_hr) || (! as_json)))
- n += sgj_pr_hr_js_hr(b + n, blen - n, name, sep, true, jvp, 0);
+ n += sgj_hr_js_helper(b + n, blen - n, name, sep, true, jvp, 0);
if (as_json && jsp->pr_out_hr)
json_array_push((json_value *)jsp->out_hrp, json_string_new(b));
@@ -1006,51 +1006,52 @@ fini:
}
void
-sgj_pr_hr_js_vs(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
- const char * name, enum sgj_separator_t sep,
- const char * value)
+sgj_hr_js_vs(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
+ const char * name, enum sgj_separator_t sep,
+ const char * value)
{
json_value * jvp;
/* make json_value even if jsp->pr_as_json is false */
jvp = value ? json_string_new(value) : NULL;
- sgj_pr_hr_js_xx(jsp, jop, leadin_sp, name, sep, jvp, NULL);
+ sgj_hr_js_xx(jsp, jop, leadin_sp, name, sep, jvp, false, NULL);
}
void
-sgj_pr_hr_js_vi(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
- const char * name, enum sgj_separator_t sep, int64_t value)
+sgj_hr_js_vi(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
+ const char * name, enum sgj_separator_t sep, int64_t value,
+ bool hex_as_well)
{
json_value * jvp;
jvp = json_integer_new(value);
- sgj_pr_hr_js_xx(jsp, jop, leadin_sp, name, sep, jvp, NULL);
+ sgj_hr_js_xx(jsp, jop, leadin_sp, name, sep, jvp, hex_as_well, NULL);
}
void
-sgj_pr_hr_js_vi_nex(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
+sgj_hr_js_vi_nex(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
const char * name, enum sgj_separator_t sep,
- int64_t value, const char * nex_s)
+ int64_t value, bool hex_as_well, const char * nex_s)
{
json_value * jvp;
jvp = json_integer_new(value);
- sgj_pr_hr_js_xx(jsp, jop, leadin_sp, name, sep, jvp, nex_s);
+ sgj_hr_js_xx(jsp, jop, leadin_sp, name, sep, jvp, hex_as_well, nex_s);
}
void
-sgj_pr_hr_js_vb(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
+sgj_hr_js_vb(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
const char * name, enum sgj_separator_t sep, bool value)
{
json_value * jvp;
jvp = json_boolean_new(value);
- sgj_pr_hr_js_xx(jsp, jop, leadin_sp, name, sep, jvp, NULL);
+ sgj_hr_js_xx(jsp, jop, leadin_sp, name, sep, jvp, false, NULL);
}
sgj_opaque_p
-sgj_pr_hr_js_subo(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
- const char * name, enum sgj_separator_t sep, int64_t value)
+sgj_hr_js_subo_r(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
+ const char * name, enum sgj_separator_t sep, int64_t value)
{
bool as_json = (jsp && jsp->pr_as_json);
int n = 0;
@@ -1064,7 +1065,7 @@ sgj_pr_hr_js_subo(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
b[n] = ' ';
b[n] = '\0';
if ((! as_json) || (jsp && jsp->pr_out_hr))
- n += sgj_pr_hr_js_hr(b + n, blen - n, name, sep, false, NULL, value);
+ n += sgj_hr_js_helper(b + n, blen - n, name, sep, false, NULL, value);
if (as_json && jsp->pr_out_hr)
json_array_push((json_value *)jsp->out_hrp, json_string_new(b));
@@ -1073,9 +1074,9 @@ sgj_pr_hr_js_subo(sgj_state * jsp, sgj_opaque_p jop, int leadin_sp,
if (as_json) {
sgj_name_to_snake(name, b, blen);
- jo2p = sgj_new_named_object(jsp, jop, b);
+ jo2p = sgj_named_subobject_r(jsp, jop, b);
if (jo2p)
- sgj_add_nv_i(jsp, jo2p, "i", value);
+ sgj_js_nv_i(jsp, jo2p, "i", value);
return jo2p;
}
return NULL;
@@ -1090,8 +1091,8 @@ static const char * naa_exp = "Network Address Authority";
static const char * aoi_exp = "IEEE-Administered Organizational Identifier";
bool
-sgj_pr_js_designation_descriptor(sgj_state * jsp, sgj_opaque_p jop,
- const uint8_t * ddp, int dd_len)
+sgj_js_designation_descriptor(sgj_state * jsp, sgj_opaque_p jop,
+ const uint8_t * ddp, int dd_len)
{
int p_id, piv, c_set, assoc, desig_type, d_id, naa;
int n, aoi, vsi, dlen;
@@ -1106,14 +1107,14 @@ sgj_pr_js_designation_descriptor(sgj_state * jsp, sgj_opaque_p jop,
static const int elen = sizeof(e);
if (dd_len < 4) {
- sgj_add_nv_s(jsp, jop, ddep, "too short");
+ sgj_js_nv_s(jsp, jop, ddep, "too short");
return false;
}
dlen = ddp[3];
if (dlen > (dd_len - 4)) {
snprintf(e, elen, "too long: says it is %d bytes, but given %d "
"bytes\n", dlen, dd_len - 4);
- sgj_add_nv_s(jsp, jop, ddep, e);
+ sgj_js_nv_s(jsp, jop, ddep, e);
return false;
}
ip = ddp + 4;
@@ -1125,172 +1126,171 @@ sgj_pr_js_designation_descriptor(sgj_state * jsp, sgj_opaque_p jop,
cp = sg_get_desig_assoc_str(assoc);
if (assoc == 3)
cp = "Reserved [0x3]"; /* should not happen */
- sgj_add_nv_ihexstr(jsp, jop, "association", assoc, NULL, cp);
+ sgj_js_nv_ihexstr(jsp, jop, "association", assoc, NULL, cp);
cp = sg_get_desig_type_str(desig_type);
if (NULL == cp)
cp = "unknown";
- sgj_add_nv_ihexstr(jsp, jop, "designator_type", desig_type,
+ sgj_js_nv_ihexstr(jsp, jop, "designator_type", desig_type,
NULL, cp);
cp = sg_get_desig_code_set_str(c_set);
if (NULL == cp)
cp = "unknown";
- sgj_add_nv_ihexstr(jsp, jop, "code_set", desig_type,
- NULL, cp);
- sgj_add_nv_ihex_nex(jsp, jop, "piv", piv, false,
- "Protocol Identifier Valid");
+ sgj_js_nv_ihexstr(jsp, jop, "code_set", desig_type,
+ NULL, cp);
+ sgj_js_nv_ihex_nex(jsp, jop, "piv", piv, false,
+ "Protocol Identifier Valid");
sg_get_trans_proto_str(p_id, elen, e);
- sgj_add_nv_ihexstr(jsp, jop, "protocol_identifier", p_id, NULL, e);
+ sgj_js_nv_ihexstr(jsp, jop, "protocol_identifier", p_id, NULL, e);
switch (desig_type) {
case 0: /* vendor specific */
- sgj_add_nv_hex_bytes(jsp, jop, "vendor_specific_hexbytes", ip, dlen);
+ sgj_js_nv_hex_bytes(jsp, jop, "vendor_specific_hexbytes", ip, dlen);
break;
case 1: /* T10 vendor identification */
n = (dlen < 8) ? dlen : 8;
snprintf(b, blen, "%.*s", n, ip);
- sgj_add_nv_s(jsp, jop, "t10_vendor_identification", b);
+ sgj_js_nv_s(jsp, jop, "t10_vendor_identification", b);
b[0] = '\0';
if (dlen > 8)
snprintf(b, blen, "%.*s", dlen - 8, ip + 8);
- sgj_add_nv_s(jsp, jop, "vendor_specific_identifier", b);
+ sgj_js_nv_s(jsp, jop, "vendor_specific_identifier", b);
break;
case 2: /* EUI-64 based */
- sgj_add_nv_i(jsp, jop, "eui_64_based_designator_length", dlen);
+ sgj_js_nv_i(jsp, jop, "eui_64_based_designator_length", dlen);
ull = sg_get_unaligned_be64(ip);
switch (dlen) {
case 8:
- sgj_add_nv_ihex(jsp, jop, "ieee_identifier", ull);
+ sgj_js_nv_ihex(jsp, jop, "ieee_identifier", ull);
break;
case 12:
- sgj_add_nv_ihex(jsp, jop, "ieee_identifier", ull);
- sgj_add_nv_ihex(jsp, jop, "directory_id",
+ sgj_js_nv_ihex(jsp, jop, "ieee_identifier", ull);
+ sgj_js_nv_ihex(jsp, jop, "directory_id",
sg_get_unaligned_be32(ip + 8));
break;
case 16:
- sgj_add_nv_ihex(jsp, jop, "identifier_extension", ull);
- sgj_add_nv_ihex(jsp, jop, "ieee_identifier",
+ sgj_js_nv_ihex(jsp, jop, "identifier_extension", ull);
+ sgj_js_nv_ihex(jsp, jop, "ieee_identifier",
sg_get_unaligned_be64(ip + 8));
break;
default:
- sgj_add_nv_s(jsp, jop, "eui_64", "decoding failed");
+ sgj_js_nv_s(jsp, jop, "eui_64", "decoding failed");
break;
}
break;
case 3: /* NAA <n> */
if (jsp->pr_hex)
- sgj_add_nv_hex_bytes(jsp, jop, "full_naa_hexbytes", ip, dlen);
+ sgj_js_nv_hex_bytes(jsp, jop, "full_naa_hexbytes", ip, dlen);
naa = (ip[0] >> 4) & 0xff;
switch (naa) {
case 2:
naa_sp = "IEEE Extended";
- sgj_add_nv_ihexstr_nex(jsp, jop, "naa", naa, false, NULL, naa_sp,
- naa_exp);
+ sgj_js_nv_ihexstr_nex(jsp, jop, "naa", naa, false, NULL, naa_sp,
+ naa_exp);
d_id = (((ip[0] & 0xf) << 8) | ip[1]);
- sgj_add_nv_ihex(jsp, jop, "vendor_specific_identifier_a", d_id);
+ sgj_js_nv_ihex(jsp, jop, "vendor_specific_identifier_a", d_id);
aoi = sg_get_unaligned_be24(ip + 2);
- sgj_add_nv_ihex_nex(jsp, jop, "aoi", aoi, true, aoi_exp);
+ sgj_js_nv_ihex_nex(jsp, jop, "aoi", aoi, true, aoi_exp);
vsi = sg_get_unaligned_be24(ip + 5);
- sgj_add_nv_ihex(jsp, jop, "vendor_specific_identifier_b", vsi);
+ sgj_js_nv_ihex(jsp, jop, "vendor_specific_identifier_b", vsi);
break;
case 3:
naa_sp = "Locally Assigned";
- sgj_add_nv_ihexstr_nex(jsp, jop, "naa", naa, false, NULL, naa_sp,
- naa_exp);
+ sgj_js_nv_ihexstr_nex(jsp, jop, "naa", naa, false, NULL, naa_sp,
+ naa_exp);
ull = sg_get_unaligned_be64(ip + 0) & 0xfffffffffffffffULL;
- sgj_add_nv_ihex(jsp, jop, "locally_administered_value", ull);
+ sgj_js_nv_ihex(jsp, jop, "locally_administered_value", ull);
break;
case 5:
naa_sp = "IEEE Registered";
- sgj_add_nv_ihexstr_nex(jsp, jop, "naa", naa, false, NULL, naa_sp,
- naa_exp);
+ sgj_js_nv_ihexstr_nex(jsp, jop, "naa", naa, false, NULL, naa_sp,
+ naa_exp);
aoi = (sg_get_unaligned_be32(ip + 0) >> 4) & 0xffffff;
- sgj_add_nv_ihex_nex(jsp, jop, "aoi", aoi, true, aoi_exp);
+ sgj_js_nv_ihex_nex(jsp, jop, "aoi", aoi, true, aoi_exp);
ull = sg_get_unaligned_be48(ip + 2) & 0xfffffffffULL;
- sgj_add_nv_ihex(jsp, jop, "vendor_specific_identifier", ull);
+ sgj_js_nv_ihex(jsp, jop, "vendor_specific_identifier", ull);
break;
case 6:
naa_sp = "IEEE Registered Extended";
- sgj_add_nv_ihexstr_nex(jsp, jop, "naa", naa, false, NULL, naa_sp,
- naa_exp);
+ sgj_js_nv_ihexstr_nex(jsp, jop, "naa", naa, false, NULL, naa_sp,
+ naa_exp);
aoi = (sg_get_unaligned_be32(ip + 0) >> 4) & 0xffffff;
- sgj_add_nv_ihex_nex(jsp, jop, "aoi", aoi, true, aoi_exp);
+ sgj_js_nv_ihex_nex(jsp, jop, "aoi", aoi, true, aoi_exp);
ull = sg_get_unaligned_be48(ip + 2) & 0xfffffffffULL;
- sgj_add_nv_ihex(jsp, jop, "vendor_specific_identifier", ull);
+ sgj_js_nv_ihex(jsp, jop, "vendor_specific_identifier", ull);
ull = sg_get_unaligned_be64(ip + 8);
- sgj_add_nv_ihex(jsp, jop, "vendor_specific_identifier_extension",
- ull);
+ sgj_js_nv_ihex(jsp, jop, "vendor_specific_identifier_extension",
+ ull);
break;
default:
snprintf(b, blen, "unknown NAA value=0x%x", naa);
- sgj_add_nv_ihexstr_nex(jsp, jop, "naa", naa, true, NULL, b,
- naa_exp);
- sgj_add_nv_hex_bytes(jsp, jop, "full_naa_hexbytes", ip, dlen);
+ sgj_js_nv_ihexstr_nex(jsp, jop, "naa", naa, true, NULL, b,
+ naa_exp);
+ sgj_js_nv_hex_bytes(jsp, jop, "full_naa_hexbytes", ip, dlen);
break;
}
break;
case 4: /* Relative target port */
if (jsp->pr_hex)
- sgj_add_nv_hex_bytes(jsp, jop, "relative_target_port_hexbytes",
- ip, dlen);
- sgj_add_nv_ihex(jsp, jop, "relative_target_port_identifier",
- sg_get_unaligned_be16(ip + 2));
+ sgj_js_nv_hex_bytes(jsp, jop, "relative_target_port_hexbytes",
+ ip, dlen);
+ sgj_js_nv_ihex(jsp, jop, "relative_target_port_identifier",
+ sg_get_unaligned_be16(ip + 2));
break;
case 5: /* (primary) Target port group */
if (jsp->pr_hex)
- sgj_add_nv_hex_bytes(jsp, jop, "target_port_group_hexbytes",
- ip, dlen);
- sgj_add_nv_ihex(jsp, jop, "target_port_group",
- sg_get_unaligned_be16(ip + 2));
+ sgj_js_nv_hex_bytes(jsp, jop, "target_port_group_hexbytes",
+ ip, dlen);
+ sgj_js_nv_ihex(jsp, jop, "target_port_group",
+ sg_get_unaligned_be16(ip + 2));
break;
case 6: /* Logical unit group */
if (jsp->pr_hex)
- sgj_add_nv_hex_bytes(jsp, jop, "logical_unit_group_hexbytes",
- ip, dlen);
- sgj_add_nv_ihex(jsp, jop, "logical_unit_group",
- sg_get_unaligned_be16(ip + 2));
+ sgj_js_nv_hex_bytes(jsp, jop, "logical_unit_group_hexbytes",
+ ip, dlen);
+ sgj_js_nv_ihex(jsp, jop, "logical_unit_group",
+ sg_get_unaligned_be16(ip + 2));
break;
case 7: /* MD5 logical unit identifier */
- sgj_add_nv_hex_bytes(jsp, jop, "md5_logical_unit_hexbytes",
- ip, dlen);
+ sgj_js_nv_hex_bytes(jsp, jop, "md5_logical_unit_hexbytes",
+ ip, dlen);
break;
case 8: /* SCSI name string */
if (jsp->pr_hex)
- sgj_add_nv_hex_bytes(jsp, jop, "scsi_name_string_hexbytes",
- ip, dlen);
+ sgj_js_nv_hex_bytes(jsp, jop, "scsi_name_string_hexbytes",
+ ip, dlen);
snprintf(b, blen, "%.*s", dlen, ip);
- sgj_add_nv_s(jsp, jop, "scsi_name_string", b);
+ sgj_js_nv_s(jsp, jop, "scsi_name_string", b);
break;
case 9: /* Protocol specific port identifier */
if (jsp->pr_hex)
- sgj_add_nv_hex_bytes(jsp, jop,
- "protocol_specific_port_identifier_hexbytes",
- ip, dlen);
+ sgj_js_nv_hex_bytes(jsp, jop,
+ "protocol_specific_port_identifier_hexbytes",
+ ip, dlen);
if (TPROTO_UAS == p_id) {
- jo2p = sgj_new_named_object(jsp, jop,
+ jo2p = sgj_named_subobject_r(jsp, jop,
"usb_target_port_identifier");
- sgj_add_nv_ihex(jsp, jo2p, "device_address", 0x7f & ip[0]);
- sgj_add_nv_ihex(jsp, jo2p, "interface_number", ip[2]);
+ sgj_js_nv_ihex(jsp, jo2p, "device_address", 0x7f & ip[0]);
+ sgj_js_nv_ihex(jsp, jo2p, "interface_number", ip[2]);
} else if (TPROTO_SOP == p_id) {
- jo2p = sgj_new_named_object(jsp, jop, "pci_express_routing_id");
- sgj_add_nv_ihex(jsp, jo2p, "routing_id",
- sg_get_unaligned_be16(ip + 0));
+ jo2p = sgj_named_subobject_r(jsp, jop, "pci_express_routing_id");
+ sgj_js_nv_ihex(jsp, jo2p, "routing_id",
+ sg_get_unaligned_be16(ip + 0));
} else
- sgj_add_nv_s(jsp, jop, "protocol_specific_port_identifier",
- "decoding failure");
+ sgj_js_nv_s(jsp, jop, "protocol_specific_port_identifier",
+ "decoding failure");
break;
case 0xa: /* UUID identifier */
if (jsp->pr_hex)
- sgj_add_nv_hex_bytes(jsp, jop, "uuid_hexbytes",
- ip, dlen);
+ sgj_js_nv_hex_bytes(jsp, jop, "uuid_hexbytes", ip, dlen);
sg_t10_uuid_desig2str(ip, dlen, c_set, false, true, NULL, blen, b);
n = strlen(b);
if ((n > 0) && ('\n' == b[n - 1]))
b[n - 1] = '\0';
- sgj_add_nv_s(jsp, jop, "uuid", b);
+ sgj_js_nv_s(jsp, jop, "uuid", b);
break;
default: /* reserved */
- sgj_add_nv_hex_bytes(jsp, jop, "reserved_designator_hexbytes",
- ip, dlen);
+ sgj_js_nv_hex_bytes(jsp, jop, "reserved_designator_hexbytes",
+ ip, dlen);
break;
}
return true;
@@ -1305,20 +1305,20 @@ sgj_progress_indication(sgj_state * jsp, sgj_opaque_p jop,
char b[64];
if (is_another)
- jo2p = sgj_new_named_object(jsp, jop, "another_progress_indication");
+ jo2p = sgj_named_subobject_r(jsp, jop, "another_progress_indication");
else
- jo2p = sgj_new_named_object(jsp, jop, "progress_indication");
+ jo2p = sgj_named_subobject_r(jsp, jop, "progress_indication");
if (NULL == jo2p)
return;
progress = prog_indic;
- sgj_add_nv_i(jsp, jo2p, "i", progress);
+ sgj_js_nv_i(jsp, jo2p, "i", progress);
snprintf(b, sizeof(b), "%x", progress);
- sgj_add_nv_s(jsp, jo2p, "hex", b);
+ sgj_js_nv_s(jsp, jo2p, "hex", b);
progress *= 100;
pr = progress / 65536;
rem = (progress % 65536) / 656;
snprintf(b, sizeof(b), "%d.02%d%%\n", pr, rem);
- sgj_add_nv_s(jsp, jo2p, "percentage", b);
+ sgj_js_nv_s(jsp, jo2p, "percentage", b);
}
static bool
@@ -1328,69 +1328,69 @@ sgj_decode_sks(sgj_state * jsp, sgj_opaque_p jop, const uint8_t * dp, int dlen,
switch (sense_key) {
case SPC_SK_ILLEGAL_REQUEST:
if (dlen < 3) {
- sgj_add_nv_s(jsp, jop, "illegal_request_sks", dtsp);
+ sgj_js_nv_s(jsp, jop, "illegal_request_sks", dtsp);
return false;
}
- sgj_add_nv_ihex_nex(jsp, jop, "sksv", !! (dp[0] & 0x80), false,
- sksvp);
- sgj_add_nv_ihex_nex(jsp, jop, "c_d", !! (dp[0] & 0x40), false,
- "c: cdb; d: data-out");
- sgj_add_nv_ihex_nex(jsp, jop, "bpv", !! (dp[0] & 0x8), false,
- "bit pointer (index) valid");
- sgj_add_nv_i(jsp, jop, "bit_pointer", dp[0] & 0x7);
- sgj_add_nv_ihex(jsp, jop, "field_pointer",
- sg_get_unaligned_be16(dp + 1));
+ sgj_js_nv_ihex_nex(jsp, jop, "sksv", !! (dp[0] & 0x80), false,
+ sksvp);
+ sgj_js_nv_ihex_nex(jsp, jop, "c_d", !! (dp[0] & 0x40), false,
+ "c: cdb; d: data-out");
+ sgj_js_nv_ihex_nex(jsp, jop, "bpv", !! (dp[0] & 0x8), false,
+ "bit pointer (index) valid");
+ sgj_js_nv_i(jsp, jop, "bit_pointer", dp[0] & 0x7);
+ sgj_js_nv_ihex(jsp, jop, "field_pointer",
+ sg_get_unaligned_be16(dp + 1));
break;
case SPC_SK_HARDWARE_ERROR:
case SPC_SK_MEDIUM_ERROR:
case SPC_SK_RECOVERED_ERROR:
if (dlen < 3) {
- sgj_add_nv_s(jsp, jop, "actual_retry_count_sks", dtsp);
+ sgj_js_nv_s(jsp, jop, "actual_retry_count_sks", dtsp);
return false;
}
- sgj_add_nv_ihex_nex(jsp, jop, "sksv", !! (dp[0] & 0x80), false,
- sksvp);
- sgj_add_nv_ihex(jsp, jop, "actual_retry_count",
- sg_get_unaligned_be16(dp + 1));
+ sgj_js_nv_ihex_nex(jsp, jop, "sksv", !! (dp[0] & 0x80), false,
+ sksvp);
+ sgj_js_nv_ihex(jsp, jop, "actual_retry_count",
+ sg_get_unaligned_be16(dp + 1));
break;
case SPC_SK_NO_SENSE:
case SPC_SK_NOT_READY:
if (dlen < 7) {
- sgj_add_nv_s(jsp, jop, "progress_indication_sks", dtsp);
+ sgj_js_nv_s(jsp, jop, "progress_indication_sks", dtsp);
return false;
}
- sgj_add_nv_ihex_nex(jsp, jop, "sksv", !! (dp[0] & 0x80), false,
- sksvp);
+ sgj_js_nv_ihex_nex(jsp, jop, "sksv", !! (dp[0] & 0x80), false,
+ sksvp);
sgj_progress_indication(jsp, jop, sg_get_unaligned_be16(dp + 1),
false);
break;
case SPC_SK_COPY_ABORTED:
if (dlen < 7) {
- sgj_add_nv_s(jsp, jop, "segment_indication_sks", dtsp);
+ sgj_js_nv_s(jsp, jop, "segment_indication_sks", dtsp);
return false;
}
- sgj_add_nv_ihex_nex(jsp, jop, "sksv", !! (dp[0] & 0x80), false,
- sksvp);
- sgj_add_nv_ihex_nex(jsp, jop, "sd", !! (dp[0] & 0x20), false,
- "field pointer relative to: 1->segment "
- "descriptor, 0->parameter list");
- sgj_add_nv_ihex_nex(jsp, jop, "bpv", !! (dp[0] & 0x8), false,
- "bit pointer (index) valid");
- sgj_add_nv_i(jsp, jop, "bit_pointer", dp[0] & 0x7);
- sgj_add_nv_ihex(jsp, jop, "field_pointer",
- sg_get_unaligned_be16(dp + 1));
+ sgj_js_nv_ihex_nex(jsp, jop, "sksv", !! (dp[0] & 0x80), false,
+ sksvp);
+ sgj_js_nv_ihex_nex(jsp, jop, "sd", !! (dp[0] & 0x20), false,
+ "field pointer relative to: 1->segment "
+ "descriptor, 0->parameter list");
+ sgj_js_nv_ihex_nex(jsp, jop, "bpv", !! (dp[0] & 0x8), false,
+ "bit pointer (index) valid");
+ sgj_js_nv_i(jsp, jop, "bit_pointer", dp[0] & 0x7);
+ sgj_js_nv_ihex(jsp, jop, "field_pointer",
+ sg_get_unaligned_be16(dp + 1));
break;
case SPC_SK_UNIT_ATTENTION:
if (dlen < 7) {
- sgj_add_nv_s(jsp, jop, "segment_indication_sks", dtsp);
+ sgj_js_nv_s(jsp, jop, "segment_indication_sks", dtsp);
return false;
}
- sgj_add_nv_ihex_nex(jsp, jop, "sksv", !! (dp[0] & 0x80), false,
- sksvp);
- sgj_add_nv_i(jsp, jop, "overflow", !! (dp[0] & 0x80));
+ sgj_js_nv_ihex_nex(jsp, jop, "sksv", !! (dp[0] & 0x80), false,
+ sksvp);
+ sgj_js_nv_i(jsp, jop, "overflow", !! (dp[0] & 0x80));
break;
default:
- sgj_add_nv_ihex(jsp, jop, "unexpected_sense_key", sense_key);
+ sgj_js_nv_ihex(jsp, jop, "unexpected_sense_key", sense_key);
return false;
}
return true;
@@ -1435,41 +1435,41 @@ sgj_uds_referral_descriptor(sgj_state * jsp, sgj_opaque_p jop,
sgj_opaque_p jap, jo2p, ja2p, jo3p;
char c[40];
- sgj_add_nv_ihex_nex(jsp, jop, "not_all_r", (dp[2] & 0x1), false,
- "Not all referrals");
+ sgj_js_nv_ihex_nex(jsp, jop, "not_all_r", (dp[2] & 0x1), false,
+ "Not all referrals");
dp += 4;
- jap = sgj_new_named_array(jsp, jop,
- "user_data_segment_referral_descriptor_list");
+ jap = sgj_named_subarray_r(jsp, jop,
+ "user_data_segment_referral_descriptor_list");
for (k = 0, f = 1; (k + 4) < dlen; k += g, dp += g, ++f) {
int ntpgd = dp[3];
- jo2p = sgj_new_unattached_object(jsp);
+ jo2p = sgj_new_unattached_object_r(jsp);
g = (ntpgd * 4) + 20;
- sgj_add_nv_ihex(jsp, jo2p, "number_of_target_port_group_descriptors",
- ntpgd);
+ sgj_js_nv_ihex(jsp, jo2p, "number_of_target_port_group_descriptors",
+ ntpgd);
if ((k + g) > dlen) {
- sgj_add_nv_i(jsp, jo2p, "truncated_descriptor_dlen", dlen);
- sgj_add_nv_o(jsp, jap, NULL /* name */, jo2p);
+ sgj_js_nv_i(jsp, jo2p, "truncated_descriptor_dlen", dlen);
+ sgj_js_nv_o(jsp, jap, NULL /* name */, jo2p);
return false;
}
ull = sg_get_unaligned_be64(dp + 4);
- sgj_add_nv_ihex(jsp, jo2p, "first_user_date_sgment_lba", ull);
+ sgj_js_nv_ihex(jsp, jo2p, "first_user_date_sgment_lba", ull);
ull = sg_get_unaligned_be64(dp + 12);
- sgj_add_nv_ihex(jsp, jo2p, "last_user_date_sgment_lba", ull);
- ja2p = sgj_new_named_array(jsp, jo2p,
- "target_port_group_descriptor_list");
+ sgj_js_nv_ihex(jsp, jo2p, "last_user_date_sgment_lba", ull);
+ ja2p = sgj_named_subarray_r(jsp, jo2p,
+ "target_port_group_descriptor_list");
for (j = 0; j < ntpgd; ++j) {
- jo3p = sgj_new_unattached_object(jsp);
+ jo3p = sgj_new_unattached_object_r(jsp);
tp = dp + 20 + (j * 4);
aas = tp[0] & 0xf;
decode_tpgs_state(aas, c, sizeof(c));
- sgj_add_nv_ihexstr(jsp, jo3p, "asymmetric_access_state", aas,
- NULL, c);
- sgj_add_nv_ihex(jsp, jo3p, "target_port_group",
- sg_get_unaligned_be16(tp + 2));
- sgj_add_nv_o(jsp, ja2p, NULL /* name */, jo3p);
+ sgj_js_nv_ihexstr(jsp, jo3p, "asymmetric_access_state", aas,
+ NULL, c);
+ sgj_js_nv_ihex(jsp, jo3p, "target_port_group",
+ sg_get_unaligned_be16(tp + 2));
+ sgj_js_nv_o(jsp, ja2p, NULL /* name */, jo3p);
}
- sgj_add_nv_o(jsp, jap, NULL /* name */, jo2p);
+ sgj_js_nv_o(jsp, jap, NULL /* name */, jo2p);
}
return true;
}
@@ -1484,9 +1484,9 @@ static const char * dd_usage_reason_str_arr[] = {
};
static bool
-sgj_pr_js_sense_descriptors(sgj_state * jsp, sgj_opaque_p jop,
- const struct sg_scsi_sense_hdr * sshp,
- const uint8_t * sbp, int sb_len)
+sgj_js_sense_descriptors(sgj_state * jsp, sgj_opaque_p jop,
+ const struct sg_scsi_sense_hdr * sshp,
+ const uint8_t * sbp, int sb_len)
{
bool processed = true;
int add_sb_len, desc_len, k, dt, sense_key, n, sds;
@@ -1506,13 +1506,13 @@ sgj_pr_js_sense_descriptors(sgj_state * jsp, sgj_opaque_p jop,
add_sb_len = sshp->additional_length;
add_sb_len = (add_sb_len < sb_len) ? add_sb_len : sb_len;
sense_key = sshp->sense_key;
- jap = sgj_new_named_array(jsp, jop, "sense_data_descriptor_list");
+ jap = sgj_named_subarray_r(jsp, jop, "sense_data_descriptor_list");
for (descp = sbp, k = 0; (k < add_sb_len);
k += desc_len, descp += desc_len) {
int add_d_len = (k < (add_sb_len - 1)) ? descp[1] : -1;
- jo2p = sgj_new_unattached_object(jsp);
+ jo2p = sgj_new_unattached_object_r(jsp);
if ((k + add_d_len + 2) > add_sb_len)
add_d_len = add_sb_len - k - 2;
desc_len = add_d_len + 2;
@@ -1520,152 +1520,152 @@ sgj_pr_js_sense_descriptors(sgj_state * jsp, sgj_opaque_p jop,
dt = descp[0];
switch (dt) {
case 0:
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt,
- NULL, "Information");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt,
+ NULL, "Information");
if (add_d_len >= 10) {
int valid = !! (0x80 & descp[2]);
- sgj_add_nv_ihexstr(jsp, jo2p, "valid", valid, NULL,
- valid ? "as per T10" : "Vendor specific");
- sgj_add_nv_ihex(jsp, jo2p, "information",
- sg_get_unaligned_be64(descp + 4));
+ sgj_js_nv_ihexstr(jsp, jo2p, "valid", valid, NULL,
+ valid ? "as per T10" : "Vendor specific");
+ sgj_js_nv_ihex(jsp, jo2p, "information",
+ sg_get_unaligned_be64(descp + 4));
} else {
- sgj_add_nv_s(jsp, jo2p, parsing, dtsp);
+ sgj_js_nv_s(jsp, jo2p, parsing, dtsp);
processed = false;
}
break;
case 1:
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt,
- NULL, "Command specific");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt,
+ NULL, "Command specific");
if (add_d_len >= 10) {
- sgj_add_nv_ihex(jsp, jo2p, "command_specific_information",
- sg_get_unaligned_be64(descp + 4));
+ sgj_js_nv_ihex(jsp, jo2p, "command_specific_information",
+ sg_get_unaligned_be64(descp + 4));
} else {
- sgj_add_nv_s(jsp, jo2p, parsing, dtsp);
+ sgj_js_nv_s(jsp, jo2p, parsing, dtsp);
processed = false;
}
break;
case 2: /* Sense Key Specific */
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "Sense key specific");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "Sense key specific");
processed = sgj_decode_sks(jsp, jo2p, descp + 4, desc_len - 4,
sense_key);
break;
case 3:
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "Field replaceable unit code");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "Field replaceable unit code");
if (add_d_len >= 2)
- sgj_add_nv_ihex(jsp, jo2p, "field_replaceable_unit_code",
- descp[3]);
+ sgj_js_nv_ihex(jsp, jo2p, "field_replaceable_unit_code",
+ descp[3]);
else {
- sgj_add_nv_s(jsp, jo2p, parsing, dtsp);
+ sgj_js_nv_s(jsp, jo2p, parsing, dtsp);
processed = false;
}
break;
case 4:
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "Stream commands");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "Stream commands");
if (add_d_len >= 2) {
- sgj_add_nv_i(jsp, jo2p, "filemark", !! (descp[3] & 0x80));
- sgj_add_nv_ihex_nex(jsp, jo2p, "eom", !! (descp[3] & 0x40),
- false, "End Of Medium");
- sgj_add_nv_ihex_nex(jsp, jo2p, "ili", !! (descp[3] & 0x20),
- false, "Incorrect Length Indicator");
+ sgj_js_nv_i(jsp, jo2p, "filemark", !! (descp[3] & 0x80));
+ sgj_js_nv_ihex_nex(jsp, jo2p, "eom", !! (descp[3] & 0x40),
+ false, "End Of Medium");
+ sgj_js_nv_ihex_nex(jsp, jo2p, "ili", !! (descp[3] & 0x20),
+ false, "Incorrect Length Indicator");
} else {
- sgj_add_nv_s(jsp, jo2p, parsing, dtsp);
+ sgj_js_nv_s(jsp, jo2p, parsing, dtsp);
processed = false;
}
break;
case 5:
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "Block commands");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "Block commands");
if (add_d_len >= 2)
- sgj_add_nv_ihex_nex(jsp, jo2p, "ili", !! (descp[3] & 0x20),
- false, "Incorrect Length Indicator");
+ sgj_js_nv_ihex_nex(jsp, jo2p, "ili", !! (descp[3] & 0x20),
+ false, "Incorrect Length Indicator");
else {
- sgj_add_nv_s(jsp, jo2p, parsing, dtsp);
+ sgj_js_nv_s(jsp, jo2p, parsing, dtsp);
processed = false;
}
break;
case 6:
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "OSD object identification");
- sgj_add_nv_s(jsp, jo2p, parsing, "Unsupported");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "OSD object identification");
+ sgj_js_nv_s(jsp, jo2p, parsing, "Unsupported");
processed = false;
break;
case 7:
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "OSD response integrity check value");
- sgj_add_nv_s(jsp, jo2p, parsing, "Unsupported");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "OSD response integrity check value");
+ sgj_js_nv_s(jsp, jo2p, parsing, "Unsupported");
break;
case 8:
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "OSD attribute identification");
- sgj_add_nv_s(jsp, jo2p, parsing, "Unsupported");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "OSD attribute identification");
+ sgj_js_nv_s(jsp, jo2p, parsing, "Unsupported");
processed = false;
break;
case 9: /* this is defined in SAT (SAT-2) */
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "ATA status return");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "ATA status return");
if (add_d_len >= 12) {
- sgj_add_nv_i(jsp, jo2p, "extend", !! (descp[2] & 1));
- sgj_add_nv_ihex(jsp, jo2p, "error", descp[3]);
- sgj_add_nv_ihex(jsp, jo2p, "count",
- sg_get_unaligned_be16(descp + 4));
+ sgj_js_nv_i(jsp, jo2p, "extend", !! (descp[2] & 1));
+ sgj_js_nv_ihex(jsp, jo2p, "error", descp[3]);
+ sgj_js_nv_ihex(jsp, jo2p, "count",
+ sg_get_unaligned_be16(descp + 4));
ull = ((uint64_t)descp[10] << 40) |
((uint64_t)descp[8] << 32) |
(descp[6] << 24) |
(descp[11] << 16) |
(descp[9] << 8) |
descp[7];
- sgj_add_nv_ihex(jsp, jo2p, "lba", ull);
- sgj_add_nv_ihex(jsp, jo2p, "device", descp[12]);
- sgj_add_nv_ihex(jsp, jo2p, "status", descp[13]);
+ sgj_js_nv_ihex(jsp, jo2p, "lba", ull);
+ sgj_js_nv_ihex(jsp, jo2p, "device", descp[12]);
+ sgj_js_nv_ihex(jsp, jo2p, "status", descp[13]);
} else {
- sgj_add_nv_s(jsp, jo2p, parsing, dtsp);
+ sgj_js_nv_s(jsp, jo2p, parsing, dtsp);
processed = false;
}
break;
case 0xa:
/* Added in SPC-4 rev 17, became 'Another ...' in rev 34 */
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "Another progress indication");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "Another progress indication");
if (add_d_len < 6) {
- sgj_add_nv_s(jsp, jo2p, parsing, dtsp);
+ sgj_js_nv_s(jsp, jo2p, parsing, dtsp);
processed = false;
break;
}
- sgj_add_nv_ihex(jsp, jo2p, "another_sense_key", descp[2]);
- sgj_add_nv_ihex(jsp, jo2p, "another_additional_sense_code",
- descp[3]);
- sgj_add_nv_ihex(jsp, jo2p,
- "another_additional_sense_code_qualifier",
- descp[4]);
+ sgj_js_nv_ihex(jsp, jo2p, "another_sense_key", descp[2]);
+ sgj_js_nv_ihex(jsp, jo2p, "another_additional_sense_code",
+ descp[3]);
+ sgj_js_nv_ihex(jsp, jo2p,
+ "another_additional_sense_code_qualifier",
+ descp[4]);
sgj_progress_indication(jsp, jo2p,
sg_get_unaligned_be16(descp + 6), true);
break;
case 0xb: /* Added in SPC-4 rev 23, defined in SBC-3 rev 22 */
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "User data segment referral");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "User data segment referral");
if (add_d_len < 2) {
- sgj_add_nv_s(jsp, jo2p, parsing, dtsp);
+ sgj_js_nv_s(jsp, jo2p, parsing, dtsp);
processed = false;
break;
}
if (! sgj_uds_referral_descriptor(jsp, jo2p, descp, add_d_len)) {
- sgj_add_nv_s(jsp, jo2p, parsing, dtsp);
+ sgj_js_nv_s(jsp, jo2p, parsing, dtsp);
processed = false;
}
break;
case 0xc: /* Added in SPC-4 rev 28 */
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "Forwarded sense data");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "Forwarded sense data");
if (add_d_len < 2) {
- sgj_add_nv_s(jsp, jo2p, parsing, dtsp);
+ sgj_js_nv_s(jsp, jo2p, parsing, dtsp);
processed = false;
break;
}
- sgj_add_nv_ihex_nex(jsp, jo2p, "fsdt", !! (0x80 & descp[2]),
- false, "Forwarded Sense Data Truncated");
+ sgj_js_nv_ihex_nex(jsp, jo2p, "fsdt", !! (0x80 & descp[2]),
+ false, "Forwarded Sense Data Truncated");
sds = (0x7 & descp[2]);
if (sds < 1)
snprintf(b, blen, "%s [%d]", "Unknown", sds);
@@ -1678,86 +1678,85 @@ sgj_pr_js_sense_descriptors(sgj_state * jsp, sgj_opaque_p jop,
if (sds > 1)
n += sg_scnpr(b + n, blen - n, " %d", sds - 1);
}
- sgj_add_nv_ihexstr(jsp, jo2p, "sense_data_source",
- (0x7 & descp[2]), NULL, b);
- jo3p = sgj_new_named_object(jsp, jo2p, "forwarded_sense_data");
- sgj_pr_js_sense(jsp, jo3p, descp + 4, desc_len - 4);
+ sgj_js_nv_ihexstr(jsp, jo2p, "sense_data_source",
+ (0x7 & descp[2]), NULL, b);
+ jo3p = sgj_named_subobject_r(jsp, jo2p, "forwarded_sense_data");
+ sgj_js_sense(jsp, jo3p, descp + 4, desc_len - 4);
break;
case 0xd: /* Added in SBC-3 rev 36d */
/* this descriptor combines descriptors 0, 1, 2 and 3 */
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "Direct-access block device");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "Direct-access block device");
if (add_d_len < 28) {
- sgj_add_nv_s(jsp, jo2p, parsing, dtsp);
+ sgj_js_nv_s(jsp, jo2p, parsing, dtsp);
processed = false;
break;
}
- sgj_add_nv_i(jsp, jo2p, "valid", (0x80 & descp[2]));
- sgj_add_nv_ihex_nex(jsp, jo2p, "ili", !! (0x20 & descp[2]),
- false, "Incorrect Length Indicator");
+ sgj_js_nv_i(jsp, jo2p, "valid", (0x80 & descp[2]));
+ sgj_js_nv_ihex_nex(jsp, jo2p, "ili", !! (0x20 & descp[2]),
+ false, "Incorrect Length Indicator");
processed = sgj_decode_sks(jsp, jo2p, descp + 4, desc_len - 4,
sense_key);
- sgj_add_nv_ihex(jsp, jo2p, "field_replaceable_unit_code",
- descp[7]);
- sgj_add_nv_ihex(jsp, jo2p, "information",
- sg_get_unaligned_be64(descp + 8));
- sgj_add_nv_ihex(jsp, jo2p, "command_specific_information",
- sg_get_unaligned_be64(descp + 16));
+ sgj_js_nv_ihex(jsp, jo2p, "field_replaceable_unit_code",
+ descp[7]);
+ sgj_js_nv_ihex(jsp, jo2p, "information",
+ sg_get_unaligned_be64(descp + 8));
+ sgj_js_nv_ihex(jsp, jo2p, "command_specific_information",
+ sg_get_unaligned_be64(descp + 16));
break;
case 0xe: /* Added in SPC-5 rev 6 (for Bind/Unbind) */
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "Device designation");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "Device designation");
n = descp[3];
cp = (n < (int)SG_ARRAY_SIZE(dd_usage_reason_str_arr)) ?
dd_usage_reason_str_arr[n] : "Unknown (reserved)";
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_usage_reason",
- n, NULL, cp);
- jo3p = sgj_new_named_object(jsp, jo2p,
- "device_designation_descriptor");
- sgj_pr_js_designation_descriptor(jsp, jo3p, descp + 4,
- desc_len - 4);
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_usage_reason",
+ n, NULL, cp);
+ jo3p = sgj_named_subobject_r(jsp, jo2p,
+ "device_designation_descriptor");
+ sgj_js_designation_descriptor(jsp, jo3p, descp + 4, desc_len - 4);
break;
case 0xf: /* Added in SPC-5 rev 10 (for Write buffer) */
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "Microcode activation");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "Microcode activation");
if (add_d_len < 6) {
- sgj_add_nv_s(jsp, jop, parsing, dtsp);
+ sgj_js_nv_s(jsp, jop, parsing, dtsp);
processed = false;
break;
}
- sgj_add_nv_ihex(jsp, jo2p, "microcode_activation_time",
- sg_get_unaligned_be16(descp + 6));
+ sgj_js_nv_ihex(jsp, jo2p, "microcode_activation_time",
+ sg_get_unaligned_be16(descp + 6));
break;
case 0xde: /* NVME Status Field; vendor (sg3_utils) specific */
- sgj_add_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
- "NVME status (sg3_utils)");
+ sgj_js_nv_ihexstr(jsp, jo2p, "descriptor_type", dt, NULL,
+ "NVME status (sg3_utils)");
if (add_d_len < 6) {
- sgj_add_nv_s(jsp, jop, parsing, dtsp);
+ sgj_js_nv_s(jsp, jop, parsing, dtsp);
processed = false;
break;
}
- sgj_add_nv_ihex_nex(jsp, jo2p, "dnr", !! (0x80 & descp[5]),
- false, "Do not retry");
- sgj_add_nv_ihex_nex(jsp, jo2p, "m", !! (0x40 & descp[5]),
- false, "More");
+ sgj_js_nv_ihex_nex(jsp, jo2p, "dnr", !! (0x80 & descp[5]),
+ false, "Do not retry");
+ sgj_js_nv_ihex_nex(jsp, jo2p, "m", !! (0x40 & descp[5]),
+ false, "More");
sct_sc = sg_get_unaligned_be16(descp + 6);
- sgj_add_nv_ihexstr_nex
+ sgj_js_nv_ihexstr_nex
(jsp, jo2p, "sct_sc", sct_sc, true, NULL,
sg_get_nvme_cmd_status_str(sct_sc, blen, b),
"Status Code Type (upper 8 bits) and Status Code");
break;
default:
if (dt >= 0x80)
- sgj_add_nv_ihex(jsp, jo2p, "vendor_specific_descriptor_type",
- dt);
+ sgj_js_nv_ihex(jsp, jo2p, "vendor_specific_descriptor_type",
+ dt);
else
- sgj_add_nv_ihex(jsp, jo2p, "unknown_descriptor_type", dt);
- sgj_add_nv_hex_bytes(jsp, jo2p, "descriptor_hexbytes",
- descp, desc_len);
+ sgj_js_nv_ihex(jsp, jo2p, "unknown_descriptor_type", dt);
+ sgj_js_nv_hex_bytes(jsp, jo2p, "descriptor_hexbytes",
+ descp, desc_len);
processed = false;
break;
}
- sgj_add_nv_o(jsp, jap, NULL /* name */, jo2p);
+ sgj_js_nv_o(jsp, jap, NULL /* name */, jo2p);
}
return processed;
}
@@ -1766,8 +1765,8 @@ sgj_pr_js_sense_descriptors(sgj_state * jsp, sgj_opaque_p jop,
/* Fetch sense information */
bool
-sgj_pr_js_sense(sgj_state * jsp, sgj_opaque_p jop, const uint8_t * sbp,
- int sb_len)
+sgj_js_sense(sgj_state * jsp, sgj_opaque_p jop, const uint8_t * sbp,
+ int sb_len)
{
bool descriptor_format = false;
bool sdat_ovfl = false;
@@ -1827,21 +1826,20 @@ sgj_pr_js_sense(sgj_state * jsp, sgj_opaque_p jop, const uint8_t * sbp,
ebp = ebuff;
break;
}
- sgj_add_nv_ihexstr(jsp, jop, "response_code", resp_code, NULL, ebp);
- sgj_add_nv_b(jsp, jop, "descriptor_format", descriptor_format);
- sgj_add_nv_ihex_nex(jsp, jop, "sdat_ovfl", sdat_ovfl, false,
- "Sense data overflow");
- sgj_add_nv_ihexstr(jsp, jop, "sense_key", ssh.sense_key, NULL,
- sg_lib_sense_key_desc[ssh.sense_key]);
- sgj_add_nv_ihex(jsp, jop, "additional_sense_code", ssh.asc);
- sgj_add_nv_ihex(jsp, jop, "additional_sense_code_qualifier", ssh.ascq);
- sgj_add_nv_s(jsp, jop, "additional_sense_str",
- sg_get_additional_sense_str(ssh.asc, ssh.ascq, false,
+ sgj_js_nv_ihexstr(jsp, jop, "response_code", resp_code, NULL, ebp);
+ sgj_js_nv_b(jsp, jop, "descriptor_format", descriptor_format);
+ sgj_js_nv_ihex_nex(jsp, jop, "sdat_ovfl", sdat_ovfl, false,
+ "Sense data overflow");
+ sgj_js_nv_ihexstr(jsp, jop, "sense_key", ssh.sense_key, NULL,
+ sg_lib_sense_key_desc[ssh.sense_key]);
+ sgj_js_nv_ihex(jsp, jop, "additional_sense_code", ssh.asc);
+ sgj_js_nv_ihex(jsp, jop, "additional_sense_code_qualifier", ssh.ascq);
+ sgj_js_nv_s(jsp, jop, "additional_sense_str",
+ sg_get_additional_sense_str(ssh.asc, ssh.ascq, false,
blen, b));
if (descriptor_format) {
if (len > 8) {
- ret = sgj_pr_js_sense_descriptors(jsp, jop, &ssh, sbp + 8,
- len - 8);
+ ret = sgj_js_sense_descriptors(jsp, jop, &ssh, sbp + 8, len - 8);
if (ret == false) {
ebp = "unable to decode sense descriptor";
goto fini;
@@ -1850,36 +1848,36 @@ sgj_pr_js_sense(sgj_state * jsp, sgj_opaque_p jop, const uint8_t * sbp,
} else if ((len > 12) && (0 == ssh.asc) &&
(ASCQ_ATA_PT_INFO_AVAILABLE == ssh.ascq)) {
/* SAT ATA PASS-THROUGH fixed format */
- sgj_add_nv_ihex(jsp, jop, "error", sbp[3]);
- sgj_add_nv_ihex(jsp, jop, "status", sbp[4]);
- sgj_add_nv_ihex(jsp, jop, "device", sbp[5]);
- sgj_add_nv_i(jsp, jop, "extend", !! (0x80 & sbp[8]));
- sgj_add_nv_i(jsp, jop, "count_upper_nonzero", !! (0x40 & sbp[8]));
- sgj_add_nv_i(jsp, jop, "lba_upper_nonzero", !! (0x20 & sbp[8]));
- sgj_add_nv_i(jsp, jop, "log_index", (0x7 & sbp[8]));
- sgj_add_nv_i(jsp, jop, "lba", sg_get_unaligned_le24(sbp + 9));
+ sgj_js_nv_ihex(jsp, jop, "error", sbp[3]);
+ sgj_js_nv_ihex(jsp, jop, "status", sbp[4]);
+ sgj_js_nv_ihex(jsp, jop, "device", sbp[5]);
+ sgj_js_nv_i(jsp, jop, "extend", !! (0x80 & sbp[8]));
+ sgj_js_nv_i(jsp, jop, "count_upper_nonzero", !! (0x40 & sbp[8]));
+ sgj_js_nv_i(jsp, jop, "lba_upper_nonzero", !! (0x20 & sbp[8]));
+ sgj_js_nv_i(jsp, jop, "log_index", (0x7 & sbp[8]));
+ sgj_js_nv_i(jsp, jop, "lba", sg_get_unaligned_le24(sbp + 9));
} else if (len > 2) { /* fixed format */
- sgj_add_nv_i(jsp, jop, "valid", valid_info_fld);
- sgj_add_nv_i(jsp, jop, "filemark", !! (sbp[2] & 0x80));
- sgj_add_nv_ihex_nex(jsp, jop, "eom", !! (sbp[2] & 0x40),
- false, "End Of Medium");
- sgj_add_nv_ihex_nex(jsp, jop, "ili", !! (sbp[2] & 0x20),
- false, "Incorrect Length Indicator");
+ sgj_js_nv_i(jsp, jop, "valid", valid_info_fld);
+ sgj_js_nv_i(jsp, jop, "filemark", !! (sbp[2] & 0x80));
+ sgj_js_nv_ihex_nex(jsp, jop, "eom", !! (sbp[2] & 0x40),
+ false, "End Of Medium");
+ sgj_js_nv_ihex_nex(jsp, jop, "ili", !! (sbp[2] & 0x20),
+ false, "Incorrect Length Indicator");
info = sg_get_unaligned_be32(sbp + 3);
- sgj_add_nv_ihex(jsp, jop, "information", info);
- sgj_add_nv_ihex(jsp, jop, "additional_sense_length", sbp[7]);
+ sgj_js_nv_ihex(jsp, jop, "information", info);
+ sgj_js_nv_ihex(jsp, jop, "additional_sense_length", sbp[7]);
if (sb_len > 11) {
info = sg_get_unaligned_be32(sbp + 8);
- sgj_add_nv_ihex(jsp, jop, "command_specific_information", info);
+ sgj_js_nv_ihex(jsp, jop, "command_specific_information", info);
}
if (sb_len > 14)
- sgj_add_nv_ihex(jsp, jop, "field_replaceable_unit_code", sbp[14]);
+ sgj_js_nv_ihex(jsp, jop, "field_replaceable_unit_code", sbp[14]);
if (sb_len > 17)
sgj_decode_sks(jsp, jop, sbp + 15, sb_len - 15, ssh.sense_key);
n = sbp[7];
n = (sb_len > n) ? n : sb_len;
- sgj_add_nv_ihex(jsp, jop, "number_of_bytes_beyond_18",
- (n > 18) ? n - 18 : 0);
+ sgj_js_nv_ihex(jsp, jop, "number_of_bytes_beyond_18",
+ (n > 18) ? n - 18 : 0);
} else {
snprintf(ebuff, sizeof(ebuff), "sb_len=%d too short", sb_len);
ebp = ebuff;
@@ -1887,7 +1885,7 @@ sgj_pr_js_sense(sgj_state * jsp, sgj_opaque_p jop, const uint8_t * sbp,
}
fini:
if ((! ret) && ebp)
- sgj_add_nv_s(jsp, jop, "sense_decode_error", ebp);
+ sgj_js_nv_s(jsp, jop, "sense_decode_error", ebp);
return ret;
}