/*--------------------------------------------------------------------------- SICS is going to have a macro facility. I.E. it will be able to evaluate command sequences specified in a file or from the command line. John Ousterhouts Tcl will be used as the Macro language. The SICS-objects will be accessed by redefining Tcl's "unknown" mechanism. For documentation on Tcl and the programmers API to Tcl see John Ousterhout's Book. No need to duplicate this here. Mark Koennecke, November 1996 copyright: see implementation file. ---------------------------------------------------------------------------*/ #ifndef SICSMACRO #define SICSMACRO #include #include "sics.h" #include "SCinter.h" Tcl_Interp *MacroInit(SicsInterp * pInter); void MacroDelete(Tcl_Interp * pInter); void WhereKill(void *pData); int MacroEval(SConnection * pCon, SicsInterp * pSics, void *pData, int argc, char *argv[]); int MacroFileEval(SConnection * pCon, SicsInterp * pInter, void *pData, int argc, char *argv[]); int InternalFileEval(SConnection * pCon, SicsInterp * pInter, void *pData, int argc, char *argv[]); int MacroWhere(SConnection * pCon, SicsInterp * pInter, void *pData, int argc, char *argv[]); int ClientPut(SConnection * pCon, SicsInterp * pInter, void *pData, int argc, char *argv[]); int GumPut(SConnection * pCon, SicsInterp * pInter, void *pData, int argc, char *argv[]); int Broadcast(SConnection * pCon, SicsInterp * pInter, void *pData, int argc, char *argv[]); int TransactAction(SConnection * pCon, SicsInterp * pSics, void *pData, int argc, char *argv[]); int CaptureAction(SConnection * pCon, SicsInterp * pSics, void *pData, int argc, char *argv[]); int TclPublish(SConnection * pCon, SicsInterp * pInter, void *pData, int argc, char *argv[]); int AllowExec(SConnection * pCon, SicsInterp * pInter, void *pData, int argc, char *argv[]); /* for maintaining the Connection stack at Unknown. Should only be used by SicsInterp module */ int MacroPush(SConnection * pCon); int MacroPop(void); SConnection *MacroPeek(void); void KillSicsUnknown(void); #endif