Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /* -----------------------------------------------------------------------------
  2.  * extern.h
  3.  *
  4.  * Copyright (c) 2004, 2005, 2006, Vivek Mohan <vivek@sig9.com>
  5.  * All rights reserved. See LICENSE
  6.  * -----------------------------------------------------------------------------
  7.  */
  8. #ifndef UD_EXTERN_H
  9. #define UD_EXTERN_H
  10.  
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14.  
  15. #include <stdio.h>
  16. #include "types.h"
  17.  
  18. /* ============================= PUBLIC API ================================= */
  19.  
  20. extern void ud_init(struct ud*);
  21.  
  22. extern void ud_set_mode(struct ud*, uint8_t);
  23.  
  24. extern void ud_set_pc(struct ud*, uint64_t);
  25.  
  26. extern void ud_set_input_hook(struct ud*, int (*)(struct ud*));
  27.  
  28. extern void ud_set_input_buffer(struct ud*, uint8_t*, size_t);
  29.  
  30. #ifndef __UD_STANDALONE__
  31. extern void ud_set_input_file(struct ud*, FILE*);
  32. #endif /* __UD_STANDALONE__ */
  33.  
  34. extern void ud_set_vendor(struct ud*, unsigned);
  35.  
  36. extern void ud_set_syntax(struct ud*, void (*)(struct ud*));
  37.  
  38. extern void ud_input_skip(struct ud*, size_t);
  39.  
  40. extern int ud_input_end(struct ud*);
  41.  
  42. extern unsigned int ud_decode(struct ud*);
  43.  
  44. extern unsigned int ud_disassemble(struct ud*);
  45.  
  46. extern void ud_translate_intel(struct ud*);
  47.  
  48. extern void ud_translate_att(struct ud*);
  49.  
  50. extern char* ud_insn_asm(struct ud* u);
  51.  
  52. extern uint8_t* ud_insn_ptr(struct ud* u);
  53.  
  54. extern uint64_t ud_insn_off(struct ud*);
  55.  
  56. extern char* ud_insn_hex(struct ud*);
  57.  
  58. extern unsigned int ud_insn_len(struct ud* u);
  59.  
  60. extern const char* ud_lookup_mnemonic(enum ud_mnemonic_code c);
  61.  
  62. /* ========================================================================== */
  63.  
  64. #ifdef __cplusplus
  65. }
  66. #endif
  67. #endif
  68.