8 int fifo(int argc, char *argv[]);
9 int memlock(int argc, char *argv[]);
10 int p26(int argc, char *argv[]);
11 int sched(int argc, char *argv[]);
12 int yield(int argc, char *argv[]);
16 int (*f)(int, char *[]);
20 { "memlock", memlock, 0 },
22 { "sched", sched, 1 },
23 { "yield", yield, 1 },
26 static int usage(int argc, char *argv[])
30 fprintf(stderr, "%s is unknown\n", argv[1]);
32 fprintf(stderr, "usage: %s [-a] or one of [", argv[0]);
33 for (i = 0; i < (sizeof(tab) / sizeof(tab[0])); i++)
34 fprintf(stderr, "%s%s", (i)? " | " : "", tab[i].t);
35 fprintf(stderr, "]\n");
40 int main(int argc, char *argv[])
44 if (argc == 2 && strcmp(argv[1], "-a") == 0) {
47 "-a should but doesn't really work"
48 " (my notes say \"because things detach\");\n"
49 "meanwhile do these individual tests and look"
50 " for a non-zero exit code:\n");
51 for (i = 0; i < nitems(tab); i++)
53 fprintf(stderr, "p1003_1b %s\n", tab[i].t);
58 for (i = 0; i < nitems(tab); i++) {
61 (*tab[i].f)(argc - 1, argv + 1)) ) {
63 "%s failed\n", tab[i].t);
74 for (i = 0; i < nitems(tab); i++)
75 if (strcmp(tab[i].t, argv[1]) == 0)
76 return (*tab[i].f)(argc - 1, argv + 1);
79 return usage(argc, argv);