summaryrefslogtreecommitdiff
path: root/utils/8l/l.h
diff options
context:
space:
mode:
authorforsyth <forsyth@lavoro.terzarima.net>2013-06-03 21:01:14 +0000
committerforsyth <forsyth@lavoro.terzarima.net>2013-06-03 21:01:14 +0000
commit45a20ab721a513710138340faff3d59a31c3e01e (patch)
treeeea29d2684c51cc73725b8992a2125bede48e118 /utils/8l/l.h
parentcd8e99851af33e52bcdf8faf34f9d4e62fa0cbaf (diff)
sync compilers with Plan 9
remove 1[acl] 2[acl]
Diffstat (limited to 'utils/8l/l.h')
-rw-r--r--utils/8l/l.h31
1 files changed, 23 insertions, 8 deletions
diff --git a/utils/8l/l.h b/utils/8l/l.h
index e3be6b17..c03f7adf 100644
--- a/utils/8l/l.h
+++ b/utils/8l/l.h
@@ -1,6 +1,7 @@
#include <lib9.h>
#include <bio.h>
#include "../8c/8.out.h"
+#include "../8l/elf.h"
#ifndef EXTERN
#define EXTERN extern
@@ -15,6 +16,8 @@
if(--cbc <= 0)\
cflush(); }
+#define LIBNAMELEN 300
+
typedef struct Adr Adr;
typedef struct Prog Prog;
typedef struct Sym Sym;
@@ -36,7 +39,7 @@ struct Adr
Sym* u1sym;
} u1;
short type;
- char index;
+ uchar index;
char scale;
};
@@ -57,11 +60,12 @@ struct Prog
Prog* pcond; /* work on this */
long pc;
long line;
- uchar mark; /* work on these */
- uchar back;
-
short as;
char width; /* fake for DATA */
+ char ft; /* oclass cache */
+ char tt;
+ uchar mark; /* work on these */
+ uchar back;
};
struct Auto
{
@@ -188,7 +192,7 @@ EXTERN union
{
struct
{
- char obuf[MAXIO]; /* output buffer */
+ uchar obuf[MAXIO]; /* output buffer */
uchar ibuf[MAXIO]; /* input buffer */
} u;
char dbuf[1];
@@ -197,23 +201,28 @@ EXTERN union
#define cbuf u.obuf
#define xbuf u.ibuf
+#pragma varargck type "A" int
#pragma varargck type "A" uint
#pragma varargck type "D" Adr*
#pragma varargck type "P" Prog*
#pragma varargck type "R" int
+#pragma varargck type "R" uint
#pragma varargck type "S" char*
+#pragma varargck argpos diag 1
+
EXTERN long HEADR;
EXTERN long HEADTYPE;
EXTERN long INITDAT;
EXTERN long INITRND;
EXTERN long INITTEXT;
+EXTERN long INITTEXTP;
EXTERN char* INITENTRY; /* entry point */
EXTERN Biobuf bso;
EXTERN long bsssize;
EXTERN long casepc;
EXTERN int cbc;
-EXTERN char* cbp;
+EXTERN uchar* cbp;
EXTERN char* pcstr;
EXTERN int cout;
EXTERN Auto* curauto;
@@ -281,6 +290,7 @@ int Pconv(Fmt*);
int Rconv(Fmt*);
int Sconv(Fmt*);
void addhist(long, int);
+void addlibpath(char*);
Prog* appendp(Prog*);
void asmb(void);
void asmdyn(void);
@@ -306,8 +316,10 @@ void dynreloc(Sym*, ulong, int);
long entryvalue(void);
void errorexit(void);
void export(void);
+int fileexists(char*);
int find1(long, int);
int find2(long, int);
+char* findlib(char*);
void follow(void);
void gethunk(void);
void histtoauto(void);
@@ -320,6 +332,8 @@ void listinit(void);
Sym* lookup(char*, int);
void lput(long);
void lputl(long);
+void llput(vlong v);
+void llputl(vlong v);
void main(int, char*[]);
void mkfwd(void);
void* mysbrk(ulong);
@@ -333,10 +347,12 @@ int relinv(int);
long reuse(Prog*, Sym*);
long rnd(long, long);
void span(void);
+void strnput(char*, int);
void undef(void);
void undefsym(Sym*);
long vaddr(Adr*);
-void wput(ushort);
+void wput(long);
+void wputl(long);
void xdefine(char*, int, long);
void xfol(Prog*);
int zaddr(uchar*, Adr*, Sym*[]);
@@ -346,4 +362,3 @@ void zerosig(char*);
#pragma varargck type "P" Prog*
#pragma varargck type "R" int
#pragma varargck type "A" int
-#pragma varargck argpos diag 1