Blame


1 f08fdedc 2003-11-23 devnull #include "rc.h"
2 f08fdedc 2003-11-23 devnull #include "exec.h"
3 f08fdedc 2003-11-23 devnull #include "io.h"
4 f08fdedc 2003-11-23 devnull #include "fns.h"
5 f08fdedc 2003-11-23 devnull struct{
6 f08fdedc 2003-11-23 devnull void (*f)(void);
7 f08fdedc 2003-11-23 devnull char *name;
8 c8f53842 2007-03-26 devnull }fname[] = {
9 f08fdedc 2003-11-23 devnull Xappend, "Xappend",
10 f08fdedc 2003-11-23 devnull Xasync, "Xasync",
11 f08fdedc 2003-11-23 devnull Xbang, "Xbang",
12 f08fdedc 2003-11-23 devnull Xclose, "Xclose",
13 f08fdedc 2003-11-23 devnull Xdup, "Xdup",
14 f08fdedc 2003-11-23 devnull Xeflag, "Xeflag",
15 f08fdedc 2003-11-23 devnull Xexit, "Xexit",
16 f08fdedc 2003-11-23 devnull Xfalse, "Xfalse",
17 f08fdedc 2003-11-23 devnull Xifnot, "Xifnot",
18 f08fdedc 2003-11-23 devnull Xjump, "Xjump",
19 f08fdedc 2003-11-23 devnull Xmark, "Xmark",
20 f08fdedc 2003-11-23 devnull Xpopm, "Xpopm",
21 c8f53842 2007-03-26 devnull Xrdwr, "Xrdwr",
22 f08fdedc 2003-11-23 devnull Xread, "Xread",
23 f08fdedc 2003-11-23 devnull Xreturn, "Xreturn",
24 f08fdedc 2003-11-23 devnull Xtrue, "Xtrue",
25 f08fdedc 2003-11-23 devnull Xif, "Xif",
26 f08fdedc 2003-11-23 devnull Xwastrue, "Xwastrue",
27 f08fdedc 2003-11-23 devnull Xword, "Xword",
28 f08fdedc 2003-11-23 devnull Xwrite, "Xwrite",
29 f08fdedc 2003-11-23 devnull Xmatch, "Xmatch",
30 f08fdedc 2003-11-23 devnull Xcase, "Xcase",
31 f08fdedc 2003-11-23 devnull Xconc, "Xconc",
32 f08fdedc 2003-11-23 devnull Xassign, "Xassign",
33 f08fdedc 2003-11-23 devnull Xdol, "Xdol",
34 f08fdedc 2003-11-23 devnull Xcount, "Xcount",
35 f08fdedc 2003-11-23 devnull Xlocal, "Xlocal",
36 f08fdedc 2003-11-23 devnull Xunlocal, "Xunlocal",
37 f08fdedc 2003-11-23 devnull Xfn, "Xfn",
38 f08fdedc 2003-11-23 devnull Xdelfn, "Xdelfn",
39 f08fdedc 2003-11-23 devnull Xpipe, "Xpipe",
40 f08fdedc 2003-11-23 devnull Xpipewait, "Xpipewait",
41 f08fdedc 2003-11-23 devnull Xrdcmds, "Xrdcmds",
42 f08fdedc 2003-11-23 devnull (void (*)(void))Xerror, "Xerror",
43 f08fdedc 2003-11-23 devnull Xbackq, "Xbackq",
44 f08fdedc 2003-11-23 devnull Xpipefd, "Xpipefd",
45 f08fdedc 2003-11-23 devnull Xsubshell, "Xsubshell",
46 f08fdedc 2003-11-23 devnull Xdelhere, "Xdelhere",
47 f08fdedc 2003-11-23 devnull Xfor, "Xfor",
48 f08fdedc 2003-11-23 devnull Xglob, "Xglob",
49 f08fdedc 2003-11-23 devnull Xrdfn, "Xrdfn",
50 f08fdedc 2003-11-23 devnull Xsimple, "Xsimple",
51 f08fdedc 2003-11-23 devnull Xrdfn, "Xrdfn",
52 f08fdedc 2003-11-23 devnull Xqdol, "Xqdol",
53 f08fdedc 2003-11-23 devnull 0};
54 c8f53842 2007-03-26 devnull
55 c8f53842 2007-03-26 devnull void
56 c8f53842 2007-03-26 devnull pfnc(io *fd, thread *t)
57 f08fdedc 2003-11-23 devnull {
58 f08fdedc 2003-11-23 devnull int i;
59 c8f53842 2007-03-26 devnull void (*fn)(void) = t->code[t->pc].f;
60 f08fdedc 2003-11-23 devnull list *a;
61 f08fdedc 2003-11-23 devnull pfmt(fd, "pid %d cycle %p %d ", getpid(), t->code, t->pc);
62 c8f53842 2007-03-26 devnull for(i = 0;fname[i].f;i++) if(fname[i].f==fn){
63 f08fdedc 2003-11-23 devnull pstr(fd, fname[i].name);
64 f08fdedc 2003-11-23 devnull break;
65 f08fdedc 2003-11-23 devnull }
66 c8f53842 2007-03-26 devnull if(!fname[i].f)
67 c8f53842 2007-03-26 devnull pfmt(fd, "%p", fn);
68 c8f53842 2007-03-26 devnull for(a = t->argv;a;a = a->next) pfmt(fd, " (%v)", a->words);
69 f08fdedc 2003-11-23 devnull pchr(fd, '\n');
70 f08fdedc 2003-11-23 devnull flush(fd);
71 f08fdedc 2003-11-23 devnull }