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 12extern "C" { 13#endif 14 15#include <stdio.h> 16#include "types.h" 17 18/* ============================= PUBLIC API ================================= */ 19 20extern void ud_init(struct ud*); 21 22extern void ud_set_mode(struct ud*, uint8_t); 23 24extern void ud_set_pc(struct ud*, uint64_t); 25 26extern void ud_set_input_hook(struct ud*, int (*)(struct ud*)); 27 28extern void ud_set_input_buffer(struct ud*, uint8_t*, size_t); 29 30#ifndef __UD_STANDALONE__ 31extern void ud_set_input_file(struct ud*, FILE*); 32#endif /* __UD_STANDALONE__ */ 33 34extern void ud_set_vendor(struct ud*, unsigned); 35 36extern void ud_set_syntax(struct ud*, void (*)(struct ud*)); 37 38extern void ud_input_skip(struct ud*, size_t); 39 40extern int ud_input_end(struct ud*); 41 42extern unsigned int ud_decode(struct ud*); 43 44extern unsigned int ud_disassemble(struct ud*); 45 46extern void ud_translate_intel(struct ud*); 47 48extern void ud_translate_att(struct ud*); 49 50extern char* ud_insn_asm(struct ud* u); 51 52extern uint8_t* ud_insn_ptr(struct ud* u); 53 54extern uint64_t ud_insn_off(struct ud*); 55 56extern char* ud_insn_hex(struct ud*); 57 58extern unsigned int ud_insn_len(struct ud* u); 59 60extern const char* ud_lookup_mnemonic(enum ud_mnemonic_code c); 61 62/* ========================================================================== */ 63 64#ifdef __cplusplus 65} 66#endif 67#endif 68