summaryrefslogtreecommitdiff
path: root/usr
diff options
context:
space:
mode:
authorAlexey Zaytsev <alexey.zaytsev@nexenta.com>2012-06-18 21:47:56 -0400
committerAlexey Zaytsev <alexey.zaytsev@nexenta.com>2012-06-18 21:47:56 -0400
commitb3a7691da42408392718e2d2dbae9efa7fed49d3 (patch)
tree918f203bcd4b79ad0d06f5b1e37d2246f1d715a1 /usr
parent9d75dfda4910937c194437c3e1e45ca07c889ee5 (diff)
downloadillumos-joyent-b3a7691da42408392718e2d2dbae9efa7fed49d3.tar.gz
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>
Diffstat (limited to 'usr')
-rw-r--r--usr/src/uts/common/os/printf.c18
-rw-r--r--usr/src/uts/common/sys/cmn_err.h21
2 files changed, 25 insertions, 14 deletions
diff --git a/usr/src/uts/common/os/printf.c b/usr/src/uts/common/os/printf.c
index 1caedb33b6..c9e1524de0 100644
--- a/usr/src/uts/common/os/printf.c
+++ b/usr/src/uts/common/os/printf.c
@@ -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 @@ zcmn_err(zoneid_t zoneid, int ce, const char *fmt, ...)
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)
{
diff --git a/usr/src/uts/common/sys/cmn_err.h b/usr/src/uts/common/sys/cmn_err.h
index e710d8e5c3..736c77b9dc 100644
--- a/usr/src/uts/common/sys/cmn_err.h
+++ b/usr/src/uts/common/sys/cmn_err.h
@@ -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 @@ extern "C" {
/*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 @@ extern char *vsprintf(char *, const char *, __va_list)
/*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 */