[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(). |
|