summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libddekit/init.c2
-rw-r--r--libddekit/printf.c40
2 files changed, 38 insertions, 4 deletions
diff --git a/libddekit/init.c b/libddekit/init.c
index 9708ba1d..6bc9d8ff 100644
--- a/libddekit/init.c
+++ b/libddekit/init.c
@@ -8,7 +8,9 @@
void ddekit_init(void)
{
extern void linux_kmem_init ();
+ extern int log_init ();
ddekit_init_threads();
linux_kmem_init ();
+ log_init ();
}
diff --git a/libddekit/printf.c b/libddekit/printf.c
index fb13a0b4..bbd58863 100644
--- a/libddekit/printf.c
+++ b/libddekit/printf.c
@@ -4,9 +4,12 @@
* \date 2006-03-01
*/
-#include <l4/dde/ddekit/printf.h>
+#include <stdio.h>
+#include <unistd.h>
-#include <l4/log/l4log.h>
+#include "ddekit/printf.h"
+
+static FILE *output;
/**
* Log constant string message w/o arguments
@@ -15,7 +18,17 @@
*/
int ddekit_print(const char *msg)
{
- return LOG_printf("%s", msg);
+ int ret;
+
+ /* If LOG hasn't been initialized or failed its initialization,
+ * return the error. */
+ if (output == NULL)
+ return -1;
+
+ ret = fprintf (output, "%s", msg);
+ if (!ret)
+ fflush (output);
+ return ret;
}
/**
@@ -42,5 +55,24 @@ int ddekit_printf(const char *fmt, ...)
*/
int ddekit_vprintf(const char *fmt, va_list va)
{
- return LOG_vprintf(fmt, va);
+ char *tmp = NULL;
+ int ret;
+
+ ret = vasprintf (&tmp, fmt, va);
+ if (!ret) {
+ ret = ddekit_print (tmp);
+ free (tmp);
+ }
+ return ret;
+}
+
+int log_init ()
+{
+ char *log_file_name = mktemp ("/tmp/dde_log.XXXXXX");
+ output = fopen (log_file_name, "a+");
+ if (!output) {
+ error (0, errno, "open %s", log_file_name);
+ return -1;
+ }
+ return 0;
}