Browse Source

udebug: add ulog support

Make ulog able to also log via udebug.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
John Crispin 5 months ago
parent
commit
260ad5bd15
2 changed files with 17 additions and 0 deletions
  1. 14 0
      ulog.c
  2. 3 0
      ulog.h

+ 14 - 0
ulog.c

@@ -29,6 +29,7 @@ static int _ulog_facility = -1;
 static int _ulog_threshold = LOG_DEBUG;
 static int _ulog_initialized = 0;
 static const char *_ulog_ident = NULL;
+static struct udebug_buf *udb = NULL;
 
 static const char *ulog_default_ident(void)
 {
@@ -120,6 +121,11 @@ static void ulog_syslog(int priority, const char *fmt, va_list ap)
 	vsyslog(priority, fmt, ap);
 }
 
+void ulog_udebug(struct udebug_buf *_udb)
+{
+	udb = _udb;
+}
+
 void ulog_open(int channels, int facility, const char *ident)
 {
 	ulog_close();
@@ -149,6 +155,14 @@ void ulog(int priority, const char *fmt, ...)
 {
 	va_list ap;
 
+	if (udb) {
+		va_start(ap, fmt);
+		udebug_entry_init(udb);
+		udebug_entry_vprintf(udb, fmt, ap);
+		udebug_entry_add(udb);
+		va_end(ap);
+	}
+
 	if (priority > _ulog_threshold)
 		return;
 

+ 3 - 0
ulog.h

@@ -21,6 +21,8 @@
 
 #include <syslog.h>
 
+#include "udebug.h"
+
 enum {
 	ULOG_KMSG   = (1 << 0),
 	ULOG_SYSLOG = (1 << 1),
@@ -28,6 +30,7 @@ enum {
 };
 
 void ulog_open(int channels, int facility, const char *ident);
+void ulog_udebug(struct udebug_buf *udb);
 void ulog_close(void);
 
 void ulog_threshold(int threshold);