1 #ifndef _MAGIC_SELEMENT_H
2 #define _MAGIC_SELEMENT_H
6 #include <magic_common.h>
7 #include <magic_structs.h>
8 #include <magic_analysis.h>
10 /* Magic state element functions. */
11 PUBLIC
void magic_selement_print_value(const _magic_selement_t
*selement
);
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
);
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
,
24 PUBLIC
void magic_selement_from_int(const _magic_selement_t
*selement
,
26 PUBLIC
void magic_selement_from_float(const _magic_selement_t
*selement
,
28 PUBLIC
int magic_selement_ptr_value_cast(const _magic_selement_t
*src_selement
,
29 const _magic_selement_t
*dst_selement
, void* value_buffer
);
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
);
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
,
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
);
53 #endif /* _MAGIC_SELEMENT_H */