mem: skip attaching external memory in secondary process
[dpdk.git] / lib / eal / linux / eal_log.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2014 Intel Corporation
3  */
4
5 #include <stdio.h>
6 #include <sys/types.h>
7 #include <syslog.h>
8
9 #include <rte_log.h>
10
11 #include "eal_log.h"
12
13 /*
14  * default log function
15  */
16 static ssize_t
17 console_log_write(__rte_unused void *c, const char *buf, size_t size)
18 {
19         ssize_t ret;
20
21         /* write on stderr */
22         ret = fwrite(buf, 1, size, stderr);
23         fflush(stderr);
24
25         /* Syslog error levels are from 0 to 7, so subtract 1 to convert */
26         syslog(rte_log_cur_msg_loglevel() - 1, "%.*s", (int)size, buf);
27
28         return ret;
29 }
30
31 static int
32 console_log_close(__rte_unused void *c)
33 {
34         closelog();
35         return 0;
36 }
37
38 static cookie_io_functions_t console_log_func = {
39         .write = console_log_write,
40         .close = console_log_close,
41 };
42
43 /*
44  * set the log to default function, called during eal init process,
45  * once memzones are available.
46  */
47 int
48 eal_log_init(const char *id, int facility)
49 {
50         FILE *log_stream;
51
52         log_stream = fopencookie(NULL, "w+", console_log_func);
53         if (log_stream == NULL)
54                 return -1;
55
56         openlog(id, LOG_NDELAY | LOG_PID, facility);
57
58         eal_log_set_default(log_stream);
59
60         return 0;
61 }