summaryrefslogtreecommitdiff
path: root/src/cmd/ld/lib.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/ld/lib.h')
-rw-r--r--src/cmd/ld/lib.h33
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*);