📄 cli_log.inc
字号:
/************************************************************************
Copyright 200X - 200X+1.
filename : Cli_Log.inc
description : 日志记录的私有头文件.
author : Woodhead
modification : Woodhead create 2004-12-07
************************************************************************/
#ifndef _CLI_LOG_INC__
#define _CLI_LOG_INC__
#define LOG_MAX_NUM g_us_CFG_LOG_MAX_NUM
#define LOG_SAVE_MAGIC 0x6B6BB6B6
/* 日志表的记录结构 */
typedef struct tag_ST_LOG_ITEM
{
_U16 usLogCrc; /* 日志项校验*/
_S16 sReserve; /* 保留字 */
_S8 szUserName[USERNAME_LEN]; /* 用户帐号 */
_U32 ulLevel; /* 用户权限级别, CLI_OPERAT_LEVEL_T */
_U32 ulLogMode; /* 用户登录方式, EN_USER_LOG_MODE */
_U32 ulClientIp; /* IP address */
_U32 ulLogDate; /* 日志记录日期 */
_U32 ulLogTime; /* 日志记录时间 */
_S8 szCommand[MT_LOG_CMD_LEN]; /* 用户执行命令 */
#if LOG_SAVE_FLASH
_U32 ulUseFlag;
#endif
}ST_LOG_ITEM, *P_ST_LOG_ITEM;
/* 日志表的控制头 */
typedef struct tag_ST_LOG_TBL_CTRL
{
_U16 usCtrlCrc; /* 控制头的校验和, 从下一个字节开始计算 */
_U16 usRsv1; /* 保留 */
_U32 ulMagic; /* 魔术字 */
_U16 usLogMaxNum; /* 日志表的最大数目, 等于LOG_MAX_NUM.
参与CRC校验, 否则, LOG_MAX_NUM改变后, 可能出现CRC校验OK的情况 */
_U16 usLogCount; /* 日志表的有效计数, <= LOG_MAX_NUM */
_U16 usLogHead; /* 日志表的头索引(时间最前), < LOG_MAX_NUM */
_U16 usLogTail; /* 日志表的尾索引(时间最后), < LOG_MAX_NUM */
}ST_LOG_TBL_CTRL;
/*
根据用户权限记录的日志索引映射表的控制结构.
所有映射表的表数目为CT_AL_NULL.
每张表的表项的最大数目为LOG_MAX_NUM, 表项的内容为日志表的索引(大小为_U16).
*/
typedef struct tag_ST_LOG_INDEX_MAP_CTRL
{
_U16 usMapCount; /* 映射表的有效计数, <= LOG_MAX_NUM */
_U16 usMapHead; /* 映射表的头索引(时间最前), < LOG_MAX_NUM */
_U16 usMapTail; /* 映射表的尾索引(时间最后), < LOG_MAX_NUM */
_U16 usRsv; /* 保留 */
}ST_LOG_INDEX_MAP_CTRL;
extern ST_LOG_TBL_CTRL *m_pstLogTblCtrl;
extern ST_LOG_INDEX_MAP_CTRL m_astLogIndexMapCtrl[CT_AL_NULL];
extern _U16 *m_ausLogMapIndexTable[CT_AL_NULL];
_U32 CLI_LogInit(_VOID);
_U32 CLI_LogTableInit( _VOID );
_U32 CLI_LogItemCheck(P_ST_LOG_ITEM pLogItem);
_U32 CLI_LogTableCtlrCheck( _VOID );
_U32 CLI_LogTableCheck( _VOID );
_U32 CLI_LogMapReset( _VOID );
_U32 CLI_LogMapCheck( _VOID );
P_ST_LOG_ITEM CLI_GetOneLog(_U16 ulIndex);
_U32 CLI_DisplayOneLog(P_ST_LOG_ITEM pLogItem);
_U32 CLI_DisplayAllLog(_VOID);
_VOID CLI_CmdRecord ( PTerm_Data_S pTermStruct );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -