xref: /minix3/minix/lib/libmagicrt/include/magic_selement.h (revision b2ed49a5d83e311ee0fa9e5ff613639b1bf77aaf)
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