Commit df29f4ac authored by Martin Peschke's avatar Martin Peschke Committed by James Bottomley

[SCSI] zfcp: Simplify usage of hex dump output function for debug trace.

Simplify usage of output function for hex dumps.
Signed-off-by: default avatarMartin Peschke <mp3@de.ibm.com>
Signed-off-by: default avatarChristof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent c7b7fc8c
...@@ -90,33 +90,26 @@ static void zfcp_dbf_out(char **buf, const char *s, const char *format, ...) ...@@ -90,33 +90,26 @@ static void zfcp_dbf_out(char **buf, const char *s, const char *format, ...)
*buf += sprintf(*buf, "\n"); *buf += sprintf(*buf, "\n");
} }
static int static void zfcp_dbf_outd(char **p, const char *label, char *buffer,
zfcp_dbf_view_dump(char *out_buf, const char *label, int buflen, int offset, int total_size)
char *buffer, int buflen, int offset, int total_size)
{ {
int len = 0; if (!offset)
*p += sprintf(*p, "%-24s ", label);
if (offset == 0)
len += sprintf(out_buf + len, "%-24s ", label);
while (buflen--) { while (buflen--) {
if (offset > 0) { if (offset > 0) {
if ((offset % 32) == 0) if ((offset % 32) == 0)
len += sprintf(out_buf + len, "\n%-24c ", ' '); *p += sprintf(*p, "\n%-24c ", ' ');
else if ((offset % 4) == 0) else if ((offset % 4) == 0)
len += sprintf(out_buf + len, " "); *p += sprintf(*p, " ");
} }
len += sprintf(out_buf + len, "%02x", *buffer++); *p += sprintf(*p, "%02x", *buffer++);
if (++offset == total_size) { if (++offset == total_size) {
len += sprintf(out_buf + len, "\n"); *p += sprintf(*p, "\n");
break; break;
} }
} }
if (!total_size)
if (total_size == 0) *p += sprintf(*p, "\n");
len += sprintf(out_buf + len, "\n");
return len;
} }
static int static int
...@@ -133,8 +126,8 @@ zfcp_dbf_view_header(debug_info_t * id, struct debug_view *view, int area, ...@@ -133,8 +126,8 @@ zfcp_dbf_view_header(debug_info_t * id, struct debug_view *view, int area,
t.tv_sec, t.tv_nsec); t.tv_sec, t.tv_nsec);
zfcp_dbf_out(&p, "cpu", "%02i", entry->id.fields.cpuid); zfcp_dbf_out(&p, "cpu", "%02i", entry->id.fields.cpuid);
} else { } else {
p += zfcp_dbf_view_dump(p, NULL, dump->data, dump->size, zfcp_dbf_outd(&p, NULL, dump->data, dump->size, dump->offset,
dump->offset, dump->total_size); dump->total_size);
if ((dump->offset + dump->size) == dump->total_size) if ((dump->offset + dump->size) == dump->total_size)
p += sprintf(p, "\n"); p += sprintf(p, "\n");
} }
...@@ -348,14 +341,10 @@ static int zfcp_hba_dbf_view_response(char *buf, ...@@ -348,14 +341,10 @@ static int zfcp_hba_dbf_view_response(char *buf,
zfcp_dbf_out(&p, "fsf_issued", "%011lu:%06lu", t.tv_sec, t.tv_nsec); zfcp_dbf_out(&p, "fsf_issued", "%011lu:%06lu", t.tv_sec, t.tv_nsec);
zfcp_dbf_out(&p, "fsf_prot_status", "0x%08x", r->fsf_prot_status); zfcp_dbf_out(&p, "fsf_prot_status", "0x%08x", r->fsf_prot_status);
zfcp_dbf_out(&p, "fsf_status", "0x%08x", r->fsf_status); zfcp_dbf_out(&p, "fsf_status", "0x%08x", r->fsf_status);
p += zfcp_dbf_view_dump(p, "fsf_prot_status_qual", zfcp_dbf_outd(&p, "fsf_prot_status_qual", r->fsf_prot_status_qual,
r->fsf_prot_status_qual, FSF_PROT_STATUS_QUAL_SIZE, 0, FSF_PROT_STATUS_QUAL_SIZE);
FSF_PROT_STATUS_QUAL_SIZE, zfcp_dbf_outd(&p, "fsf_status_qual", r->fsf_status_qual,
0, FSF_PROT_STATUS_QUAL_SIZE); FSF_STATUS_QUALIFIER_SIZE, 0, FSF_STATUS_QUALIFIER_SIZE);
p += zfcp_dbf_view_dump(p, "fsf_status_qual",
r->fsf_status_qual,
FSF_STATUS_QUALIFIER_SIZE,
0, FSF_STATUS_QUALIFIER_SIZE);
zfcp_dbf_out(&p, "fsf_req_status", "0x%08x", r->fsf_req_status); zfcp_dbf_out(&p, "fsf_req_status", "0x%08x", r->fsf_req_status);
zfcp_dbf_out(&p, "sbal_first", "0x%02x", r->sbal_first); zfcp_dbf_out(&p, "sbal_first", "0x%02x", r->sbal_first);
zfcp_dbf_out(&p, "sbal_curr", "0x%02x", r->sbal_curr); zfcp_dbf_out(&p, "sbal_curr", "0x%02x", r->sbal_curr);
...@@ -415,12 +404,11 @@ static int zfcp_hba_dbf_view_status(char *buf, ...@@ -415,12 +404,11 @@ static int zfcp_hba_dbf_view_status(char *buf,
zfcp_dbf_out(&p, "failed", "0x%02x", r->failed); zfcp_dbf_out(&p, "failed", "0x%02x", r->failed);
zfcp_dbf_out(&p, "status_type", "0x%08x", r->status_type); zfcp_dbf_out(&p, "status_type", "0x%08x", r->status_type);
zfcp_dbf_out(&p, "status_subtype", "0x%08x", r->status_subtype); zfcp_dbf_out(&p, "status_subtype", "0x%08x", r->status_subtype);
p += zfcp_dbf_view_dump(p, "queue_designator", zfcp_dbf_outd(&p, "queue_designator", (char *)&r->queue_designator,
(char *)&r->queue_designator, sizeof(struct fsf_queue_designator), 0,
sizeof(struct fsf_queue_designator), sizeof(struct fsf_queue_designator));
0, sizeof(struct fsf_queue_designator)); zfcp_dbf_outd(&p, "payload", (char *)&r->payload, r->payload_size, 0,
p += zfcp_dbf_view_dump(p, "payload", (char *)&r->payload, r->payload_size);
r->payload_size, 0, r->payload_size);
return p - buf; return p - buf;
} }
...@@ -1031,7 +1019,7 @@ zfcp_san_dbf_view_format(debug_info_t * id, struct debug_view *view, ...@@ -1031,7 +1019,7 @@ zfcp_san_dbf_view_format(debug_info_t * id, struct debug_view *view,
buflen = min(total, ZFCP_DBF_ELS_PAYLOAD); buflen = min(total, ZFCP_DBF_ELS_PAYLOAD);
} }
p += zfcp_dbf_view_dump(p, "payload", buffer, buflen, 0, total); zfcp_dbf_outd(&p, "payload", buffer, buflen, 0, total);
if (buflen == total) if (buflen == total)
p += sprintf(p, "\n"); p += sprintf(p, "\n");
...@@ -1179,8 +1167,8 @@ zfcp_scsi_dbf_view_format(debug_info_t * id, struct debug_view *view, ...@@ -1179,8 +1167,8 @@ zfcp_scsi_dbf_view_format(debug_info_t * id, struct debug_view *view,
zfcp_dbf_out(&p, "scsi_result", "0x%08x", r->scsi_result); zfcp_dbf_out(&p, "scsi_result", "0x%08x", r->scsi_result);
zfcp_dbf_out(&p, "scsi_cmnd", "0x%0Lx", r->scsi_cmnd); zfcp_dbf_out(&p, "scsi_cmnd", "0x%0Lx", r->scsi_cmnd);
zfcp_dbf_out(&p, "scsi_serial", "0x%016Lx", r->scsi_serial); zfcp_dbf_out(&p, "scsi_serial", "0x%016Lx", r->scsi_serial);
p += zfcp_dbf_view_dump(p, "scsi_opcode", r->scsi_opcode, zfcp_dbf_outd(&p, "scsi_opcode", r->scsi_opcode, ZFCP_DBF_SCSI_OPCODE,
ZFCP_DBF_SCSI_OPCODE, 0, ZFCP_DBF_SCSI_OPCODE); 0, ZFCP_DBF_SCSI_OPCODE);
zfcp_dbf_out(&p, "scsi_retries", "0x%02x", r->scsi_retries); zfcp_dbf_out(&p, "scsi_retries", "0x%02x", r->scsi_retries);
zfcp_dbf_out(&p, "scsi_allowed", "0x%02x", r->scsi_allowed); zfcp_dbf_out(&p, "scsi_allowed", "0x%02x", r->scsi_allowed);
if (strncmp(r->tag, "abrt", ZFCP_DBF_TAG_SIZE) == 0) if (strncmp(r->tag, "abrt", ZFCP_DBF_TAG_SIZE) == 0)
...@@ -1202,11 +1190,10 @@ zfcp_scsi_dbf_view_format(debug_info_t * id, struct debug_view *view, ...@@ -1202,11 +1190,10 @@ zfcp_scsi_dbf_view_format(debug_info_t * id, struct debug_view *view,
r->type.fcp.rsp_code); r->type.fcp.rsp_code);
zfcp_dbf_out(&p, "fcp_sns_info_len", "0x%08x", zfcp_dbf_out(&p, "fcp_sns_info_len", "0x%08x",
r->type.fcp.sns_info_len); r->type.fcp.sns_info_len);
p += zfcp_dbf_view_dump(p, "fcp_sns_info", zfcp_dbf_outd(&p, "fcp_sns_info", r->type.fcp.sns_info,
r->type.fcp.sns_info, min((int)r->type.fcp.sns_info_len,
min((int)r->type.fcp.sns_info_len, ZFCP_DBF_SCSI_FCP_SNS_INFO), 0,
ZFCP_DBF_SCSI_FCP_SNS_INFO), 0, r->type.fcp.sns_info_len);
r->type.fcp.sns_info_len);
} }
p += sprintf(p, "\n"); p += sprintf(p, "\n");
return p - out_buf; return p - out_buf;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment