1 #ifndef _MAGIC_SELEMENT_H 2 #define _MAGIC_SELEMENT_H 3 4 #include <magic.h> 5 #include <magic_def.h> 6 #include <magic_common.h> 7 #include <magic_structs.h> 8 #include <magic_analysis.h> 9 10 /* Magic state element functions. */ 11 PUBLIC void magic_selement_print_value(const _magic_selement_t *selement); 12 PUBLIC unsigned long 13 magic_selement_to_unsigned(const _magic_selement_t *selement); 14 PUBLIC long magic_selement_to_int(const _magic_selement_t *selement); 15 #if MAGIC_LONG_LONG_SUPPORTED 16 PUBLIC unsigned long long 17 magic_selement_to_llu(const _magic_selement_t *selement); 18 PUBLIC long long magic_selement_to_ll(const _magic_selement_t *selement); 19 #endif 20 PUBLIC double magic_selement_to_float(const _magic_selement_t *selement); 21 PUBLIC void* magic_selement_to_ptr(const _magic_selement_t *selement); 22 PUBLIC void magic_selement_from_unsigned(const _magic_selement_t *selement, 23 unsigned long value); 24 PUBLIC void magic_selement_from_int(const _magic_selement_t *selement, 25 long value); 26 PUBLIC void magic_selement_from_float(const _magic_selement_t *selement, 27 double value); 28 PUBLIC int magic_selement_ptr_value_cast(const _magic_selement_t *src_selement, 29 const _magic_selement_t *dst_selement, void* value_buffer); 30 PUBLIC int 31 magic_selement_unsigned_value_cast(const _magic_selement_t *src_selement, 32 const _magic_selement_t *dst_selement, void* value_buffer); 33 PUBLIC int magic_selement_int_value_cast(const _magic_selement_t *src_selement, 34 const _magic_selement_t *dst_selement, void* value_buffer); 35 PUBLIC int 36 magic_selement_float_value_cast(const _magic_selement_t *src_selement, 37 const _magic_selement_t *dst_selement, void* value_buffer); 38 PUBLIC int magic_selement_value_cast(const _magic_selement_t *src_selement, 39 const _magic_selement_t *dst_selement, void* value_buffer); 40 PUBLIC _magic_selement_t* 41 magic_selement_get_parent(const _magic_selement_t *selement, 42 _magic_selement_t *parent_selement); 43 PUBLIC void magic_selement_fill_from_parent_info(_magic_selement_t *selement, 44 int walk_flags); 45 PUBLIC _magic_selement_t* 46 magic_selement_from_sentry(struct _magic_sentry *sentry, 47 _magic_selement_t *selement); 48 PUBLIC _magic_selement_t* 49 magic_selement_from_relative_name(_magic_selement_t *parent_selement, 50 _magic_selement_t *selement, char* name); 51 52 53 #endif /* _MAGIC_SELEMENT_H */ 54