X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Fcommon%2Feal_common_log.c;h=cf576195e3f350d5480ac038f02f7a41ead1a503;hb=44a7fe6e1b1033480be76e12338972c218a60682;hp=f6ee409a2502c1d7f79235e12d4724c7ecaae8e7;hpb=1c1d4d7a923d4804f1926fc5264f9ecdd8977b04;p=dpdk.git diff --git a/lib/librte_eal/common/eal_common_log.c b/lib/librte_eal/common/eal_common_log.c index f6ee409a25..cf576195e3 100644 --- a/lib/librte_eal/common/eal_common_log.c +++ b/lib/librte_eal/common/eal_common_log.c @@ -1,13 +1,13 @@ /*- * BSD LICENSE - * - * Copyright(c) 2010-2013 Intel Corporation. All rights reserved. + * + * 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 @@ -102,66 +102,6 @@ struct log_cur_msg { } __rte_cache_aligned; static struct log_cur_msg log_cur_msg[RTE_MAX_LCORE]; /**< per core log */ -/* 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 ssize_t -early_log_read(__attribute__((unused)) void *c, - __attribute__((unused)) char *buf, - __attribute__((unused)) size_t size) -{ - return 0; -} - -/* - * this is needed because cookies_io_functions_t has a different - * prototype between newlib and glibc - */ -#ifdef RTE_EXEC_ENV_LINUXAPP -static int -early_log_seek(__attribute__((unused)) void *c, - __attribute__((unused)) off64_t *offset, - __attribute__((unused)) int whence) -{ - return -1; -} -#else -static int -early_log_seek(__attribute__((unused)) void *c, - __attribute__((unused)) _off_t *offset, - __attribute__((unused)) int whence) -{ - return -1; -} -#endif - -static int -early_log_close(__attribute__((unused)) void *c) -{ - return 0; -} - -static cookie_io_functions_t early_log_func = { - .read = early_log_read, - .write = early_log_write, - .seek = early_log_seek, - .close = early_log_close -}; -static FILE *early_log_stream; /* default logs */ @@ -236,6 +176,13 @@ rte_set_log_level(uint32_t level) rte_logs.level = (uint32_t)level; } +/* Get global log level */ +uint32_t +rte_get_log_level(void) +{ + return rte_logs.level; +} + /* Set global log type */ void rte_set_log_type(uint32_t type, int enable) @@ -262,9 +209,9 @@ int rte_log_cur_msg_logtype(void) return log_cur_msg[lcore_id].logtype; } -/* Dump log history on console */ +/* Dump log history to file */ void -rte_log_dump_history(void) +rte_log_dump_history(FILE *out) { struct log_history_list tmp_log_history; struct log_history *hist_buf; @@ -290,7 +237,7 @@ rte_log_dump_history(void) STAILQ_REMOVE_HEAD(&tmp_log_history, next); /* write on stdout */ - if (fwrite(hist_buf->buf, hist_buf->size, 1, stdout) == 0) { + if (fwrite(hist_buf->buf, hist_buf->size, 1, out) == 0) { rte_mempool_mp_put(log_history_mp, hist_buf); break; } @@ -298,7 +245,7 @@ rte_log_dump_history(void) /* put back message structure in pool */ rte_mempool_mp_put(log_history_mp, hist_buf); } - fflush(stdout); + fflush(out); rte_spinlock_unlock(&log_dump_lock); } @@ -342,22 +289,6 @@ rte_log(uint32_t level, uint32_t logtype, const char *format, ...) return ret; } -/* - * 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; -} - /* * called by environment-specific log init function to initialize log * history @@ -374,8 +305,8 @@ rte_eal_common_log_init(FILE *default_log) NULL, NULL, NULL, NULL, SOCKET_ID_ANY, 0); - - if ((log_history_mp == NULL) && + + if ((log_history_mp == NULL) && ((log_history_mp = rte_mempool_lookup(LOG_HISTORY_MP_NAME)) == NULL)){ RTE_LOG(ERR, EAL, "%s(): cannot create log_history mempool\n", __func__);