summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>1999-12-03 06:56:23 +0000
committermjacob <mjacob@FreeBSD.org>1999-12-03 06:56:23 +0000
commit28a6d19c00c5e3a4ebf4afba12fb3df65dec34de (patch)
treea02ac4a21bcfbba681fa979780f66f266f7f1d49 /sys/dev
parent394174889a458de01e1eaa291e7f2ff9845a74db (diff)
downloadFreeBSD-src-28a6d19c00c5e3a4ebf4afba12fb3df65dec34de.zip
FreeBSD-src-28a6d19c00c5e3a4ebf4afba12fb3df65dec34de.tar.gz
clean up sprintf and have buffer that won't overflow
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/isp/isp_inline.h100
1 files changed, 66 insertions, 34 deletions
diff --git a/sys/dev/isp/isp_inline.h b/sys/dev/isp/isp_inline.h
index 68acce3..b2f0961 100644
--- a/sys/dev/isp/isp_inline.h
+++ b/sys/dev/isp/isp_inline.h
@@ -44,40 +44,72 @@ static INLINE void
isp_prtstst(sp)
ispstatusreq_t *sp;
{
- char buf[128];
- sprintf(buf, "states->");
- if (sp->req_state_flags & RQSF_GOT_BUS)
- sprintf(buf, "%s%s", buf, "GOT_BUS ");
- if (sp->req_state_flags & RQSF_GOT_TARGET)
- sprintf(buf, "%s%s", buf, "GOT_TGT ");
- if (sp->req_state_flags & RQSF_SENT_CDB)
- sprintf(buf, "%s%s", buf, "SENT_CDB ");
- if (sp->req_state_flags & RQSF_XFRD_DATA)
- sprintf(buf, "%s%s", buf, "XFRD_DATA ");
- if (sp->req_state_flags & RQSF_GOT_STATUS)
- sprintf(buf, "%s%s", buf, "GOT_STS ");
- if (sp->req_state_flags & RQSF_GOT_SENSE)
- sprintf(buf, "%s%s", buf, "GOT_SNS ");
- if (sp->req_state_flags & RQSF_XFER_COMPLETE)
- sprintf(buf, "%s%s", buf, "XFR_CMPLT ");
- sprintf(buf, "%s%s", buf, "\n");
- sprintf(buf, "%s%s", buf, "status->");
- if (sp->req_status_flags & RQSTF_DISCONNECT)
- sprintf(buf, "%s%s", buf, "Disconnect ");
- if (sp->req_status_flags & RQSTF_SYNCHRONOUS)
- sprintf(buf, "%s%s", buf, "Sync_xfr ");
- if (sp->req_status_flags & RQSTF_PARITY_ERROR)
- sprintf(buf, "%s%s", buf, "Parity ");
- if (sp->req_status_flags & RQSTF_BUS_RESET)
- sprintf(buf, "%s%s", buf, "Bus_Reset ");
- if (sp->req_status_flags & RQSTF_DEVICE_RESET)
- sprintf(buf, "%s%s", buf, "Device_Reset ");
- if (sp->req_status_flags & RQSTF_ABORTED)
- sprintf(buf, "%s%s", buf, "Aborted ");
- if (sp->req_status_flags & RQSTF_TIMEOUT)
- sprintf(buf, "%s%s", buf, "Timeout ");
- if (sp->req_status_flags & RQSTF_NEGOTIATION)
- sprintf(buf, "%s%s", buf, "Negotiation ");
+ char buf[172], *p = buf;
+ sprintf(p, "states->");
+ if (sp->req_state_flags & RQSF_GOT_BUS) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "GOT_BUS ");
+ }
+ if (sp->req_state_flags & RQSF_GOT_TARGET) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "GOT_TGT ");
+ }
+ if (sp->req_state_flags & RQSF_SENT_CDB) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "SENT_CDB ");
+ }
+ if (sp->req_state_flags & RQSF_XFRD_DATA) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "XFRD_DATA ");
+ }
+ if (sp->req_state_flags & RQSF_GOT_STATUS) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "GOT_STS ");
+ }
+ if (sp->req_state_flags & RQSF_GOT_SENSE) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "GOT_SNS ");
+ }
+ if (sp->req_state_flags & RQSF_XFER_COMPLETE) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "XFR_CMPLT ");
+ }
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "\n");
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "status->");
+ if (sp->req_status_flags & RQSTF_DISCONNECT) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "Disconnect ");
+ }
+ if (sp->req_status_flags & RQSTF_SYNCHRONOUS) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "Sync_xfr ");
+ }
+ if (sp->req_status_flags & RQSTF_PARITY_ERROR) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "Parity ");
+ }
+ if (sp->req_status_flags & RQSTF_BUS_RESET) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "Bus_Reset ");
+ }
+ if (sp->req_status_flags & RQSTF_DEVICE_RESET) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "Device_Reset ");
+ }
+ if (sp->req_status_flags & RQSTF_ABORTED) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "Aborted ");
+ }
+ if (sp->req_status_flags & RQSTF_TIMEOUT) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "Timeout ");
+ }
+ if (sp->req_status_flags & RQSTF_NEGOTIATION) {
+ p += strlen(p);
+ sprintf(p, "%s%s", buf, "Negotiation ");
+ }
PRINTF(buf, "%s\n", buf);
}
OpenPOWER on IntegriCloud