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