summaryrefslogtreecommitdiffstats
path: root/drivers/staging/csr/oska/print.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/csr/oska/print.c')
-rw-r--r--drivers/staging/csr/oska/print.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/drivers/staging/csr/oska/print.c b/drivers/staging/csr/oska/print.c
new file mode 100644
index 000000000000..5f5b26310663
--- /dev/null
+++ b/drivers/staging/csr/oska/print.c
@@ -0,0 +1,44 @@
+/*
+ * Linux console printing functions.
+ *
+ * Copyright (C) 2007 Cambridge Silicon Radio Ltd.
+ *
+ * Refer to LICENSE.txt included with this source code for details on
+ * the license terms.
+ */
+#include <linux/module.h>
+
+#include "print.h"
+
+void os_print(enum os_print_level level, const char *prefix, const char *name,
+ const char *format, ...)
+{
+ va_list va_args;
+
+ va_start(va_args, format);
+ os_vprint(level, prefix, name, format, va_args);
+ va_end(va_args);
+}
+EXPORT_SYMBOL(os_print);
+
+void os_vprint(enum os_print_level level, const char *prefix, const char *name,
+ const char *format, va_list args)
+{
+ const char *level_str[] = {
+ [OS_PRINT_ERROR] = KERN_ERR,
+ [OS_PRINT_WARNING] = KERN_WARNING,
+ [OS_PRINT_INFO] = KERN_INFO,
+ [OS_PRINT_DEBUG] = KERN_DEBUG,
+ };
+ char buf[80];
+ int w = 0;
+
+ if (name) {
+ w += snprintf(buf + w, sizeof(buf) - w, "%s%s%s: ", level_str[level], prefix, name);
+ } else {
+ w += snprintf(buf + w, sizeof(buf) - w, "%s%s", level_str[level], prefix);
+ }
+ w += vsnprintf(buf + w, sizeof(buf) - w, format, args);
+ printk("%s\n", buf);
+}
+EXPORT_SYMBOL(os_vprint);