// //============================================================================= #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); } //============================================================================= //