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