/* vixie.h - include file to define general vixie-type things * v1.0 vix 21jun86 [broken out of as.h] */ /* There are two macros you can define before including this file which can change the things defined by this file. DEBUG: if defined, will cause enter / exit messages to be printed by the ENTER / EXIT / EXITV macros. If not defined, causes ENTER to do nothing, and EXIT / EXITV to generate 'return' without any messages. If defined, should be set to the name of the including module. MAIN: Should be defined for a program containing a main() function which is linked with other modules which include this file. Value is not important, only existence / nonexistence matters. */ #ifndef _VIXIE_FLAG #define _VIXIE_FLAG /*--- debugging stuff ---*/ #define MAXPROC 256 #if 0 #define ENTER(proc) do { \ APC_PROCS[I_PROC] = proc; \ printf("ENTER(%d:%s.%s)\n", \ I_PROC, DEBUG, APC_PROCS[I_PROC]); \ I_PROC++; \ } while (0) #define EXIT(value) do { \ I_PROC--; \ printf("EXIT(%d:%s.%s)\n", \ I_PROC, DEBUG, \ APC_PROCS[I_PROC]); \ return value; \ } while (0) #define EXITV do { \ I_PROC--; \ printf("EXITV(%d:%s.%s)\n", \ I_PROC, DEBUG, \ APC_PROCS[I_PROC]); \ return; \ } while (0) #else #define ENTER(proc) #define EXIT(value) return value #define EXITV return #endif #ifdef MAIN int I_PROC = 0; char *APC_PROCS[MAXPROC]; #else extern int I_PROC; extern char *APC_PROCS[MAXPROC]; #endif #ifndef TRUE #define TRUE 1 #define FALSE 0 #endif #endif /* _VIXIE_FLAG */