changeset 13730:bd805c3b8675

1910 Implement a generic dev_err Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Garrett D'Amore <garrett@damore.org> Approved by: Dan McDonald <danmcd@nexenta.com>
author Alexey Zaytsev <alexey.zaytsev@nexenta.com>
date Mon, 18 Jun 2012 21:47:56 -0400
parents 9823b670b193
children 35bcb68f2175
files usr/src/uts/common/os/printf.c usr/src/uts/common/sys/cmn_err.h
diffstat 2 files changed, 25 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/os/printf.c	Mon Jun 18 21:47:54 2012 -0400
+++ b/usr/src/uts/common/os/printf.c	Mon Jun 18 21:47:56 2012 -0400
@@ -21,6 +21,8 @@
 /*
  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright 2012 Nexenta Systems, Inc.  All rights reserved.
  */
 
 #include <sys/param.h>
@@ -48,6 +50,7 @@
 #include <sys/panic.h>
 #include <sys/spl.h>
 #include <sys/zone.h>
+#include <sys/sunddi.h>
 
 /*
  * In some debugging situations it's useful to log all messages to panicbuf,
@@ -287,6 +290,21 @@
 	va_end(adx);
 }
 
+/*PRINTFLIKE3*/
+void
+dev_err(dev_info_t *dip, int ce, char *fmt, ...)
+{
+	va_list ap;
+	char buf[LOG_MSGSIZE];
+
+	(void) snprintf(buf, sizeof (buf), "%s%d: %s",
+	    ddi_driver_name(dip), ddi_get_instance(dip), fmt);
+
+	va_start(ap, fmt);
+	vcmn_err(ce, buf, ap);
+	va_end(ap);
+}
+
 int
 assfail(const char *a, const char *f, int l)
 {
--- a/usr/src/uts/common/sys/cmn_err.h	Mon Jun 18 21:47:54 2012 -0400
+++ b/usr/src/uts/common/sys/cmn_err.h	Mon Jun 18 21:47:56 2012 -0400
@@ -26,17 +26,19 @@
 /*
  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright 2012 Nexenta Systems, Inc.  All rights reserved.
  */
 
 #ifndef _SYS_CMN_ERR_H
 #define	_SYS_CMN_ERR_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #if defined(_KERNEL) && !defined(_ASM)
 #include <sys/va_list.h>
 #endif
 
+#include <sys/dditypes.h>
+
 #ifdef	__cplusplus
 extern "C" {
 #endif
@@ -56,47 +58,40 @@
 /*PRINTFLIKE2*/
 extern void cmn_err(int, const char *, ...)
     __KPRINTFLIKE(2);
-#pragma rarely_called(cmn_err)
 
 extern void vzcmn_err(zoneid_t, int, const char *, __va_list)
     __KVPRINTFLIKE(3);
-#pragma rarely_called(vzcmn_err)
+
+extern void dev_err(dev_info_t *, int, char *, ...)
+    __KPRINTFLIKE(3);
 
 extern void vcmn_err(int, const char *, __va_list)
     __KVPRINTFLIKE(2);
-#pragma rarely_called(vcmn_err)
 
 /*PRINTFLIKE3*/
 extern void zcmn_err(zoneid_t, int, const char *, ...)
     __KPRINTFLIKE(3);
-#pragma rarely_called(zcmn_err)
 
 /*PRINTFLIKE1*/
 extern void printf(const char *, ...)
     __KPRINTFLIKE(1);
-#pragma	rarely_called(printf)
 
 extern void vzprintf(zoneid_t, const char *, __va_list)
     __KVPRINTFLIKE(2);
-#pragma rarely_called(vzprintf)
 
 /*PRINTFLIKE2*/
 extern void zprintf(zoneid_t, const char *, ...)
     __KPRINTFLIKE(2);
-#pragma rarely_called(zprintf)
 
 extern void vprintf(const char *, __va_list)
     __KVPRINTFLIKE(1);
-#pragma	rarely_called(vprintf)
 
 /*PRINTFLIKE1*/
 extern void uprintf(const char *, ...)
     __KPRINTFLIKE(1);
-#pragma rarely_called(uprintf)
 
 extern void vuprintf(const char *, __va_list)
     __KVPRINTFLIKE(1);
-#pragma rarely_called(vuprintf)
 
 /*PRINTFLIKE3*/
 extern size_t snprintf(char *, size_t, const char *, ...)
@@ -112,11 +107,9 @@
 /*PRINTFLIKE1*/
 extern void panic(const char *, ...)
     __KPRINTFLIKE(1) __NORETURN;
-#pragma rarely_called(panic)
 
 extern void vpanic(const char *, __va_list)
     __KVPRINTFLIKE(1) __NORETURN;
-#pragma rarely_called(vpanic)
 
 #endif /* _KERNEL */
 #endif /* !_ASM */