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