|
[insert project logo here (125x200px max)]
Navigator
Mailinglists
Please report any errors or ommissions you find to our `Help' mailinglist, or
post a message in the Forums.
Copyright and Licensing Information
Snap is (c) Jonathan T. Moore, 1999-2002 and licensed under the
GNU General Public License (GPL).
All other parts of Splash are (c) Willem de Bruijn, 2002-2003 and
licensed under the BSD Open Source License.
All sourcecode is made publicly available.
Acknowledgement
Splash and the Splash website are hosted
by SourceForge.net
|
Splash - Documentation
SNMP Plus a Lightweight API for SNAP Handling
Main Page Alphabetical List Data Structures File List Data Fields Globals
snap-1.1-wjdb/lib/bytecode.h File Reference#include <stdio.h>
#include <limits.h>
#include "config.h"
#include "dyncheck.h"
#include "wassert.h"
Include dependency graph for bytecode.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
|
Data Structures |
| struct | heap_obj |
Defines |
| #define | SMALL_INSTRS |
| #define | SMALL_VALUES |
| #define | DYNCHECK_TAG(v, tag) ((void)0) |
| #define | INTV 0 |
| #define | ADDRV 1 |
| #define | STRV 2 |
| #define | EXCV 3 |
| #define | TUPLEV 4 |
| #define | FLOATV 5 |
| #define | BOGUSV 6 |
| #define | TAG_T int |
| #define | LENTYPE unsigned short |
| #define | MAX_HEAPOBJ_SZ (1 << ((sizeof(unsigned short) * 8))) |
| #define | ZERO_VALUE_T 0 |
| #define | TAGSZ 7 |
| #define | MAX_VINT (1 << ((sizeof(unsigned int) * 8-(TAGSZ+1)))) |
| #define | MIN_VINT (- MAX_VINT - 1) |
| #define | GET_TAG(v) ((v) >> (sizeof(unsigned int)*8-TAGSZ)) |
| #define | SET_TAG(v, t) ((v) = (((v) << TAGSZ) >> TAGSZ) | ((t) << (sizeof(unsigned int)*8-TAGSZ))) |
| #define | GET_INT(v) (((int)((v) << TAGSZ)) >> TAGSZ) |
| #define | SET_INT(v, i) ((v) = (((v) >> (sizeof(unsigned int)*8-TAGSZ)) << (sizeof(unsigned int)*8-TAGSZ)) | ((((unsigned int)(i)) << TAGSZ) >> TAGSZ)) |
| #define | GET_OFFS GET_INT |
| #define | SET_OFFS SET_INT |
| #define | COPY_VAL(val1, val2) ((val1) = (val2)) |
| #define | GET_BOXED(res, heap, v, t) |
| #define | GET_ADDR(res, h, v) GET_BOXED(res,h,v,uint32_t) |
| #define | GET_FLOAT(res, h, v) GET_BOXED(res,h,v,float32) |
| #define | GET_ADDR_VAL(h, v) (*((uint32_t *)(((heap_obj *)((h) + GET_OFFS(v)))->s))) |
| #define | GET_FLT_VAL(h, v) (*((float32 *)(((heap_obj *)((h) + GET_OFFS(v)))->s))) |
| #define | FLTINTPAIR(f) (int)(f),(int)(((f) - (int)(f)) * 1000000) |
| #define | SET_ADDR(val, a, p) |
| #define | SET_FLOAT(val, a, p) |
| #define | IS_HEAP_VAL(v) |
| #define | EXIT 0 |
| #define | PUSH 1 |
| #define | POP 2 |
| #define | POPI 3 |
| #define | PULL 4 |
| #define | STORE 5 |
| #define | PAJ 6 |
| #define | TPAJ 7 |
| #define | JI 8 |
| #define | BEZ 9 |
| #define | BNE 10 |
| #define | MKTUP 11 |
| #define | NTH 12 |
| #define | LEN 13 |
| #define | ISTUP 14 |
| #define | EQ 15 |
| #define | EQI 16 |
| #define | NEQ 17 |
| #define | NEQI 18 |
| #define | GT 19 |
| #define | GTI 20 |
| #define | GEQ 21 |
| #define | GEQI 22 |
| #define | LEQ 23 |
| #define | LEQI 24 |
| #define | LT 25 |
| #define | LTI 26 |
| #define | ADD 27 |
| #define | ADDI 28 |
| #define | SUB 29 |
| #define | SUBI 30 |
| #define | MULT 31 |
| #define | MULTI 32 |
| #define | DIV 33 |
| #define | DIVI 34 |
| #define | MOD 35 |
| #define | MODI 36 |
| #define | NEG 37 |
| #define | NOT 38 |
| #define | LNOT 39 |
| #define | AND 40 |
| #define | ANDI 41 |
| #define | OR 42 |
| #define | ORI 43 |
| #define | LSHL 44 |
| #define | LSHLI 45 |
| #define | RSHL 46 |
| #define | RSHLI 47 |
| #define | RSHA 48 |
| #define | RSHAI 49 |
| #define | XOR 50 |
| #define | XORI 51 |
| #define | SNET 52 |
| #define | SNETI 53 |
| #define | BCAST 54 |
| #define | BCASTI 55 |
| #define | ISX 56 |
| #define | GETRB 57 |
| #define | GETSRC 58 |
| #define | GETDST 60 |
| #define | GETSPT 61 |
| #define | HERE 62 |
| #define | ISHERE 63 |
| #define | ROUTE 64 |
| #define | RTDEV 65 |
| #define | SEND 66 |
| #define | HOP 67 |
| #define | FORW 69 |
| #define | FORWTO 70 |
| #define | DEMUX 71 |
| #define | DEMUXI 72 |
| #define | PRINT 73 |
| #define | PINT 74 |
| #define | PADDR 75 |
| #define | PTUP 76 |
| #define | PEXC 77 |
| #define | PSTR 78 |
| #define | PFLT 79 |
| #define | EQINT 80 |
| #define | EQADR 81 |
| #define | EQTUP 82 |
| #define | EQEXC 83 |
| #define | EQSTR 84 |
| #define | EQFLT 85 |
| #define | NQINT 86 |
| #define | NQADR 87 |
| #define | NQTUP 88 |
| #define | NQEXC 89 |
| #define | NQSTR 90 |
| #define | NQFLT 91 |
| #define | SVCV 92 |
| #define | CALLS 93 |
| #define | FGTI 94 |
| #define | FGEQI 95 |
| #define | FLEQI 96 |
| #define | FLTI 97 |
| #define | FADDI 98 |
| #define | FSUBI 99 |
| #define | FMULI 100 |
| #define | FDIVI 101 |
| #define | GETLD 102 |
| #define | SETXH 103 |
| #define | RAISEX 104 |
| #define | DSEND 105 |
| #define | DFORW 106 |
| #define | DFORWTO 107 |
| #define | STACKEMPTY 108 |
| #define | STACKCOUNT 109 |
| #define | PULLSTACK 110 |
| #define | OPCODE_T int |
| #define | GET_OP(v) ((v) >> (sizeof(unsigned int)*8-TAGSZ)) |
| #define | SET_OP(v, i) ((v) = (((v) << TAGSZ) >> TAGSZ) | ((i) << (sizeof(unsigned int)*8-TAGSZ))) |
| #define | GET_LIT(l, t, i) ((l) = (((int)((i) << TAGSZ)) >> TAGSZ)) |
| #define | SET_LIT(i, t, l) ((i) = (((i) >> (sizeof(unsigned int)*8-TAGSZ)) << (sizeof(unsigned int)*8-TAGSZ)) | ((((unsigned int)(l)) << TAGSZ) >> TAGSZ)) |
| #define | GET_LIT_VAL(i) (((int)((i) << TAGSZ)) >> TAGSZ) |
| #define | GET_STR_VAL(h, v) (((heap_obj *)((h) + GET_OFFS(v)))->s) |
| #define | NUM_OPS 87 |
| #define | COPY_LIT(d, t, s) |
Typedefs |
| typedef unsigned int | value_t |
| typedef unsigned int | instr_t |
Define Documentation
| #define COPY_LIT |
( |
d, |
|
|
t, |
|
|
s |
|
) |
|
|
| #define COPY_VAL |
( |
val1, |
|
|
val2 |
|
) |
((val1) = (val2))
|
|
| #define DYNCHECK_TAG |
( |
v, |
|
|
tag |
|
) |
((void)0)
|
|
| #define FLTINTPAIR |
( |
f |
|
) |
(int)(f),(int)(((f) - (int)(f)) * 1000000)
|
|
| #define GET_ADDR |
( |
res, |
|
|
h, |
|
|
v |
|
) |
GET_BOXED(res,h,v,uint32_t)
|
|
| #define GET_ADDR_VAL |
( |
h, |
|
|
v |
|
) |
(*((uint32_t *)(((heap_obj *)((h) + GET_OFFS(v)))->s)))
|
|
| #define GET_BOXED |
( |
res, |
|
|
heap, |
|
|
v, |
|
|
t |
|
) |
|
|
| #define GET_FLOAT |
( |
res, |
|
|
h, |
|
|
v |
|
) |
GET_BOXED(res,h,v,float32)
|
|
| #define GET_FLT_VAL |
( |
h, |
|
|
v |
|
) |
(*((float32 *)(((heap_obj *)((h) + GET_OFFS(v)))->s)))
|
|
| #define GET_INT |
( |
v |
|
) |
(((int)((v) << TAGSZ)) >> TAGSZ)
|
|
| #define GET_LIT |
( |
l, |
|
|
t, |
|
|
i |
|
) |
((l) = (((int)((i) << TAGSZ)) >> TAGSZ))
|
|
| #define GET_LIT_VAL |
( |
i |
|
) |
(((int)((i) << TAGSZ)) >> TAGSZ)
|
|
| #define GET_OP |
( |
v |
|
) |
((v) >> (sizeof(unsigned int)*8-TAGSZ))
|
|
| #define GET_STR_VAL |
( |
h, |
|
|
v |
|
) |
(((heap_obj *)((h) + GET_OFFS(v)))->s)
|
|
| #define GET_TAG |
( |
v |
|
) |
((v) >> (sizeof(unsigned int)*8-TAGSZ))
|
|
| #define IS_HEAP_VAL |
( |
v |
|
) |
|
|
| #define LENTYPE unsigned short
|
|
| #define MAX_HEAPOBJ_SZ (1 << ((sizeof(unsigned short) * 8)))
|
|
| #define MAX_VINT (1 << ((sizeof(unsigned int) * 8-(TAGSZ+1))))
|
|
| #define MIN_VINT (- MAX_VINT - 1)
|
|
| #define SET_ADDR |
( |
val, |
|
|
a, |
|
|
p |
|
) |
|
|
| #define SET_FLOAT |
( |
val, |
|
|
a, |
|
|
p |
|
) |
|
|
| #define SET_INT |
( |
v, |
|
|
i |
|
) |
((v) = (((v) >> (sizeof(unsigned int)*8-TAGSZ)) << (sizeof(unsigned int)*8-TAGSZ)) | ((((unsigned int)(i)) << TAGSZ) >> TAGSZ))
|
|
| #define SET_LIT |
( |
i, |
|
|
t, |
|
|
l |
|
) |
((i) = (((i) >> (sizeof(unsigned int)*8-TAGSZ)) << (sizeof(unsigned int)*8-TAGSZ)) | ((((unsigned int)(l)) << TAGSZ) >> TAGSZ))
|
|
| #define SET_OP |
( |
v, |
|
|
i |
|
) |
((v) = (((v) << TAGSZ) >> TAGSZ) | ((i) << (sizeof(unsigned int)*8-TAGSZ)))
|
|
| #define SET_TAG |
( |
v, |
|
|
t |
|
) |
((v) = (((v) << TAGSZ) >> TAGSZ) | ((t) << (sizeof(unsigned int)*8-TAGSZ)))
|
|
Typedef Documentation
| typedef unsigned int instr_t
|
|
| typedef unsigned int value_t
|
|
|
|
Definition at line 76 of file bytecode.h.
Referenced by fprintf_instr(), fprintf_packet(), fprintf_value(), fprintf_value_heap(), main(), marshal_packet(), newtup(), patch_jumps(), snap_svc_convert_returnstruct2stack(), snap_svc_convert_stack2returnstruct(), unmarshal_packet(), and yyparse(). |
|