diff options
Diffstat (limited to 'src/cmd/ld/lib.h')
| -rw-r--r-- | src/cmd/ld/lib.h | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/cmd/ld/lib.h b/src/cmd/ld/lib.h index 347987195..d13eea31e 100644 --- a/src/cmd/ld/lib.h +++ b/src/cmd/ld/lib.h @@ -34,7 +34,6 @@ enum /* order here is order in output file */ STEXT, - SELFDATA, SMACHOPLT, STYPE, SSTRING, @@ -42,6 +41,8 @@ enum SRODATA, SSYMTAB, SPCLNTAB, + SELFROSECT, + SELFSECT, SDATA, SMACHO, /* Mach-O __nl_symbol_ptr */ SMACHOGOT, @@ -102,7 +103,6 @@ struct Section extern char symname[]; extern char *libdir[]; extern int nlibdir; -extern int cout; EXTERN char* INITENTRY; EXTERN char* thestring; @@ -169,7 +169,6 @@ void mark(Sym *s); void mkfwd(void); char* expandpkg(char*, char*); void deadcode(void); -void ewrite(int, void*, int); Reloc* addrel(Sym*); void codeblk(int32, int32); void datblk(int32, int32); @@ -264,6 +263,7 @@ enum { Hlinux, // Linux ELF Hfreebsd, // FreeBSD ELF Hwindows, // MS Windows PE + Hopenbsd, // OpenBSD ELF }; typedef struct Header Header; @@ -278,4 +278,31 @@ extern Header headers[]; int headtype(char*); int Yconv(Fmt*); + +#pragma varargck type "O" int #pragma varargck type "Y" Sym* + +// buffered output + +EXTERN Biobuf bso; + +EXTERN struct +{ + char cbuf[MAXIO]; /* output buffer */ +} buf; + +EXTERN int cbc; +EXTERN char* cbp; +EXTERN char* cbpmax; + +#define cput(c)\ + { *cbp++ = c;\ + if(--cbc <= 0)\ + cflush(); } + +void cflush(void); +vlong cpos(void); +void cseek(vlong); +void cwrite(void*, int); +void importcycles(void); +int Zconv(Fmt*); |
