C语言回调函数
typedef ULONG (*PPP_ABC_MSG_PROC_PF) (bitMask, VOID *, VOID *);
#define M_PPP_ABC_MSG_FUNC_DEFINE(tbl_id, get_config, set_config, create, del) \
[tbl_id] = { \
[ABC_OP_GET] = get_config, \
[ABC_OP_SET] = set_config, \
[ABC_OP_ADD] = create, \
[ABC_OP_DEL] = del \
}
STATIC PPP_ABC_MSG_PROC_PF g_All_pfABCMSGProc[MaxMsgType][MaxopAction] = {
M_PPP_ABC_MSG_FUNC_DEFINE(TABLE_ID_1,
Fun_Get1,
Fun_Set1,
Fun_Add1,
Fun_Del1,
),
M_PPP_ABC_MSG_FUNC_DEFINE(TABLE_ID_2,
Fun_Get2,
Fun_Set2,
Fun_Add2,
Fun_Del2,
),
}
STATIC ULONG MduleMainCallBackFun(void * pCfgMsg, void* pRepMsg)
{
ULONG errCode = ERROR_SUCCESS;
PPP_ABC_MSG_PROC_PF pfPABCMSGProc = NULL;
xxxx
xxxx
MsgType = GetMsgType();
opAction = Get(opAction);
pfPABCMSGProc = g_All_pfABCMSGProc[MsgType][opAction];
if (NULL != pfPABCMSGProc )
{
errCode = (*pfPABCMSGProc)(xxx, xxx, xxx);
}
xxxx
return errCore;
}