LEFT | RIGHT |
1 // Inferno utils/6l/l.h | 1 // Inferno utils/6l/l.h |
2 // http://code.google.com/p/inferno-os/source/browse/utils/6l/l.h | 2 // http://code.google.com/p/inferno-os/source/browse/utils/6l/l.h |
3 // | 3 // |
4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. | 4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. |
5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) | 5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) |
6 // Portions Copyright © 1997-1999 Vita Nuova Limited | 6 // Portions Copyright © 1997-1999 Vita Nuova Limited |
7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuov
a.com) | 7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuov
a.com) |
8 // Portions Copyright © 2004,2006 Bruce Ellis | 8 // Portions Copyright © 2004,2006 Bruce Ellis |
9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) | 9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) |
10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others | 10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 uchar reachable; | 146 uchar reachable; |
147 uchar dynexport; | 147 uchar dynexport; |
148 uchar special; | 148 uchar special; |
149 uchar stkcheck; | 149 uchar stkcheck; |
150 uchar hide; | 150 uchar hide; |
151 int32 dynid; | 151 int32 dynid; |
152 int32 sig; | 152 int32 sig; |
153 int32 plt; | 153 int32 plt; |
154 int32 got; | 154 int32 got; |
155 int32 align; // if non-zero, required alignment in bytes | 155 int32 align; // if non-zero, required alignment in bytes |
| 156 int32 elfsym; |
156 Sym* hash; // in hash table | 157 Sym* hash; // in hash table |
157 Sym* allsym; // in all symbol list | 158 Sym* allsym; // in all symbol list |
158 Sym* next; // in text or data list | 159 Sym* next; // in text or data list |
159 Sym* sub; // in SSUB list | 160 Sym* sub; // in SSUB list |
160 Sym* outer; // container of sub | 161 Sym* outer; // container of sub |
161 Sym* reachparent; | 162 Sym* reachparent; |
162 Sym* queue; | 163 Sym* queue; |
163 vlong value; | 164 vlong value; |
164 vlong size; | 165 vlong size; |
165 Sym* gotype; | 166 Sym* gotype; |
166 char* file; | 167 char* file; |
167 char* dynimpname; | 168 char* dynimpname; |
168 char* dynimplib; | 169 char* dynimplib; |
169 char* dynimpvers; | 170 char* dynimpvers; |
| 171 struct Section* sect; |
170 ········ | 172 ········ |
171 // STEXT | 173 // STEXT |
172 Auto* autom; | 174 Auto* autom; |
173 Prog* text; | 175 Prog* text; |
174 ········ | 176 ········ |
175 // SDATA, SBSS | 177 // SDATA, SBSS |
176 uchar* p; | 178 uchar* p; |
177 int32 np; | 179 int32 np; |
178 int32 maxp; | 180 int32 maxp; |
179 Reloc* r; | 181 Reloc* r; |
180 int32 nr; | 182 int32 nr; |
181 int32 maxr; | 183 int32 maxr; |
182 » int rel_ro; | 184 » int » rel_ro; |
183 }; | 185 }; |
184 struct Optab | 186 struct Optab |
185 { | 187 { |
186 short as; | 188 short as; |
187 uchar* ytab; | 189 uchar* ytab; |
188 uchar prefix; | 190 uchar prefix; |
189 uchar op[22]; | 191 uchar op[22]; |
190 }; | 192 }; |
191 struct Movtab | 193 struct Movtab |
192 { | 194 { |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 #pragma varargck type "D" Adr* | 311 #pragma varargck type "D" Adr* |
310 #pragma varargck type "I" uchar* | 312 #pragma varargck type "I" uchar* |
311 #pragma varargck type "P" Prog* | 313 #pragma varargck type "P" Prog* |
312 #pragma varargck type "R" int | 314 #pragma varargck type "R" int |
313 #pragma varargck type "S" char* | 315 #pragma varargck type "S" char* |
314 #pragma varargck type "i" char* | 316 #pragma varargck type "i" char* |
315 | 317 |
316 EXTERN int32 HEADR; | 318 EXTERN int32 HEADR; |
317 EXTERN int32 HEADTYPE; | 319 EXTERN int32 HEADTYPE; |
318 EXTERN int32 INITRND; | 320 EXTERN int32 INITRND; |
319 EXTERN» vlong» INITTEXT; | 321 EXTERN» int64» INITTEXT; |
320 EXTERN» vlong» INITDAT; | 322 EXTERN» int64» INITDAT; |
321 EXTERN char* INITENTRY; /* entry point */ | 323 EXTERN char* INITENTRY; /* entry point */ |
322 EXTERN char* LIBINITENTRY; /* shared library entry point */ | 324 EXTERN char* LIBINITENTRY; /* shared library entry point */ |
323 EXTERN char* pcstr; | 325 EXTERN char* pcstr; |
324 EXTERN Auto* curauto; | 326 EXTERN Auto* curauto; |
325 EXTERN Auto* curhist; | 327 EXTERN Auto* curhist; |
326 EXTERN Prog* curp; | 328 EXTERN Prog* curp; |
327 EXTERN Sym* cursym; | 329 EXTERN Sym* cursym; |
328 EXTERN Sym* datap; | 330 EXTERN Sym* datap; |
329 EXTERN vlong elfdatsize; | 331 EXTERN vlong elfdatsize; |
330 EXTERN» char» debug[128]; | 332 EXTERN» int» debug[128]; |
331 EXTERN char literal[32]; | 333 EXTERN char literal[32]; |
332 EXTERN Sym* textp; | 334 EXTERN Sym* textp; |
333 EXTERN Sym* etextp; | 335 EXTERN Sym* etextp; |
334 EXTERN char ycover[Ymax*Ymax]; | 336 EXTERN char ycover[Ymax*Ymax]; |
335 EXTERN uchar* andptr; | 337 EXTERN uchar* andptr; |
336 EXTERN uchar* rexptr; | 338 EXTERN uchar* rexptr; |
337 EXTERN uchar and[30]; | 339 EXTERN uchar and[30]; |
338 EXTERN int reg[D_NONE]; | 340 EXTERN int reg[D_NONE]; |
339 EXTERN int regrex[D_NONE+1]; | 341 EXTERN int regrex[D_NONE+1]; |
340 EXTERN int32 lcsize; | 342 EXTERN int32 lcsize; |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 #pragma varargck type "R" int | 438 #pragma varargck type "R" int |
437 #pragma varargck type "Z" char* | 439 #pragma varargck type "Z" char* |
438 #pragma varargck type "A" int | 440 #pragma varargck type "A" int |
439 #pragma varargck argpos diag 1 | 441 #pragma varargck argpos diag 1 |
440 | 442 |
441 /* Used by ../ld/dwarf.c */ | 443 /* Used by ../ld/dwarf.c */ |
442 enum | 444 enum |
443 { | 445 { |
444 DWARFREGSP = 7 | 446 DWARFREGSP = 7 |
445 }; | 447 }; |
LEFT | RIGHT |