代码拉取完成,页面将自动刷新
#include <stdarg.h>
#include "basetype.h"
#include "common.h"
//"(undo) debug device on"--->g_uiDebugFlag |= DEBUG_DEVICE;
UINT32 g_uiDebugFlag = 0;
/*
description: 实现将模块名转换为对应的模块ID的功能。
input:
pucModuleName: 模块名,一个无符号8位字符数组。
output: 无
return: 对应模块名的模块ID,一个无符号32位整数。
tip:如果模块名不匹配,则返回最大模块ID。
*/
UINT32 debuglib_modulenametoint(UINT8 *pucModuleName)
{
if (0 == strcmp("device", pucModuleName))
{
return MODULE_DEVICE;
}
if (0 == strcmp("route", pucModuleName))
{
return MODULE_ROUTE;
}
if (0 == strcmp("mac-table", pucModuleName))
{
return MODULE_MACTABLE;
}
if (0 == strcmp("packet", pucModuleName))
{
return MODULE_PACKET;
}
if (0 == strcmp("arp", pucModuleName))
{
return MODULE_ARP;
}
return MODULE_MAX;
}
/*
description: 设置调试模块。
input:
pucModuleName: 调试模块名,一个指向无符号8位整数的指针。
output: 无
return:
若调试模块名为"all",则设置所有模块为调试模式,返回ERROR_SUCCESS;
否则,将对应模块设置为调试模式,返回ERROR_SUCCESS;
若调试模块名不在指定列表中,返回MODULE_MAX。
tip:无
*/
UINT32 DebugLib_Set(UINT8 *pucModuleName)
{
UINT32 uiModuleId;
if (0 == strcmp("all", pucModuleName))
{
g_uiDebugFlag = 0xFFFFFFFF;
}
else
{
uiModuleId = debuglib_modulenametoint(pucModuleName);
if (uiModuleId != MODULE_MAX)
{
g_uiDebugFlag |= (1 << uiModuleId);
}
else
{
return MODULE_MAX;
}
}
return ERROR_SUCCESS;
}
/*
description: 取消设置指定模块的调试标志位。
input:
pucModuleName: 模块名,一个指向字符数组的指针。
output: 无
return:
成功:ERROR_SUCCESS(0)
失败:MODULE_MAX(4294967295)
tip:无
*/
UINT32 DebugLib_UnSet(UINT8 *pucModuleName)
{
UINT32 uiModuleId;
if (0 == strcmp("all", pucModuleName))
{
g_uiDebugFlag = 0;
}
else
{
uiModuleId = debuglib_modulenametoint(pucModuleName);
if (uiModuleId != MODULE_MAX)
{
g_uiDebugFlag &= (~(1 << uiModuleId));
}
else
{
return MODULE_MAX;
}
}
return ERROR_SUCCESS;
}
/*
description: 获取调试标志位。
input: 无
output: 无
return: 调试标志位。
tip:无
*/
UINT32 DebugLib_Get(VOID)
{
return g_uiDebugFlag;
}
/*
description: 按照指定模块ID打印输出调试信息。
input:
uiModuleId: 模块ID,一个无符号32位整数。
format: 字符串格式化信息。
...: 可变参数列表。
output: 无
return: 无
tip:无。
*/
VOID DebugLib_Printf(UINT32 uiModuleId, const char *format, ...)
{
if ((1 << uiModuleId) & g_uiDebugFlag)
{
va_list argPtr;
int count;
va_start(argPtr, format); /* 获取可变参数列表 */
fflush(stdout); /* 强制刷新输出缓冲区 */
count = vfprintf(stderr, format, argPtr); /* 将信息输出到标准出错流设备 */
va_end(argPtr); /* 可变参数列表结束 */
}
return;
}
// DebugPrintf(DEBUG_DEVICE, args);
// static int debugLevel = 0;/*调试等级*/
///*与主函数内加上这个来进行等级划分,建议有需要再使用这部分内容,如不明白请看说明或联系yyh*/
///*
// if (argc < 2)
// {
// debugLevel = 0;
// }
// else
// {
// debugLevel = stoi(argv[1]);
// }
//*/
//
///*
// Input:你想要打印到日志的变量
// Output:你输入的变量
// Return: NULL
// 函数功能:打印日志用于调试*/
// static void DebugPrintf(const char* format, ...)
//{
// if (debugLevel >= 0)//不考虑等级功能把此处改成0为打印日志,1为不打印日志
// {
// va_list argPtr;
// int count;
//
// va_start(argPtr, format); /* 获取可变参数列表 */
// fflush(stdout); /* 强制刷新输出缓冲区 */
// count = vfprintf(stderr, format, argPtr); /* 将信息输出到标准出错流设备 */
// va_end(argPtr); /* 可变参数列表结束 */
// }
// }
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。