//
//=============================================================================
#include "util.h"
#include "mlfnc.h"
//=============================================================================
//=============================================================================
char *TIdle();
char *TPrintf();
char *TMain();
char *Post();
char *Spawn();
char *Load();
char *StackInfo();
char *MLGetpML();
char *MLSearch();
char *MLLoad();
char *MLDump();
char *TML();
char *T1820Log();
char *T1820CycleDetect();
//=============================================================================
//=============================================================================
#define FNC_TBL(fncc) {#fncc, (VAFNC)fncc}
static FNC fnc_tbl[] = {
FNC_TBL(TIdle),
FNC_TBL(TPrintf),
FNC_TBL(TMain),
FNC_TBL(Post),
FNC_TBL(Spawn),
FNC_TBL(Load),
FNC_TBL(StackInfo),
FNC_TBL(MLGetpML),
FNC_TBL(MLSearch),
FNC_TBL(MLLoad),
FNC_TBL(MLDump),
FNC_TBL(TML),
FNC_TBL(T1820Log),
FNC_TBL(T1820CycleDetect),
};
//=============================================================================
//=============================================================================
//
/*/
The function name/fucntion pointer pairs are encapusulated by this
module. \Ref{FncTblCreate}() calls this funtion repeatedly with
an increasing index and this funtion returns the name and function
pointer by reference. When the index goes past the end of this
function's static table, zero is returned.
Source: \URL{../mlfnc.c.html#GetFncTblEntry}
*/
/**
Command strings sent to the various tasks use function names as
predicates. These function names are used to look up function
pointers in the global executive context function table.
This simplifies customizing the application because the XidarML
executive and daemon core modules don't have to be modified to
parse new task module and function names.
This module does have to be modified by adding/subtracting from
the lists of declarations and table entries found herein.
*/
int GetFncTblEntry(
int i,
char **pname,
VAFNC *pfnc
) {
if ((i < 0) || (i >= CNTt(fnc_tbl))) {
return(0);
}
*pname = fnc_tbl[i].name;
*pfnc = fnc_tbl[i].fnc;
return(1);
}
//=============================================================================
//