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 f08fdedc 2003-11-23 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 f08fdedc 2003-11-23 devnull Xread, "Xread",
22 f08fdedc 2003-11-23 devnull Xreturn, "Xreturn",
23 f08fdedc 2003-11-23 devnull Xtrue, "Xtrue",
24 f08fdedc 2003-11-23 devnull Xif, "Xif",
25 f08fdedc 2003-11-23 devnull Xwastrue, "Xwastrue",
26 f08fdedc 2003-11-23 devnull Xword, "Xword",
27 f08fdedc 2003-11-23 devnull Xwrite, "Xwrite",
28 f08fdedc 2003-11-23 devnull Xmatch, "Xmatch",
29 f08fdedc 2003-11-23 devnull Xcase, "Xcase",
30 f08fdedc 2003-11-23 devnull Xconc, "Xconc",
31 f08fdedc 2003-11-23 devnull Xassign, "Xassign",
32 f08fdedc 2003-11-23 devnull Xdol, "Xdol",
33 f08fdedc 2003-11-23 devnull Xcount, "Xcount",
34 f08fdedc 2003-11-23 devnull Xlocal, "Xlocal",
35 f08fdedc 2003-11-23 devnull Xunlocal, "Xunlocal",
36 f08fdedc 2003-11-23 devnull Xfn, "Xfn",
37 f08fdedc 2003-11-23 devnull Xdelfn, "Xdelfn",
38 f08fdedc 2003-11-23 devnull Xpipe, "Xpipe",
39 f08fdedc 2003-11-23 devnull Xpipewait, "Xpipewait",
40 f08fdedc 2003-11-23 devnull Xrdcmds, "Xrdcmds",
41 f08fdedc 2003-11-23 devnull (void (*)(void))Xerror, "Xerror",
42 f08fdedc 2003-11-23 devnull Xbackq, "Xbackq",
43 f08fdedc 2003-11-23 devnull Xpipefd, "Xpipefd",
44 f08fdedc 2003-11-23 devnull Xsubshell, "Xsubshell",
45 f08fdedc 2003-11-23 devnull Xdelhere, "Xdelhere",
46 f08fdedc 2003-11-23 devnull Xfor, "Xfor",
47 f08fdedc 2003-11-23 devnull Xglob, "Xglob",
48 f08fdedc 2003-11-23 devnull Xrdfn, "Xrdfn",
49 f08fdedc 2003-11-23 devnull Xsimple, "Xsimple",
50 f08fdedc 2003-11-23 devnull Xrdfn, "Xrdfn",
51 f08fdedc 2003-11-23 devnull Xqdol, "Xqdol",
52 f08fdedc 2003-11-23 devnull 0};
53 f08fdedc 2003-11-23 devnull void pfnc(io *fd, thread *t)
54 f08fdedc 2003-11-23 devnull {
55 f08fdedc 2003-11-23 devnull int i;
56 f08fdedc 2003-11-23 devnull void (*fn)(void)=t->code[t->pc].f;
57 f08fdedc 2003-11-23 devnull list *a;
58 f08fdedc 2003-11-23 devnull pfmt(fd, "pid %d cycle %p %d ", getpid(), t->code, t->pc);
59 f08fdedc 2003-11-23 devnull for(i=0;fname[i].f;i++) if(fname[i].f==fn){
60 f08fdedc 2003-11-23 devnull pstr(fd, fname[i].name);
61 f08fdedc 2003-11-23 devnull break;
62 f08fdedc 2003-11-23 devnull }
63 f08fdedc 2003-11-23 devnull if(!fname[i].f) pfmt(fd, "%p", fn);
64 f08fdedc 2003-11-23 devnull for(a=t->argv;a;a=a->next) pfmt(fd, " (%v)", a->words);
65 f08fdedc 2003-11-23 devnull pchr(fd, '\n');
66 f08fdedc 2003-11-23 devnull flush(fd);
67 f08fdedc 2003-11-23 devnull }