mirror of https://github.com/pvnis/srsRAN_4G.git
adding support for phy(C level) logging to file
parent
754a657285
commit
1b1301101c
@ -0,0 +1,59 @@
|
||||
/**
|
||||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2015 Software Radio Systems Limited
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the srsUE library.
|
||||
*
|
||||
* srsUE is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* srsUE is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* A copy of the GNU Affero General Public License can be found in
|
||||
* the LICENSE file in the top-level directory of this distribution
|
||||
* and at http://www.gnu.org/licenses/.
|
||||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* File: phy_logger.h
|
||||
* Description: Interface for logging output
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PHY_LOGGER_H
|
||||
#define PHY_LOGGER_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif // __cplusplus
|
||||
typedef enum {LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_ERROR} phy_logger_level_t;
|
||||
|
||||
typedef void (*phy_log_handler_t)(phy_logger_level_t log_level, void *ctx, char *str);
|
||||
|
||||
void srslte_phy_log_register_handler(void *ctx, phy_log_handler_t handler);
|
||||
|
||||
void srslte_phy_log_print(phy_logger_level_t log_level, const char *format, ...);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif // C++
|
||||
|
||||
#endif // LOGGER_H
|
@ -0,0 +1,59 @@
|
||||
/**
|
||||
*
|
||||
* \section COPYRIGHT
|
||||
*
|
||||
* Copyright 2013-2015 Software Radio Systems Limited
|
||||
*
|
||||
* \section LICENSE
|
||||
*
|
||||
* This file is part of the srsUE library.
|
||||
*
|
||||
* srsUE is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* srsUE is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* A copy of the GNU Affero General Public License can be found in
|
||||
* the LICENSE file in the top-level directory of this distribution
|
||||
* and at http://www.gnu.org/licenses/.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdarg.h>
|
||||
#include "srslte/phy/common/phy_logger.h"
|
||||
/*********************************************************************
|
||||
Functions for external logging
|
||||
*********************************************************************/
|
||||
static phy_log_handler_t phy_log_handler;
|
||||
static void *callback_ctx = NULL;
|
||||
|
||||
void srslte_phy_log_register_handler(void *ctx, phy_log_handler_t handler) {
|
||||
phy_log_handler = handler;
|
||||
callback_ctx = ctx;
|
||||
}
|
||||
|
||||
void srslte_phy_log_print(phy_logger_level_t log_level, const char *format, ...) {
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
if (phy_log_handler) {
|
||||
char *args_msg = NULL;
|
||||
if(vasprintf(&args_msg, format, args) > 0) {
|
||||
phy_log_handler(log_level, callback_ctx, args_msg);
|
||||
}
|
||||
if (args_msg) {
|
||||
free(args_msg);
|
||||
}
|
||||
}
|
||||
va_end(args);
|
||||
}
|
Loading…
Reference in New Issue