summaryrefslogtreecommitdiff
path: root/proto.h
blob: 11d36efe9f24d7c2bb2ce19dd3d604a97f12584a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
OP *	CopDBadd P((OP *cur));
OP *	add_label P((char *lbl, OP *cmd));
OP *	addcond P((OP *cmd, OP *arg));
OP *	addflags P((I32 i, I32 flags, OP *arg));
OP *	addloop P((OP *cmd, OP *arg));
OP *	append_elem P((I32 optype, OP *head, OP *tail));
OP *	append_list P((I32 optype, OP *head, OP *tail));
I32 	apply P((I32 type, SV **mark, SV **sp));
void 	av_clear P((AV *ar));
AV *	av_fake P((I32 size, SV **strp));
SV **	av_fetch P((AV *ar, I32 key, I32 lval));
void 	av_fill P((AV *ar, I32 fill));
void 	av_free P((AV *ar));
I32 	av_len P((AV *ar));
AV *	av_make P((I32 size, SV **strp));
SV *	av_pop P((AV *ar));
void	av_popnulls P((AV *ar));
bool 	av_push P((AV *ar, SV *val));
SV *	av_shift P((AV *ar));
SV ** 	av_store P((AV *ar, I32 key, SV *val));
void 	av_undef P((AV *ar));
void 	av_unshift P((AV *ar, I32 num));
OP *	bind_match P((I32 type, OP *left, OP *pat));
OP *	block_head P((OP *tail));
I32 	cando P((I32 bit, I32 effective, struct stat *statbufp));
unsigned long 	cast_ulong P((double f));
void 	checkcomma P((char *s, char *name, char *what));
I32 	chsize P((int fd, off_t length));
OP *	convert P((I32 optype, I32 flags, OP *op));
OP *	cop_to_arg P((OP *cmd));
I32 	copyopt P((OP *cmd, OP *which));
void 	cpy7bit P((char *d, char *s, I32 l));
char *	cpytill P((char *to, char *from, char *fromend, I32 delim, I32 *retlen));
void 	cryptfilter P((FILE *fil));
void 	cryptswitch P((void));
void 	deb P((char *pat, ...));
void 	deb_growlevel P((void));
OP * 	die P((const char* pat, ...));
OP *	die_where P((char *message));
void 	do_accept P((SV *sv, GV *ngv, GV *ggv));
bool 	do_aexec P((SV *really, SV **mark, SV **sp));
void 	do_chop P((SV *astr, SV *sv));
bool 	do_close P((GV *gv, bool explicit));
int 	do_ctl P((I32 optype, GV *gv, I32 func, SV *argstr));
bool 	do_eof P((GV *gv));
bool 	do_exec P((char *cmd));
void 	do_execfree P((void));
SV *	do_fttext P((OP *arg, SV *sv));
I32 	do_ipcctl P((I32 optype, SV **mark, SV **sp));
I32 	do_ipcget P((I32 optype, SV **mark, SV **sp));
void 	do_join P((SV *sv, SV *del, SV **mark, SV **sp));
OP * 	do_kv P((SV*,OP*,I32));
I32 	do_msgrcv P((SV **mark, SV **sp));
I32 	do_msgsnd P((SV **mark, SV **sp));
bool 	do_open P((GV *gv, char *name, I32 len));
void 	do_pipe P((SV *sv, GV *rgv, GV *wgv));
bool 	do_print P((SV *sv, FILE *fp));
I32 	do_repeatary P((SV*,OP*,I32));
bool 	do_seek P((GV *gv, long pos, int whence));
I32 	do_semop P((SV **mark, SV **sp));
I32 	do_shmio P((I32 optype, SV **mark, SV **sp));
void 	do_sprintf P((SV *sv, int len, SV **sarg));
OP * 	do_subr P((void));
long 	do_tell P((GV *gv));
I32 	do_trans P((SV *sv, OP *arg));
void 	do_vecset P((SV *sv));
void 	do_vop P((I32 optype, SV *sv, SV *left, SV *right));
void 	do_write P((struct Outrec *orec, GV *gv));
void 	dump_all P((void));
void 	dump_cop P((OP *cmd, OP *alt));
void	dump_eval P((OP *root, OP *start));
	dump_fds P((char *s));
void 	dump_flags P((char *b, U32 flags));
void 	dump_gv P((GV *gv));
void 	dump_op P((OP *arg));
void 	dump_pm P((PM *pm));
	dup2 P((int oldfd, int newfd));
void 	fbm_compile P((SV *sv, I32 iflag));
char *	fbm_instr P((unsigned char *big, unsigned char *bigend, SV *littlestr));
IO *	fetch_io P((OP* op, I32 num));
GV *	fetch_gv P((OP* op, I32 num));
OP *	flatten P((OP *arg));
void	force_ident P((char *s));
char *	force_word P((char *s));
OP *	forcelist P((OP *arg));
void	free_tmps P((void));
OP *	gen_constant_list P((OP *op));
I32	getgimme P((OP*op));
void	gp_free P((GV* gv));
GP *	gp_ref P((GP* gp));
GV *	gv_AVadd P((GV *gv));
GV *	gv_HVadd P((GV *gv));
void 	gv_check P((I32 min, I32 max));
void 	gv_efullname P((SV *sv, GV *gv));
GV *	gv_fetchfile P((char *name));
GV *	gv_fetchmethod P((HV* stash, char *name));
GV *	gv_fetchpv P((char *name, I32 add));
void 	gv_fullname P((SV *sv, GV *gv));
STRLEN 	gv_len P((SV *sv));
SV *	gv_str P((SV *sv));
OP *	gv_to_op P((I32 atype, GV *gv));
void 	he_delayfree P((HE *hent));
void 	he_free P((HE *hent));
void 	hoistmust P((PM *pm));
void 	hv_clear P((HV *tb, I32 dodbm));
void 	hv_dbmclose P((HV *tb));
bool 	hv_dbmopen P((HV *tb, char *fname, int mode));
bool 	hv_dbmstore P((HV *tb, char *key, U32 klen, SV *sv));
SV *	hv_delete P((HV *tb, char *key, U32 klen));
SV **	hv_fetch P((HV *tb, char *key, U32 klen, I32 lval));
void 	hv_free P((HV *tb, I32 dodbm));
I32 	hv_iterinit P((HV *tb));
char *	hv_iterkey P((HE *entry, I32 *retlen));
HE *	hv_iternext P((HV *tb));
SV *	hv_iterval P((HV *tb, HE *entry));
void 	hv_magic P((SV *sv, GV *gv, I32 how));
SV ** 	hv_store P((HV *tb, char *key, U32 klen, SV *val, U32 hash));
void 	hv_undef P((HV *tb, I32 dodbm));
I32	ibcmp P((char *a, char *b, I32 len));
I32 	ingroup P((int testgid, I32 effective));
char *	instr P((char *big, char *little));
OP *	invert P((OP *cmd));
OP *	jmaybe P((OP *arg));
I32 	keyword P((char *d));
void 	leave_scope P((I32 base));
OP *	linklist P((OP *op));
OP *	list P((OP *o));
OP *	listkids P((OP *o));
OP *	localize P((OP *arg));
I32 	looks_like_number P((SV *sv));
OP *	loopscope P((OP *o));
I32 	lop P((I32 f, char *s));
int	magic_get	P((SV* sv, MAGIC* mg));
int	magic_getarylen	P((SV* sv, MAGIC* mg));
int	magic_getglob	P((SV* sv, MAGIC* mg));
int	magic_getuvar	P((SV* sv, MAGIC* mg));
int	magic_set	P((SV* sv, MAGIC* mg));
int	magic_setarylen	P((SV* sv, MAGIC* mg));
int	magic_setbm	P((SV* sv, MAGIC* mg));
int	magic_setdbline	P((SV* sv, MAGIC* mg));
int	magic_setdbm	P((SV* sv, MAGIC* mg));
int	magic_setenv	P((SV* sv, MAGIC* mg));
int	magic_setglob	P((SV* sv, MAGIC* mg));
int	magic_setsig	P((SV* sv, MAGIC* mg));
int	magic_setsubstr	P((SV* sv, MAGIC* mg));
int	magic_setuvar	P((SV* sv, MAGIC* mg));
int	magic_setvec	P((SV* sv, MAGIC* mg));
void 	magicalize P((char *list));
void 	magicname P((char *sym, char *name, I32 namlen));
	main P((int argc, char **argv, char **env));
MALLOCPTRTYPE *	malloc P((MEM_SIZE nbytes));
OP *	maybeforcelist P((I32 optype, OP *arg));
char *	mess P((char *pat, ...));
int	mg_clear P((SV *sv));
int	mg_free P((SV *sv, char type));
int	mg_freeall P((SV *sv));
int	mg_get P((SV *sv));
U32	mg_len P((SV *sv));
int	mg_set P((SV *sv));
char *	moreswitches P((char *s));
void 	mstats P((char *s));
char *	my_bcopy P((char *from, char *to, I32 len));
char *	my_bzero P((char *loc, I32 len));
void 	my_exit P((I32 status));
I32 	my_lstat P((OP *arg, SV *sv));
I32 	my_memcmp P((unsigned char *s1, unsigned char *s2, I32 len));
I32 	my_pclose P((FILE *ptr));
FILE *	my_pfiopen P((FILE *fil, VOID (*func)()));
FILE *	my_popen P((char *cmd, char *mode));
void 	my_setenv P((char *nam, char *val));
I32 	my_stat P((OP *arg, SV *sv));
short 	my_swap P((short s));
void 	my_unexec P((void));
OP *	newANONLIST P((OP *op));
OP *	newANONHASH P((OP *op));
OP *	newASSIGNOP P((I32 flags, OP *left, OP *right));
OP *	newBINOP P((I32 optype, I32 flags, OP *left, OP *right));
OP *	newCONDOP P((I32 flags, OP *expr, OP *true, OP *false));
void	newFORM P((OP *name, OP *block));
OP *	newFOROP P((I32 flags, char *label, line_t forline, OP* scalar, OP* expr, OP*block, OP*cont));
HV *	newHV P((U32 lookat));
OP *	newLOGOP P((I32 optype, I32 flags, OP *left, OP *right));
OP *	newLOOPOP P((I32 flags, I32 debuggable, OP *expr, OP *block, OP *cont));
OP *	newMETHOD P((OP *ref, OP* name));
OP *	newNAMEOP P((OP *o));
OP *	newNULLLIST P((void));
OP *	newOP P((I32 optype, I32 flags));
OP *	newRANGE P((I32 flags, OP *left, OP *right));
OP *	newSLICEOP P((I32 flags, OP *subscript, OP *list));
OP *	newSTATEOP P((I32 flags, char *label, OP *o));
void	newSUB P((OP *name, OP *block));
OP *	newUNOP P((I32 optype, I32 flags, OP *child));
AV *	newAV P((void));
OP *	newAVREF P((OP *o));
OP *	newBINOP P((I32 type, I32 flags, OP *first, OP *last));
OP *	newCVREF P((OP *o));
OP *	newGVOP P((I32 type, I32 flags, GV *gv));
GV *	newGVgen P((void));
OP *	newGVREF P((OP *o));
OP *	newHVREF P((OP *o));
HV *	newHV P((U32 lookat));
IO *	newIO P((void));
OP *	newLISTOP P((I32 type, I32 flags, first, last));
OP *	newPMOP P((I32 type, I32 flags));
OP *	newPVOP P((I32 type, I32 flags, PV *pv));
#ifdef LEAKTEST
SV *	newSV P((I32 x, STRLEN len));
#else
SV *	newSV P((STRLEN len));
#endif
OP *	newSVREF P((OP *o));
OP *	newSVOP P((I32 type, I32 flags, SV *sv));
SV *	newSViv P((I32 i));
SV *	newSVnv P((double n));
SV *	newSVpv P((char *s, STRLEN len));
SV *	newSVsv P((SV *old));
OP *	newUNOP P((I32 type, I32 flags, OP *first));
FILE *	nextargv P((GV *gv));
char *	ninstr P((char *big, char *bigend, char *little, char *lend));
char *	nsavestr P((char *sv, I32 len));
void 	op_behead P((OP *arg));
OP *	op_fold_const P((OP *arg));
void 	op_free P((OP *arg));
void 	op_optimize P((OP *cmd, I32 fliporflop, I32 acmd));
OP *	over P((GV *eachgv, OP *cmd));
PADOFFSET	pad_alloc P((void));
SV *	pad_sv P((PADOFFSET po));
void	pad_free P((PADOFFSET po));
void	pad_reset P((void));
void	pad_swipe P((PADOFFSET po));
OP *	parse_list P((SV *sv));
void	peep P((OP *op));
Interpreter *	perl_alloc P((void));
I32 	perl_callback P((char *subname, I32 sp, I32 gimme, I32 hasargs, I32 numargs));
I32 	perl_callv P((char *subname, I32 sp, I32 gimme, char **argv));
void 	perl_construct P((Interpreter *sv_interp));
void 	perl_destruct P((Interpreter *sv_interp));
void 	perl_free P((Interpreter *sv_interp));
I32 	perl_parse P((Interpreter *sv_interp, int argc, char **argv, char **env));
I32 	perl_run P((Interpreter *sv_interp));
void  	pidgone P((int pid, int status));
OP *	pmruntime P((OP *pm, OP *expr));
OP *	pop_return P((void));
OP *	prepend_elem P((I32 optype, OP *head, OP *tail));
void	push_return P((OP* op));
void 	pv_grow P((char **strptr, I32 *curlen, I32 newlen));
OP *	rcatmaybe P((OP *arg));
regexp *	regcomp P((char *exp, char *xend, I32 fold));
OP *	ref P((OP *op, I32 type));
OP *	refkids P((OP *op, I32 type));
void 	regdump P((regexp *r));
I32 	regexec P((regexp *prog, char *stringarg, char *strend, char *strbeg, I32 minend, SV *screamer, I32 safebase));
void 	regfree P((struct regexp *r));
char *	regnext P((char *p));
char *	regprop P((char *op));
void	reinit_lexer P((void));
void 	repeatcpy P((char *to, char *from, I32 len, I32 count));
char *	rninstr P((char *big, char *bigend, char *little, char *lend));
void 	run_format P((struct Outrec *orec, FF *fcmd));
#ifndef safemalloc
void 	safefree P((char *where));
char *	safemalloc P((MEM_SIZE size));
char *	saferealloc P((char *where, unsigned long size));
#endif
void 	safexfree P((char *where));
char *	safexmalloc P((I32 x, MEM_SIZE size));
char *	safexrealloc P((char *where, MEM_SIZE size));
I32 	same_dirent P((char *a, char *b));
void	savestack_grow P((void));
void 	save_aptr P((AV **aptr));
AV *	save_ary P((GV *gv));
HV *	save_hash P((GV *gv));
void 	save_hptr P((HV **hptr));
void 	save_I32 P((I32 *intp));
void 	save_int P((int *intp));
void 	save_item P((SV *item));
void 	save_lines P((AV *array, SV *sv));
void 	save_list P((SV **sarg, I32 maxsarg));
void 	save_nogv P((GV *gv));
SV *	save_scalar P((GV *gv));
void 	save_sptr P((SV **sptr));
SV * 	save_svref P((SV **sptr));
char *	savestr P((char *sv));
OP *	sawparens P((OP *o));
OP *	scalar P((OP *o));
OP *	scalarkids P((OP *op));
OP *	scalarseq P((OP *o));
OP *	scalarvoid P((OP *op));
char *	scan_formline P((char *s));
unsigned long 	scan_hex P((char *start, I32 len, I32 *retlen));
char *	scan_heredoc P((char *s));
char *	scan_inputsymbol P((char *s));
char *	scan_ident P((char *s, char *send, char *dest));
char *	scan_num P((char *s));
unsigned long 	scan_oct P((char *start, I32 len, I32 *retlen));
char *	scan_pat P((char *s));
void 	scan_prefix P((PM *pm, char *string, I32 len));
char *	scan_str P((char *start));
char *	scan_subst P((char *start));
char *	scan_trans P((char *start));
OP *	scope P((OP *o));
char *	screaminstr P((SV *bigstr, SV *littlestr));
I32 	setenv_getix P((char *nam));
char *	skipspace P((char *s));
AV *	sv_2av P((SV *sv, STASH **st, GV **gvp, I32 lref));
CV *	sv_2cv P((SV *sv, STASH **st, GV **gvp, I32 lref));
HV *	sv_2hv P((SV *sv, STASH **st, GV **gvp, I32 lref));
I32	sv_2iv P((SV *sv));
SV *	sv_2mortal P((SV *sv));
double 	sv_2nv P((SV *sv));
char *	sv_2pv P((SV *sv));
char *	sv_append_till P((SV *sv, char *from, char *fromend, I32 delim, char *keeplist));
int 	sv_backoff P((SV *sv));
void 	sv_catpv P((SV *sv, char *ptr));
void 	sv_catpvn P((SV *sv, char *ptr, STRLEN len));
void 	sv_catsv P((SV *dstr, SV *sstr));
void 	sv_chop P((SV *sv, char *ptr));
void 	sv_clear P((SV *sv));
I32 	sv_cmp P((SV *str1, SV *str2));
void 	sv_dec P((SV *sv));
I32 	sv_eq P((SV *str1, SV *str2));
void 	sv_free P((SV *sv));
char *	sv_gets P((SV *sv, FILE *fp, I32 append));
char *	sv_grow P((SV *sv, unsigned long newlen));
void 	sv_inc P((SV *sv));
void 	sv_insert P((SV *bigstr, STRLEN offset, STRLEN len, char *little, STRLEN littlelen));
SV *	sv_interp P((SV *sv, SV *src, I32 sp));
void 	sv_intrpcompile P((SV *src));
STRLEN 	sv_len P((SV *sv));
void 	sv_magic P((SV *sv, SV *sv, char how, char *name, STRLEN namlen));
SV *	sv_mortalcopy P((SV *oldstr));
SV * 	sv_ref P((SV *sv));
void 	sv_replace P((SV *sv, SV *nstr));
void 	sv_reset P((char *s, HV *stash));
void 	sv_setiv P((SV *sv, I32 num));
void 	sv_setnv P((SV *sv, double num));
void 	sv_setpv P((SV *sv, char *ptr));
void 	sv_setpvn P((SV *sv, char *ptr, STRLEN len));
void 	sv_setsv P((SV *dstr, SV *sstr));
void 	taint_env P((void));
void 	taint_proper P((char *f, char *s));
I32 	uni P((I32 f, char *s));
I32 	unlnk P((char *f));
I32 	userinit P((void));
I32 	wait4pid P((int pid, int *statusp, int flags));
void 	warn P((const char* pat, ...));
I32 	whichsig P((char *sig));
void 	while_io P((OP *cmd));
OP *	wopt P((OP *cmd));
int 	yyerror P((char *s));
int 	yylex P((void));
int 	yyparse P((void));