37 #include <sys/types.h>
38
39 /*
40 * Basic types
41 */
42 typedef struct dis_tgt dis_tgt_t;
43 typedef struct dis_func dis_func_t;
44 typedef struct dis_scn dis_scn_t;
45
46 /*
47 * Target management
48 */
49 dis_tgt_t *dis_tgt_create(const char *);
50 void dis_tgt_destroy(dis_tgt_t *);
51 const char *dis_tgt_lookup(dis_tgt_t *, uint64_t, off_t *, int, size_t *,
52 int *);
53 const char *dis_find_section(dis_tgt_t *, uint64_t, off_t *);
54 const char *dis_tgt_name(dis_tgt_t *);
55 const char *dis_tgt_member(dis_tgt_t *);
56 void dis_tgt_ehdr(dis_tgt_t *, GElf_Ehdr *);
57 #if !defined(__sparc)
58 off_t dis_tgt_next_symbol(dis_tgt_t *, uint64_t);
59 #endif
60 dis_tgt_t *dis_tgt_next(dis_tgt_t *);
61
62 /*
63 * Section management
64 */
65 typedef void (*section_iter_f)(dis_tgt_t *, dis_scn_t *, void *);
66 void dis_tgt_section_iter(dis_tgt_t *, section_iter_f, void *);
67
68 int dis_section_istext(dis_scn_t *);
69 void *dis_section_data(dis_scn_t *);
70 size_t dis_section_size(dis_scn_t *);
71 uint64_t dis_section_addr(dis_scn_t *);
72 const char *dis_section_name(dis_scn_t *);
73 dis_scn_t *dis_section_copy(dis_scn_t *);
74 void dis_section_free(dis_scn_t *);
75
76 /*
77 * Function management
78 */
79 typedef void (*function_iter_f)(dis_tgt_t *, dis_func_t *, void *);
|
37 #include <sys/types.h>
38
39 /*
40 * Basic types
41 */
42 typedef struct dis_tgt dis_tgt_t;
43 typedef struct dis_func dis_func_t;
44 typedef struct dis_scn dis_scn_t;
45
46 /*
47 * Target management
48 */
49 dis_tgt_t *dis_tgt_create(const char *);
50 void dis_tgt_destroy(dis_tgt_t *);
51 const char *dis_tgt_lookup(dis_tgt_t *, uint64_t, off_t *, int, size_t *,
52 int *);
53 const char *dis_find_section(dis_tgt_t *, uint64_t, off_t *);
54 const char *dis_tgt_name(dis_tgt_t *);
55 const char *dis_tgt_member(dis_tgt_t *);
56 void dis_tgt_ehdr(dis_tgt_t *, GElf_Ehdr *);
57 off_t dis_tgt_next_symbol(dis_tgt_t *, uint64_t);
58 dis_tgt_t *dis_tgt_next(dis_tgt_t *);
59
60 /*
61 * Section management
62 */
63 typedef void (*section_iter_f)(dis_tgt_t *, dis_scn_t *, void *);
64 void dis_tgt_section_iter(dis_tgt_t *, section_iter_f, void *);
65
66 int dis_section_istext(dis_scn_t *);
67 void *dis_section_data(dis_scn_t *);
68 size_t dis_section_size(dis_scn_t *);
69 uint64_t dis_section_addr(dis_scn_t *);
70 const char *dis_section_name(dis_scn_t *);
71 dis_scn_t *dis_section_copy(dis_scn_t *);
72 void dis_section_free(dis_scn_t *);
73
74 /*
75 * Function management
76 */
77 typedef void (*function_iter_f)(dis_tgt_t *, dis_func_t *, void *);
|