libyasm

libyasm/value.h

Go to the documentation of this file.
00001 
00030 #ifndef YASM_VALUE_H
00031 #define YASM_VALUE_H
00032 
00033 #ifndef YASM_LIB_DECL
00034 #define YASM_LIB_DECL
00035 #endif
00036 
00048 YASM_LIB_DECL
00049 void yasm_value_initialize(/*@out@*/ yasm_value *value,
00050                            /*@null@*/ /*@kept@*/ yasm_expr *e,
00051                            unsigned int size);
00052 
00060 YASM_LIB_DECL
00061 void yasm_value_init_sym(/*@out@*/ yasm_value *value,
00062                          /*@null@*/ yasm_symrec *sym, unsigned int size);
00063 
00069 YASM_LIB_DECL
00070 void yasm_value_init_copy(yasm_value *value, const yasm_value *orig);
00071 
00075 YASM_LIB_DECL
00076 void yasm_value_delete(yasm_value *value);
00077 
00087 YASM_LIB_DECL
00088 void yasm_value_set_curpos_rel(yasm_value *value, yasm_bytecode *bc,
00089                                unsigned int ip_rel);
00090 
00097 YASM_LIB_DECL
00098 int yasm_value_finalize(yasm_value *value, /*@null@*/ yasm_bytecode *precbc);
00099 
00119 YASM_LIB_DECL
00120 int yasm_value_finalize_expr(/*@out@*/ yasm_value *value,
00121                              /*@null@*/ /*@kept@*/ yasm_expr *e,
00122                              /*@null@*/ yasm_bytecode *precbc,
00123                              unsigned int size);
00124 
00136 YASM_LIB_DECL
00137 /*@null@*/ /*@only@*/ yasm_intnum *yasm_value_get_intnum
00138     (yasm_value *value, /*@null@*/ yasm_bytecode *bc, int calc_bc_dist);
00139 
00159 YASM_LIB_DECL
00160 int yasm_value_output_basic
00161     (yasm_value *value, /*@out@*/ unsigned char *buf, size_t destsize,
00162      yasm_bytecode *bc, int warn, yasm_arch *arch);
00163 
00169 YASM_LIB_DECL
00170 void yasm_value_print(const yasm_value *value, FILE *f, int indent_level);
00171 
00172 #endif