int main (int argc, char **argv) { dfunction_t *dfunc; func_t main_func = 0; const char *name = "progs.dat"; string_t *pr_argv; int pr_argc = 1, i; i = parse_options (argc, argv); argc -= i; argv += i; init_qf (); if (argc > 0) name = argv[0]; if (!load_progs (name)) Sys_Error ("couldn't load %s", name); PR_PushFrame (&pr); if (argc > 2) pr_argc = argc - 1; pr_argv = PR_Zone_Malloc (&pr, (pr_argc + 1) * 4); pr_argv[0] = PR_SetTempString (&pr, name); for (i = 1; i < pr_argc; i++) pr_argv[i] = PR_SetTempString (&pr, argv[1 + i]); pr_argv[i] = 0; if ((dfunc = PR_FindFunction (&pr, ".main")) || (dfunc = PR_FindFunction (&pr, "main"))) main_func = dfunc - pr.pr_functions; else PR_Undefined (&pr, "function", "main"); PR_RESET_PARAMS (&pr); P_INT (&pr, 0) = pr_argc; P_POINTER (&pr, 1) = PR_SetPointer (&pr, pr_argv); PR_ExecuteProgram (&pr, main_func); PR_PopFrame (&pr); if (options.flote) return R_FLOAT (&pr); return R_INT (&pr); }
int main() { struct proc *p; int procs,i; set_mem('0'); procs = load_progs(); if (procs < 0) return 1; if (sched_init() != 0) { fprintf(stderr, "Scheduler init failed\n"); return 1; } msg_init(); for (i=0; i<procs; i++) { p = &proc_table[i]; /* set up the process */ memset(p, '0', sizeof(struct proc)); p->c = 'F'; p->stack_base = 0; p->pid = i; int2word(i*100, p->br); int2word(99, p->lr); /* schedule process */ sched_reset(i); sched_resume(i); } /* print_mem(); */ sched_run(); /* print_mem(); */ return 0; }
int main (int argc, char **argv) { int c; operation_t *func = &operations[0]; while ((c = getopt_long (argc, argv, short_options, long_options, 0)) != EOF) { switch (c) { case 'd': func = &operations[0]; break; case 'F': func = &operations[4]; break; case 'f': func = &operations[3]; break; case 'g': func = &operations[1]; break; case 'h': usage (0); case 'l': func = &operations[5]; break; case 'M': func = &operations[6]; break; case 'n': sorted = 1; break; case 'P': source_path = strdup (optarg); break; case 'r': func = &operations[7]; break; case 's': func = &operations[2]; break; case 't': func = &operations[8]; break; case 'v': verbosity++; break; default: usage (1); } } init_qf (); while (optind < argc) { need_progs = !func->qfo; if (!load_progs (argv[optind++])) return 1; if (qfo && func->qfo) func->qfo (qfo); else if (func->progs) func->progs (&pr); else fprintf (stderr, "can't process %s\n", argv[optind - 1]); } return 0; }