Print this page
3317 dis(1) should support cross-target disassembly


  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 *);