]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/1a/a.h
rio, kbdfs: increase read buffer for high latency kbdfs support
[plan9front.git] / sys / src / cmd / 1a / a.h
1 #include <u.h>
2 #include <libc.h>
3 #include <bio.h>
4 #include "../2c/2.out.h"
5
6 #ifndef EXTERN
7 #define EXTERN  extern
8 #endif
9
10 typedef struct  Sym     Sym;
11 typedef struct  Ref     Ref;
12 typedef struct  Gen     Gen;
13 typedef struct  Io      Io;
14 typedef struct  Hist    Hist;
15 typedef struct  Addr    Addr;
16 typedef struct  Gen2    Gen2;
17
18 #define MAXALIGN        7
19 #define FPCHIP          1
20 #define NSYMB           500
21 #define BUFSIZ          8192
22 #define HISTSZ          20
23 #define NINCLUDE        10
24 #define NHUNK           10000
25 #define EOF             (-1)
26 #define IGN             (-2)
27 #define GETC()          ((--fi.c < 0)? filbuf(): *fi.p++ & 0xff)
28 #define NHASH           503
29 #define STRINGSZ        200
30 #define NMACRO          10
31
32 struct  Sym
33 {
34         Sym*    link;
35         Ref*    ref;
36         char*   macro;
37         long    value;
38         ushort  type;
39         char    *name;
40         char    sym;
41 };
42 #define S       ((Sym*)0)
43
44 struct  Ref
45 {
46         int     class;
47 };
48
49 EXTERN  struct
50 {
51         char*   p;
52         int     c;
53 } fi;
54
55 struct  Io
56 {
57         Io*     link;
58         char    b[BUFSIZ];
59         char*   p;
60         short   c;
61         short   f;
62 };
63 #define I       ((Io*)0)
64
65 EXTERN  struct
66 {
67         Sym*    sym;
68         short   type;
69 } h[NSYM];
70
71 struct  Addr
72 {
73         Sym*    sym;
74         long    offset;
75         short   type;
76 };
77 struct  Gen
78 {
79         Addr;
80         double  dval;
81         char    sval[8];
82         long    displace;
83         short   type;
84         short   field;
85 };
86 struct  Gen2
87 {
88         Gen     from;
89         Gen     to;
90 };
91
92 struct  Hist
93 {
94         Hist*   link;
95         char*   name;
96         long    line;
97         long    offset;
98 };
99 #define H       ((Hist*)0)
100
101 enum
102 {
103         CLAST,
104         CMACARG,
105         CMACRO,
106         CPREPROC,
107 };
108
109 EXTERN  char    debug[256];
110 EXTERN  Sym*    hash[NHASH];
111 EXTERN  char*   Dlist[30];
112 EXTERN  int     nDlist;
113 EXTERN  Hist*   ehist;
114 EXTERN  int     newflag;
115 EXTERN  Hist*   hist;
116 EXTERN  char*   hunk;
117 EXTERN  char*   include[NINCLUDE];
118 EXTERN  Io*     iofree;
119 EXTERN  Io*     ionext;
120 EXTERN  Io*     iostack;
121 EXTERN  long    lineno;
122 EXTERN  int     nerrors;
123 EXTERN  long    nhunk;
124 EXTERN  int     ninclude;
125 EXTERN  Gen     nullgen;
126 EXTERN  char*   outfile;
127 EXTERN  int     pass;
128 EXTERN  char*   pathname;
129 EXTERN  long    pc;
130 EXTERN  int     peekc;
131 EXTERN  int     sym;
132 EXTERN  char    symb[NSYMB];
133 EXTERN  int     thechar;
134 EXTERN  char*   thestring;
135 EXTERN  long    thunk;
136 EXTERN  Biobuf  obuf;
137
138 int     assemble(char*);
139 void*   allocn(void*, long, long);
140 void    errorexit(void);
141 void    pushio(void);
142 void    newio(void);
143 void    newfile(char*, int);
144 Sym*    slookup(char*);
145 Sym*    lookup(void);
146 void    syminit(Sym*);
147 long    yylex(void);
148 int     getc(void);
149 int     getnsc(void);
150 void    unget(int);
151 int     escchar(int);
152 void    cinit(void);
153 void    pinit(char*);
154 void    cclean(void);
155 int     isreg(Gen*);
156 void    outcode(int, Gen2*);
157 void    outhist(void);
158 void    zaddr(Gen*, int);
159 void    zname(char*, int, int);
160 void    ieeedtod(Ieee*, double);
161 int     filbuf(void);
162 Sym*    getsym(void);
163 void    domacro(void);
164 void    macund(void);
165 void    macdef(void);
166 void    macexpand(Sym*, char*);
167 void    macinc(void);
168 void    macprag(void);
169 void    maclin(void);
170 void    macif(int);
171 void    macend(void);
172 void    dodefine(char*);
173 void    prfile(long);
174 void    linehist(char*, int);
175 void    gethunk(void);
176 void    yyerror(char*, ...);
177 int     yyparse(void);
178 void    setinclude(char*);
179 int     assemble(char*);
180
181 /*
182  *      system-dependent stuff from ../cc/compat.c
183  */
184 enum    /* keep in synch with ../cc/cc.h */
185 {
186         Plan9   = 1<<0,
187         Unix    = 1<<1,
188         Windows = 1<<2,
189 };
190 int     mywait(int*);
191 int     mycreat(char*, int);
192 int     systemtype(int);
193 int     pathchar(void);
194 char*   mygetwd(char*, int);
195 int     myexec(char*, char*[]);
196 int     mydup(int, int);
197 int     myfork(void);
198 int     mypipe(int*);
199 void*   mysbrk(ulong);