tailq: remove unneeded inclusions
[dpdk.git] / lib / librte_eal / linuxapp / eal / eal_log.c
index e63ff48..0b133c3 100644 (file)
@@ -1,13 +1,13 @@
 /*-
  *   BSD LICENSE
- * 
+ *
  *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
  *   All rights reserved.
- * 
+ *
  *   Redistribution and use in source and binary forms, with or without
  *   modification, are permitted provided that the following conditions
  *   are met:
- * 
+ *
  *     * Redistributions of source code must retain the above copyright
  *       notice, this list of conditions and the following disclaimer.
  *     * Redistributions in binary form must reproduce the above copyright
@@ -17,7 +17,7 @@
  *     * Neither the name of Intel Corporation nor the names of its
  *       contributors may be used to endorse or promote products derived
  *       from this software without specific prior written permission.
- * 
+ *
  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -40,7 +40,6 @@
 
 #include <rte_memory.h>
 #include <rte_memzone.h>
-#include <rte_tailq.h>
 #include <rte_eal.h>
 #include <rte_launch.h>
 #include <rte_per_lcore.h>
@@ -83,33 +82,8 @@ console_log_write(__attribute__((unused)) void *c, const char *buf, size_t size)
        return ret;
 }
 
-static ssize_t
-console_log_read(__attribute__((unused)) void *c,
-                __attribute__((unused)) char *buf,
-                __attribute__((unused)) size_t size)
-{
-       return 0;
-}
-
-static int
-console_log_seek(__attribute__((unused)) void *c,
-                __attribute__((unused)) off64_t *offset,
-                __attribute__((unused)) int whence)
-{
-       return -1;
-}
-
-static int
-console_log_close(__attribute__((unused)) void *c)
-{
-       return 0;
-}
-
 static cookie_io_functions_t console_log_func = {
-       .read  = console_log_read,
        .write = console_log_write,
-       .seek  = console_log_seek,
-       .close = console_log_close
 };
 
 /*
@@ -133,3 +107,40 @@ rte_eal_log_init(const char *id, int facility)
        return 0;
 }
 
+/* early logs */
+
+/*
+ * early log function, used during boot when mempool (hence log
+ * history) is not available
+ */
+static ssize_t
+early_log_write(__attribute__((unused)) void *c, const char *buf, size_t size)
+{
+       ssize_t ret;
+       ret = fwrite(buf, size, 1, stdout);
+       fflush(stdout);
+       if (ret == 0)
+               return -1;
+       return ret;
+}
+
+static cookie_io_functions_t early_log_func = {
+       .write = early_log_write,
+};
+static FILE *early_log_stream;
+
+/*
+ * init the log library, called by rte_eal_init() to enable early
+ * logs
+ */
+int
+rte_eal_log_early_init(void)
+{
+       early_log_stream = fopencookie(NULL, "w+", early_log_func);
+       if (early_log_stream == NULL) {
+               printf("Cannot configure early_log_stream\n");
+               return -1;
+       }
+       rte_openlog_stream(early_log_stream);
+       return 0;
+}