From 48b06a63e8e4656623f9f34f5d4008361488e2a7 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Sat, 7 May 2016 23:10:50 +0000 Subject: [PATCH] scsi.c: use print_array function * scsi.c (print_uchar): New function. (print_sg_io_buffer): Use it via print_array. --- scsi.c | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/scsi.c b/scsi.c index 9038c3c9..01c5db2f 100644 --- a/scsi.c +++ b/scsi.c @@ -42,29 +42,21 @@ # include "xlat/bsg_subprotocol.h" # endif -static void -print_sg_io_buffer(struct tcb *tcp, unsigned long addr, const unsigned int len) +static bool +print_uchar(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data) { - unsigned char *buf = NULL; - unsigned int allocated, i; + tprintf("%02x", (unsigned int) (* (unsigned char *) elem_buf)); - tprints("["); - if (len == 0) - goto out; - allocated = (len > max_strlen) ? max_strlen : len; - buf = malloc(allocated); - if (!buf || umoven(tcp, addr, allocated, buf) < 0) { - printaddr(addr); - goto out; - } - tprintf("%02x", buf[0]); - for (i = 1; i < allocated; ++i) - tprintf(", %02x", buf[i]); - if (allocated != len) - tprints(", ..."); -out: - free(buf); - tprints("]"); + return true; +} + +static void +print_sg_io_buffer(struct tcb *tcp, const unsigned long addr, const unsigned int len) +{ + unsigned char buf; + + print_array(tcp, addr, len, &buf, sizeof(buf), + umoven_or_printaddr, print_uchar, 0); } static int