Blame


1 fa256eec 2004-04-21 devnull #include <u.h>
2 fa256eec 2004-04-21 devnull #include <errno.h>
3 fa256eec 2004-04-21 devnull #include <libc.h>
4 fa256eec 2004-04-21 devnull #include <bio.h>
5 fa256eec 2004-04-21 devnull #include <mach.h>
6 fa256eec 2004-04-21 devnull #include <stabs.h>
7 fa256eec 2004-04-21 devnull #include <ctype.h>
8 fa256eec 2004-04-21 devnull #include "dat.h"
9 fa256eec 2004-04-21 devnull
10 fa256eec 2004-04-21 devnull Sym *symbols;
11 fa256eec 2004-04-21 devnull Sym **lsym;
12 fa256eec 2004-04-21 devnull
13 fa256eec 2004-04-21 devnull void
14 fa256eec 2004-04-21 devnull addsymx(char *fn, char *name, Type *type)
15 fa256eec 2004-04-21 devnull {
16 fa256eec 2004-04-21 devnull Sym *s;
17 fa256eec 2004-04-21 devnull
18 fa256eec 2004-04-21 devnull s = emalloc(sizeof *s);
19 fa256eec 2004-04-21 devnull s->fn = fn;
20 fa256eec 2004-04-21 devnull s->name = name;
21 fa256eec 2004-04-21 devnull s->type = type;
22 fa256eec 2004-04-21 devnull if(lsym == nil)
23 fa256eec 2004-04-21 devnull lsym = &symbols;
24 fa256eec 2004-04-21 devnull *lsym = s;
25 fa256eec 2004-04-21 devnull lsym = &s->next;
26 fa256eec 2004-04-21 devnull }
27 fa256eec 2004-04-21 devnull
28 fa256eec 2004-04-21 devnull void
29 fa256eec 2004-04-21 devnull dumpsyms(Biobuf *b)
30 fa256eec 2004-04-21 devnull {
31 fa256eec 2004-04-21 devnull Sym *s;
32 fa256eec 2004-04-21 devnull Type *t;
33 fa256eec 2004-04-21 devnull
34 fa256eec 2004-04-21 devnull for(s=symbols; s; s=s->next){
35 fa256eec 2004-04-21 devnull t = s->type;
36 fa256eec 2004-04-21 devnull t = defer(t);
37 fa256eec 2004-04-21 devnull if(t->ty == Pointer){
38 fa256eec 2004-04-21 devnull t = t->sub;
39 fa256eec 2004-04-21 devnull if(t && t->equiv)
40 fa256eec 2004-04-21 devnull t = t->equiv;
41 fa256eec 2004-04-21 devnull }
42 fa256eec 2004-04-21 devnull if(t == nil || t->ty != Aggr)
43 fa256eec 2004-04-21 devnull continue;
44 e3de25fe 2005-11-29 devnull Bprint(b, "complex %B %B%s%B;\n", nameof(t, 1),
45 fa256eec 2004-04-21 devnull s->fn ? fixname(s->fn) : "", s->fn ? ":" : "", fixname(s->name));
46 fa256eec 2004-04-21 devnull }
47 fa256eec 2004-04-21 devnull
48 fa256eec 2004-04-21 devnull symbols = nil;
49 fa256eec 2004-04-21 devnull lsym = &symbols;
50 fa256eec 2004-04-21 devnull }