/******************************************************************************* ################################################################################ # Copyright (c) [2017-2019] [Radisys] # # # # Licensed under the Apache License, Version 2.0 (the "License"); # # you may not use this file except in compliance with the License. # # You may obtain a copy of the License at # # # # http://www.apache.org/licenses/LICENSE-2.0 # # # # Unless required by applicable law or agreed to in writing, software # # distributed under the License is distributed on an "AS IS" BASIS, # # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # # See the License for the specific language governing permissions and # # limitations under the License. # ################################################################################ *******************************************************************************/ /********************************************************************20** Name: Radisys Logging Framework Type: C include file Desc: This file contains logging framework include file for library. File: rl.h *********************************************************************21*/ /**************************************************************************** @ description: This is header file is used by logging framework module. This file should not be included by any other application. This is internal header file logging framework. *****************************************************************************/ #ifndef __RL_H__ #define __RL_H__ #include #include #include #include #include #include #include #include "rl_common.h" #define MAX_FILE_SIZE 3145728 /* 3MB */ #define MAX_LOG_LEN 256 #define MAX_FILENAME_LEN 300 #define LOG_TIME_LEN 64 #define MAX_LOG_BUF_SIZE 5000 #define RLOG_MAX_CIRBUF_SIZE (1024*100) #define RLOG_REMOTE_LOGGING_PORT 9099 #define RLOG_MAX_FILES 5 #define RLOG_MAX_TIME_STAMP 80 #define RLOG_MAX_TAX_NAME 16 #define RLOG_FIFO_FILE "/tmp/l2logs" #define RLOG_CIRBUF_READ_INTERVAL 1 /* 60 seconds read interval */ #define RLOG_MAX_THREADS 16 #define RLOG_TIME_ZONE_LEN 8 #define RLOG_MAX_STACK_DEPTH 24 #define RLOG_MAX_BACKTRACE_BUFSZ 2048 #define RLOG_READ_POS_THRESHOLD 300 #define RLOG_FIXED_LENGTH_BUFFER_SIZE 50 #define RLOGTICKSCNTTOPRCL2LOGS 10 /* Console handling */ #define RLOG_CTRL_L 12 #define RLOG_CTRL_Y 25 #define RLOG_ENTER_KEY 10 #define RLOG_SET_LOGLEVEL 1 #define RLOG_SET_MODMASK 2 /*L2 Logging */ #define PROCESS_L2LOG_TTI 10 typedef enum { LOG_ARG_INT, LOG_ARG_STR, LOG_ARG_HEX, LOG_ARG_SPL } LOG_ARG_TYPE; typedef enum rlLogCntLmt { RL_LOG_COUNT_LIMIT_START = 1, RL_LOG_COUNT_LIMIT_STOP }RLLogCntLmt; typedef struct { char szTaskName[RLOG_MAX_TAX_NAME]; U8* logBuff; /* LOG Buffer */ U32 logBufLen; /* Data Written till now */ U32 logReadPos; /* Reader thread position */ U8 listIndex; /* Index to global list */ } THREAD_DATA; extern void readL2LogBuff(void); extern void processL2LogBuff(void); extern S16 sendL2LogBuftoL3(void); extern void rlInitL2Log(void); /* Extern for soc specific file */ extern void rlProcessLogBufFromL2(void *mBuf); extern void rlInitL2SocSpecific(void); //extern void processL2LogBuff(void); extern void rlProcessTicks(void); extern void rlGetL2LogBufPtr (void *mBuf, U32 *logLen,U8 **logPtr); extern void rlInvalidateL2LogsInCache(U8 *ptr,U32 len); extern U8 *g_l2rlogBuf; /* buffer pointer for shared memory allocation */ extern U8 *g_l2LogBufStartPtr; /* buffer pointer where logs has to be written */ extern U8 *g_l2LogBufBasePtr; /* Base pointer for log buffer */ extern U8 *g_logBufRcvdFromL2; /* Buffer pointer received from L2 at L3*/ extern U8 *g_l2LogBaseBuff; /* Base log buffer received at L3 */ extern U32 g_l2LogBufLen; /* Log Buffer length written at L2 */ extern U32 startL2Logging; /* flag to start processing of L2 logs */ extern U32 g_l2logBuffPos; /* Log Buffer block which is in use for L2 logging */ extern U8 g_writeCirBuf; /* Flag to indicate whether to write logs or not */ //extern Pst g_rlog_pst; #endif /* __RL_H__*/