/************************************************************* * File: mon/call.c * Purpose: Part of core Monitor * Author: Phil Bunce (pjb@carmel.com) * Revision History: * 970304 Start of revision history */ #include Optdesc call_opts[] = { {"addr [-s str|val]..","call function"}, {"addr","address of function"}, {"-s str","pass address of string"}, {"val","pass value"}, {0}}; /************************************************************* * call(ac,av) * the call command */ call(ac,av) int ac; char *av[]; { int i,j,k; char *arg[10]; U64 rv; arg[0] = 0; k = 0; for (i=1;i= ac) printf("bad arg count\n"); else arg[k++] = av[i]; break; } else printf("%c: unknown option\n",av[i][j]); j++; } } else { if (!get_rsa(&rv,av[i])) return; arg[k] = (char *)rv.lo; k++; } } if (arg[0] != 0) (((Func *)arg[0]))(arg[1],arg[2],arg[3],arg[4],arg[5]); else printf("Function address not specified\n"); }