History

declare common types, values, functions

Charles Forsyth committed 12 years ago

Commit 4bf64011 parent bd5c10a1 file · +126 −4Browse files

Unified · Split

ld/ld.h+126−4
@@ -5,7 +5,15 @@ · 4 unmodified lines
55
66 typedef vlong int64;
77
8+/*
9+ * basic types in all loaders
10+ */
11+
12+typedef struct Adr Adr;
813 typedef struct Auto Auto;
14+typedef struct Count Count;
15+typedef struct Ieee Ieee;
16+typedef struct Prog Prog;
917 typedef struct Sym Sym;
1018
1119 #ifndef EXTERN
@@ -14,7 +22,9 @@ typedef struct Sym Sym; · 2 unmodified lines
1422
1523 #define LIBNAMELEN 300
1624
17−#define SIGNINTERN (1729*325*1729)
25+#define P ((Prog*)0)
26+#define S ((Sym*)0)
27+#define TNAME (curtext&&curtext->from.sym?curtext->from.sym->name:noname)
1828
1929 struct Auto
2030 {
@@ -24,10 +34,122 @@ struct Auto · 3 unmodified lines
2434 short type;
2535 };
2636
37+struct Count
38+{
39+ long count;
40+ long outof;
41+};
42+
43+enum
44+{
45+
46+ STRINGSZ = 200,
47+ NHASH = 10007,
48+ NHUNK = 100000,
49+ MAXIO = 8192,
50+ MAXHIST = 20, /* limit of path elements for history symbols */
51+};
52+
53+#define SIGNINTERN (1729*325*1729) /* signature of internal functions such as _div */
54+
55+EXTERN union
56+{
57+ struct
58+ {
59+ uchar obuf[MAXIO]; /* output buffer */
60+ uchar ibuf[MAXIO]; /* input buffer */
61+ } u;
62+ char dbuf[1];
63+} buf;
64+
65+#define cbuf u.obuf
66+#define xbuf u.ibuf
67+
68+EXTERN int cbc;
69+EXTERN uchar* cbp;
70+EXTERN int cout;
71+EXTERN char debug[128];
72+EXTERN char fnuxi4[4];
73+EXTERN char fnuxi8[8];
74+EXTERN Sym* hash[NHASH];
75+EXTERN Sym* histfrog[MAXHIST];
76+EXTERN int histfrogp;
77+EXTERN int histgen;
78+EXTERN char* library[50];
79+EXTERN char* libraryobj[50];
80+EXTERN int libraryp;
81+EXTERN int xrefresolv;
82+EXTERN char inuxi1[1];
83+EXTERN char inuxi2[2];
84+EXTERN char inuxi4[4];
85+EXTERN uchar inuxi8[8];
86+EXTERN char* thestring;
87+EXTERN char thechar;
88+
89+EXTERN int doexp, dlm;
90+EXTERN int imports, nimports;
91+EXTERN int exports, nexports;
92+EXTERN char* EXPTAB;
93+EXTERN Prog undefp;
94+
95+#define UP (&undefp)
96+
97+void addhist(long, int);
98+void addlib(char*);
2799 void addlibpath(char*);
100+void addlibroot(void);
101+vlong atolwhex(char*);
102+Prog* brchain(Prog*);
103+Prog* brloop(Prog*);
104+void cflush(void);
105+void ckoff(Sym*, long);
106+void collapsefrog(Sym*);
107+void cput(int);
108+void diag(char*, ...);
109+void errorexit(void);
110+double cputime(void);
111+void dodata(void);
112+void export(void);
28113 int fileexists(char*);
114+int find1(long, int);
115+char* findlib(char*);
29116 char* findlib(char*);
117+void follow(void);
118+void gethunk(void);
119+long hunkspace(void);
30120 uchar* readsome(int, uchar*, uchar*, uchar*, int);
31−void collapsefrog(Sym*);
32−void addlib(char*);
33−void addlibroot(void);
121+void* halloc(usize);
122+void histtoauto(void);
123+double ieeedtod(Ieee*);
124+long ieeedtof(Ieee*);
125+void import(void);
126+int isobjfile(char*);
127+void loadlib(void);
128+Sym* lookup(char*, int);
129+void mkfwd(void);
130+void* mysbrk(ulong);
131+void nopstat(char*, Count*);
132+void objfile(char*);
133+void patch(void);
134+void prasm(Prog*);
135+Prog* prg(void);
136+void readundefs(char*, int);
137+uchar* readsome(int, uchar*, uchar*, uchar*, int);
138+void readundefs(char*, int);
139+vlong rnd(vlong, long);
140+void strnput(char*, int);
141+void undef(void);
142+void undefsym(Sym*);
143+void xdefine(char*, int, long);
144+void xfol(Prog*);
145+void zerosig(char*);
146+
147+#pragma varargck type "A" int
148+#pragma varargck type "A" uint
149+#pragma varargck type "C" int
150+#pragma varargck type "D" Adr*
151+#pragma varargck type "N" Adr*
152+#pragma varargck type "P" Prog*
153+#pragma varargck type "S" char*
154+
155+#pragma varargck argpos diag 1

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t