RE: How to load a "loadable object" that has a non-default file extension ?
[perl.git] / opnames.h
1 /* -*- buffer-read-only: t -*-
2  *
3  *    opnames.h
4  *
5  *    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6  *    2007 by Larry Wall and others
7  *
8  *    You may distribute under the terms of either the GNU General Public
9  *    License or the Artistic License, as specified in the README file.
10  *
11  *
12  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
13  *  This file is built by opcode.pl from its data.  Any changes made here
14  *  will be lost!
15  */
16
17 typedef enum opcode {
18         OP_NULL,        /* 0 */
19         OP_STUB,        /* 1 */
20         OP_SCALAR,      /* 2 */
21         OP_PUSHMARK,    /* 3 */
22         OP_WANTARRAY,   /* 4 */
23         OP_CONST,       /* 5 */
24         OP_GVSV,        /* 6 */
25         OP_GV,          /* 7 */
26         OP_GELEM,       /* 8 */
27         OP_PADSV,       /* 9 */
28         OP_PADAV,       /* 10 */
29         OP_PADHV,       /* 11 */
30         OP_PADANY,      /* 12 */
31         OP_PUSHRE,      /* 13 */
32         OP_RV2GV,       /* 14 */
33         OP_RV2SV,       /* 15 */
34         OP_AV2ARYLEN,   /* 16 */
35         OP_RV2CV,       /* 17 */
36         OP_ANONCODE,    /* 18 */
37         OP_PROTOTYPE,   /* 19 */
38         OP_REFGEN,      /* 20 */
39         OP_SREFGEN,     /* 21 */
40         OP_REF,         /* 22 */
41         OP_BLESS,       /* 23 */
42         OP_BACKTICK,    /* 24 */
43         OP_GLOB,        /* 25 */
44         OP_READLINE,    /* 26 */
45         OP_RCATLINE,    /* 27 */
46         OP_REGCMAYBE,   /* 28 */
47         OP_REGCRESET,   /* 29 */
48         OP_REGCOMP,     /* 30 */
49         OP_MATCH,       /* 31 */
50         OP_QR,          /* 32 */
51         OP_SUBST,       /* 33 */
52         OP_SUBSTCONT,   /* 34 */
53         OP_TRANS,       /* 35 */
54         OP_SASSIGN,     /* 36 */
55         OP_AASSIGN,     /* 37 */
56         OP_CHOP,        /* 38 */
57         OP_SCHOP,       /* 39 */
58         OP_CHOMP,       /* 40 */
59         OP_SCHOMP,      /* 41 */
60         OP_DEFINED,     /* 42 */
61         OP_UNDEF,       /* 43 */
62         OP_STUDY,       /* 44 */
63         OP_POS,         /* 45 */
64         OP_PREINC,      /* 46 */
65         OP_I_PREINC,    /* 47 */
66         OP_PREDEC,      /* 48 */
67         OP_I_PREDEC,    /* 49 */
68         OP_POSTINC,     /* 50 */
69         OP_I_POSTINC,   /* 51 */
70         OP_POSTDEC,     /* 52 */
71         OP_I_POSTDEC,   /* 53 */
72         OP_POW,         /* 54 */
73         OP_MULTIPLY,    /* 55 */
74         OP_I_MULTIPLY,  /* 56 */
75         OP_DIVIDE,      /* 57 */
76         OP_I_DIVIDE,    /* 58 */
77         OP_MODULO,      /* 59 */
78         OP_I_MODULO,    /* 60 */
79         OP_REPEAT,      /* 61 */
80         OP_ADD,         /* 62 */
81         OP_I_ADD,       /* 63 */
82         OP_SUBTRACT,    /* 64 */
83         OP_I_SUBTRACT,  /* 65 */
84         OP_CONCAT,      /* 66 */
85         OP_STRINGIFY,   /* 67 */
86         OP_LEFT_SHIFT,  /* 68 */
87         OP_RIGHT_SHIFT, /* 69 */
88         OP_LT,          /* 70 */
89         OP_I_LT,        /* 71 */
90         OP_GT,          /* 72 */
91         OP_I_GT,        /* 73 */
92         OP_LE,          /* 74 */
93         OP_I_LE,        /* 75 */
94         OP_GE,          /* 76 */
95         OP_I_GE,        /* 77 */
96         OP_EQ,          /* 78 */
97         OP_I_EQ,        /* 79 */
98         OP_NE,          /* 80 */
99         OP_I_NE,        /* 81 */
100         OP_NCMP,        /* 82 */
101         OP_I_NCMP,      /* 83 */
102         OP_SLT,         /* 84 */
103         OP_SGT,         /* 85 */
104         OP_SLE,         /* 86 */
105         OP_SGE,         /* 87 */
106         OP_SEQ,         /* 88 */
107         OP_SNE,         /* 89 */
108         OP_SCMP,        /* 90 */
109         OP_BIT_AND,     /* 91 */
110         OP_BIT_XOR,     /* 92 */
111         OP_BIT_OR,      /* 93 */
112         OP_NEGATE,      /* 94 */
113         OP_I_NEGATE,    /* 95 */
114         OP_NOT,         /* 96 */
115         OP_COMPLEMENT,  /* 97 */
116         OP_SMARTMATCH,  /* 98 */
117         OP_ATAN2,       /* 99 */
118         OP_SIN,         /* 100 */
119         OP_COS,         /* 101 */
120         OP_RAND,        /* 102 */
121         OP_SRAND,       /* 103 */
122         OP_EXP,         /* 104 */
123         OP_LOG,         /* 105 */
124         OP_SQRT,        /* 106 */
125         OP_INT,         /* 107 */
126         OP_HEX,         /* 108 */
127         OP_OCT,         /* 109 */
128         OP_ABS,         /* 110 */
129         OP_LENGTH,      /* 111 */
130         OP_SUBSTR,      /* 112 */
131         OP_VEC,         /* 113 */
132         OP_INDEX,       /* 114 */
133         OP_RINDEX,      /* 115 */
134         OP_SPRINTF,     /* 116 */
135         OP_FORMLINE,    /* 117 */
136         OP_ORD,         /* 118 */
137         OP_CHR,         /* 119 */
138         OP_CRYPT,       /* 120 */
139         OP_UCFIRST,     /* 121 */
140         OP_LCFIRST,     /* 122 */
141         OP_UC,          /* 123 */
142         OP_LC,          /* 124 */
143         OP_QUOTEMETA,   /* 125 */
144         OP_RV2AV,       /* 126 */
145         OP_AELEMFAST,   /* 127 */
146         OP_AELEM,       /* 128 */
147         OP_ASLICE,      /* 129 */
148         OP_AEACH,       /* 130 */
149         OP_AKEYS,       /* 131 */
150         OP_AVALUES,     /* 132 */
151         OP_EACH,        /* 133 */
152         OP_VALUES,      /* 134 */
153         OP_KEYS,        /* 135 */
154         OP_DELETE,      /* 136 */
155         OP_EXISTS,      /* 137 */
156         OP_RV2HV,       /* 138 */
157         OP_HELEM,       /* 139 */
158         OP_HSLICE,      /* 140 */
159         OP_UNPACK,      /* 141 */
160         OP_PACK,        /* 142 */
161         OP_SPLIT,       /* 143 */
162         OP_JOIN,        /* 144 */
163         OP_LIST,        /* 145 */
164         OP_LSLICE,      /* 146 */
165         OP_ANONLIST,    /* 147 */
166         OP_ANONHASH,    /* 148 */
167         OP_SPLICE,      /* 149 */
168         OP_PUSH,        /* 150 */
169         OP_POP,         /* 151 */
170         OP_SHIFT,       /* 152 */
171         OP_UNSHIFT,     /* 153 */
172         OP_SORT,        /* 154 */
173         OP_REVERSE,     /* 155 */
174         OP_GREPSTART,   /* 156 */
175         OP_GREPWHILE,   /* 157 */
176         OP_MAPSTART,    /* 158 */
177         OP_MAPWHILE,    /* 159 */
178         OP_RANGE,       /* 160 */
179         OP_FLIP,        /* 161 */
180         OP_FLOP,        /* 162 */
181         OP_AND,         /* 163 */
182         OP_OR,          /* 164 */
183         OP_XOR,         /* 165 */
184         OP_DOR,         /* 166 */
185         OP_COND_EXPR,   /* 167 */
186         OP_ANDASSIGN,   /* 168 */
187         OP_ORASSIGN,    /* 169 */
188         OP_DORASSIGN,   /* 170 */
189         OP_METHOD,      /* 171 */
190         OP_ENTERSUB,    /* 172 */
191         OP_LEAVESUB,    /* 173 */
192         OP_LEAVESUBLV,  /* 174 */
193         OP_CALLER,      /* 175 */
194         OP_WARN,        /* 176 */
195         OP_DIE,         /* 177 */
196         OP_RESET,       /* 178 */
197         OP_LINESEQ,     /* 179 */
198         OP_NEXTSTATE,   /* 180 */
199         OP_DBSTATE,     /* 181 */
200         OP_UNSTACK,     /* 182 */
201         OP_ENTER,       /* 183 */
202         OP_LEAVE,       /* 184 */
203         OP_SCOPE,       /* 185 */
204         OP_ENTERITER,   /* 186 */
205         OP_ITER,        /* 187 */
206         OP_ENTERLOOP,   /* 188 */
207         OP_LEAVELOOP,   /* 189 */
208         OP_RETURN,      /* 190 */
209         OP_LAST,        /* 191 */
210         OP_NEXT,        /* 192 */
211         OP_REDO,        /* 193 */
212         OP_DUMP,        /* 194 */
213         OP_GOTO,        /* 195 */
214         OP_EXIT,        /* 196 */
215         OP_SETSTATE,    /* 197 */
216         OP_METHOD_NAMED,/* 198 */
217         OP_ENTERGIVEN,  /* 199 */
218         OP_LEAVEGIVEN,  /* 200 */
219         OP_ENTERWHEN,   /* 201 */
220         OP_LEAVEWHEN,   /* 202 */
221         OP_BREAK,       /* 203 */
222         OP_CONTINUE,    /* 204 */
223         OP_OPEN,        /* 205 */
224         OP_CLOSE,       /* 206 */
225         OP_PIPE_OP,     /* 207 */
226         OP_FILENO,      /* 208 */
227         OP_UMASK,       /* 209 */
228         OP_BINMODE,     /* 210 */
229         OP_TIE,         /* 211 */
230         OP_UNTIE,       /* 212 */
231         OP_TIED,        /* 213 */
232         OP_DBMOPEN,     /* 214 */
233         OP_DBMCLOSE,    /* 215 */
234         OP_SSELECT,     /* 216 */
235         OP_SELECT,      /* 217 */
236         OP_GETC,        /* 218 */
237         OP_READ,        /* 219 */
238         OP_ENTERWRITE,  /* 220 */
239         OP_LEAVEWRITE,  /* 221 */
240         OP_PRTF,        /* 222 */
241         OP_PRINT,       /* 223 */
242         OP_SAY,         /* 224 */
243         OP_SYSOPEN,     /* 225 */
244         OP_SYSSEEK,     /* 226 */
245         OP_SYSREAD,     /* 227 */
246         OP_SYSWRITE,    /* 228 */
247         OP_SEND,        /* 229 */
248         OP_RECV,        /* 230 */
249         OP_EOF,         /* 231 */
250         OP_TELL,        /* 232 */
251         OP_SEEK,        /* 233 */
252         OP_TRUNCATE,    /* 234 */
253         OP_FCNTL,       /* 235 */
254         OP_IOCTL,       /* 236 */
255         OP_FLOCK,       /* 237 */
256         OP_SOCKET,      /* 238 */
257         OP_SOCKPAIR,    /* 239 */
258         OP_BIND,        /* 240 */
259         OP_CONNECT,     /* 241 */
260         OP_LISTEN,      /* 242 */
261         OP_ACCEPT,      /* 243 */
262         OP_SHUTDOWN,    /* 244 */
263         OP_GSOCKOPT,    /* 245 */
264         OP_SSOCKOPT,    /* 246 */
265         OP_GETSOCKNAME, /* 247 */
266         OP_GETPEERNAME, /* 248 */
267         OP_LSTAT,       /* 249 */
268         OP_STAT,        /* 250 */
269         OP_FTRREAD,     /* 251 */
270         OP_FTRWRITE,    /* 252 */
271         OP_FTREXEC,     /* 253 */
272         OP_FTEREAD,     /* 254 */
273         OP_FTEWRITE,    /* 255 */
274         OP_FTEEXEC,     /* 256 */
275         OP_FTIS,        /* 257 */
276         OP_FTSIZE,      /* 258 */
277         OP_FTMTIME,     /* 259 */
278         OP_FTATIME,     /* 260 */
279         OP_FTCTIME,     /* 261 */
280         OP_FTROWNED,    /* 262 */
281         OP_FTEOWNED,    /* 263 */
282         OP_FTZERO,      /* 264 */
283         OP_FTSOCK,      /* 265 */
284         OP_FTCHR,       /* 266 */
285         OP_FTBLK,       /* 267 */
286         OP_FTFILE,      /* 268 */
287         OP_FTDIR,       /* 269 */
288         OP_FTPIPE,      /* 270 */
289         OP_FTSUID,      /* 271 */
290         OP_FTSGID,      /* 272 */
291         OP_FTSVTX,      /* 273 */
292         OP_FTLINK,      /* 274 */
293         OP_FTTTY,       /* 275 */
294         OP_FTTEXT,      /* 276 */
295         OP_FTBINARY,    /* 277 */
296         OP_CHDIR,       /* 278 */
297         OP_CHOWN,       /* 279 */
298         OP_CHROOT,      /* 280 */
299         OP_UNLINK,      /* 281 */
300         OP_CHMOD,       /* 282 */
301         OP_UTIME,       /* 283 */
302         OP_RENAME,      /* 284 */
303         OP_LINK,        /* 285 */
304         OP_SYMLINK,     /* 286 */
305         OP_READLINK,    /* 287 */
306         OP_MKDIR,       /* 288 */
307         OP_RMDIR,       /* 289 */
308         OP_OPEN_DIR,    /* 290 */
309         OP_READDIR,     /* 291 */
310         OP_TELLDIR,     /* 292 */
311         OP_SEEKDIR,     /* 293 */
312         OP_REWINDDIR,   /* 294 */
313         OP_CLOSEDIR,    /* 295 */
314         OP_FORK,        /* 296 */
315         OP_WAIT,        /* 297 */
316         OP_WAITPID,     /* 298 */
317         OP_SYSTEM,      /* 299 */
318         OP_EXEC,        /* 300 */
319         OP_KILL,        /* 301 */
320         OP_GETPPID,     /* 302 */
321         OP_GETPGRP,     /* 303 */
322         OP_SETPGRP,     /* 304 */
323         OP_GETPRIORITY, /* 305 */
324         OP_SETPRIORITY, /* 306 */
325         OP_TIME,        /* 307 */
326         OP_TMS,         /* 308 */
327         OP_LOCALTIME,   /* 309 */
328         OP_GMTIME,      /* 310 */
329         OP_ALARM,       /* 311 */
330         OP_SLEEP,       /* 312 */
331         OP_SHMGET,      /* 313 */
332         OP_SHMCTL,      /* 314 */
333         OP_SHMREAD,     /* 315 */
334         OP_SHMWRITE,    /* 316 */
335         OP_MSGGET,      /* 317 */
336         OP_MSGCTL,      /* 318 */
337         OP_MSGSND,      /* 319 */
338         OP_MSGRCV,      /* 320 */
339         OP_SEMOP,       /* 321 */
340         OP_SEMGET,      /* 322 */
341         OP_SEMCTL,      /* 323 */
342         OP_REQUIRE,     /* 324 */
343         OP_DOFILE,      /* 325 */
344         OP_ENTEREVAL,   /* 326 */
345         OP_LEAVEEVAL,   /* 327 */
346         OP_ENTERTRY,    /* 328 */
347         OP_LEAVETRY,    /* 329 */
348         OP_GHBYNAME,    /* 330 */
349         OP_GHBYADDR,    /* 331 */
350         OP_GHOSTENT,    /* 332 */
351         OP_GNBYNAME,    /* 333 */
352         OP_GNBYADDR,    /* 334 */
353         OP_GNETENT,     /* 335 */
354         OP_GPBYNAME,    /* 336 */
355         OP_GPBYNUMBER,  /* 337 */
356         OP_GPROTOENT,   /* 338 */
357         OP_GSBYNAME,    /* 339 */
358         OP_GSBYPORT,    /* 340 */
359         OP_GSERVENT,    /* 341 */
360         OP_SHOSTENT,    /* 342 */
361         OP_SNETENT,     /* 343 */
362         OP_SPROTOENT,   /* 344 */
363         OP_SSERVENT,    /* 345 */
364         OP_EHOSTENT,    /* 346 */
365         OP_ENETENT,     /* 347 */
366         OP_EPROTOENT,   /* 348 */
367         OP_ESERVENT,    /* 349 */
368         OP_GPWNAM,      /* 350 */
369         OP_GPWUID,      /* 351 */
370         OP_GPWENT,      /* 352 */
371         OP_SPWENT,      /* 353 */
372         OP_EPWENT,      /* 354 */
373         OP_GGRNAM,      /* 355 */
374         OP_GGRGID,      /* 356 */
375         OP_GGRENT,      /* 357 */
376         OP_SGRENT,      /* 358 */
377         OP_EGRENT,      /* 359 */
378         OP_GETLOGIN,    /* 360 */
379         OP_SYSCALL,     /* 361 */
380         OP_LOCK,        /* 362 */
381         OP_ONCE,        /* 363 */
382         OP_CUSTOM,      /* 364 */
383         OP_max          
384 } opcode;
385
386 #define MAXO 365
387 #define OP_phoney_INPUT_ONLY -1
388 #define OP_phoney_OUTPUT_ONLY -2
389
390
391 #define OP_IS_SOCKET(op)        \
392         ((op) == OP_ACCEPT || \
393          (op) == OP_BIND || \
394          (op) == OP_CONNECT || \
395          (op) == OP_GETPEERNAME || \
396          (op) == OP_GETSOCKNAME || \
397          (op) == OP_GSOCKOPT || \
398          (op) == OP_LISTEN || \
399          (op) == OP_RECV || \
400          (op) == OP_SEND || \
401          (op) == OP_SHUTDOWN || \
402          (op) == OP_SOCKET || \
403          (op) == OP_SOCKPAIR || \
404          (op) == OP_SSOCKOPT)
405
406
407 #define OP_IS_FILETEST(op)      \
408         ((op) == OP_FTATIME || \
409          (op) == OP_FTBINARY || \
410          (op) == OP_FTBLK || \
411          (op) == OP_FTCHR || \
412          (op) == OP_FTCTIME || \
413          (op) == OP_FTDIR || \
414          (op) == OP_FTEEXEC || \
415          (op) == OP_FTEOWNED || \
416          (op) == OP_FTEREAD || \
417          (op) == OP_FTEWRITE || \
418          (op) == OP_FTFILE || \
419          (op) == OP_FTIS || \
420          (op) == OP_FTLINK || \
421          (op) == OP_FTMTIME || \
422          (op) == OP_FTPIPE || \
423          (op) == OP_FTREXEC || \
424          (op) == OP_FTROWNED || \
425          (op) == OP_FTRREAD || \
426          (op) == OP_FTRWRITE || \
427          (op) == OP_FTSGID || \
428          (op) == OP_FTSIZE || \
429          (op) == OP_FTSOCK || \
430          (op) == OP_FTSUID || \
431          (op) == OP_FTSVTX || \
432          (op) == OP_FTTEXT || \
433          (op) == OP_FTTTY || \
434          (op) == OP_FTZERO)
435
436 /* ex: set ro: */