Page MenuHomeFreeBSD

D16690.id46586.diff
No OneTemporary

D16690.id46586.diff

Index: sys/kern/subr_bus.c
===================================================================
--- sys/kern/subr_bus.c
+++ sys/kern/subr_bus.c
@@ -2406,6 +2406,18 @@
return (printf("%s%d: ", name, device_get_unit(dev)));
}
+static int
+sbuf_drain_printf(void *arg, const char *data, int len)
+{
+ int *retvalptr = arg;
+ int r;
+
+ r = printf("%.*s", len, data);
+ *retvalptr += r;
+
+ return r;
+}
+
/**
* @brief Print the name of the device followed by a colon, a space
* and the result of calling vprintf() with the value of @p fmt and
@@ -2416,13 +2428,31 @@
int
device_printf(device_t dev, const char * fmt, ...)
{
+ char buf[128];
+ struct sbuf sb;
+ const char *name;
va_list ap;
int retval;
- retval = device_print_prettyname(dev);
+ retval = 0;
+
+ sbuf_new(&sb, buf, sizeof buf, SBUF_FIXEDLEN);
+ sbuf_set_drain(&sb, sbuf_drain_printf, &retval);
+
+ name = device_get_name(dev);
+
+ if (name == NULL)
+ sbuf_cat(&sb, "unknown: ");
+ else
+ sbuf_printf(&sb, "%s%d: ", name, device_get_unit(dev));
+
va_start(ap, fmt);
- retval += vprintf(fmt, ap);
+ sbuf_vprintf(&sb, fmt, ap);
va_end(ap);
+
+ sbuf_finish(&sb);
+ sbuf_delete(&sb);
+
return (retval);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Nov 19, 2:22 PM (4 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25641810
Default Alt Text
D16690.id46586.diff (1 KB)

Event Timeline