# # gensim.awk # # x-kernel v3.3 # # Copyright (c) 1996,1993,1991,1990 Arizona Board of Regents # # $Revision: 1.2 $ # $Date: 1996/05/01 00:46:25 $ # # # generates an 'sim_protocol.c' routine from the sim_protocols.c # array created by compose program # BEGIN { printf("/*\n * simulator protocol initialization calls\n * Warning: this file is generated every time 'make compose' is run\n */\n\n"); printf("#include \"protocols.h\"\n"); printf("#ifdef __STDC__\nvoid *simGetProtlInitFuncAddr(char *);\nvoid *simGetProtlTraceVarAddr(char *);\n#else\n"); printf("void *simGetProtlInitFuncAddr();\nvoid *simGetProtlTraceVarAddr();\n#endif\n\n"); printf("static struct sim_prot_struct {\n char *protName;\n void (*initFunc)();\n int *traceAddr;\n} simProtlTab[] = {\n"); } { printf(" %s\n", $0); } END { printf("};\n\n"); printf("void *\nsimGetProtlInitFuncAddr(char *protname)\n{\n int k;\n\n for (k = 0; simProtlTab[k].protName != NULL; k++)\n"); printf(" if (!strcmp(protname, simProtlTab[k].protName))\n return (void *)simProtlTab[k].initFunc;\n return NULL;\n}\n\n"); printf("void *\nsimGetProtlTraceVarAddr(char *protname)\n{\n int k;\n\n for (k = 0; simProtlTab[k].protName != NULL; k++)\n"); printf(" if (!strcmp(protname, simProtlTab[k].protName))\n return (void *)simProtlTab[k].traceAddr;\n return NULL;\n}\n"); }