35#if defined(_MSC_VER) && defined(_USRDLL)
36# ifdef LIBUDIS86_EXPORTS
37# define LIBUDIS86_DLLEXTERN __declspec(dllexport)
39# define LIBUDIS86_DLLEXTERN __declspec(dllimport)
42# define LIBUDIS86_DLLEXTERN
47extern LIBUDIS86_DLLEXTERN
void ud_init(
struct ud*);
49extern LIBUDIS86_DLLEXTERN
void ud_set_mode(
struct ud*, uint8_t);
51extern LIBUDIS86_DLLEXTERN
void ud_set_pc(
struct ud*, uint64_t);
53extern LIBUDIS86_DLLEXTERN
void ud_set_input_hook(
struct ud*,
int (*)(
struct ud*));
55extern LIBUDIS86_DLLEXTERN
void ud_set_input_buffer(
struct ud*,
const uint8_t*,
size_t);
57#ifndef __UD_STANDALONE__
58extern LIBUDIS86_DLLEXTERN
void ud_set_input_file(
struct ud*, FILE*);
61extern LIBUDIS86_DLLEXTERN
void ud_set_vendor(
struct ud*,
unsigned);
63extern LIBUDIS86_DLLEXTERN
void ud_set_syntax(
struct ud*,
void (*)(
struct ud*));
65extern LIBUDIS86_DLLEXTERN
void ud_input_skip(
struct ud*,
size_t);
67extern LIBUDIS86_DLLEXTERN
int ud_input_end(
const struct ud*);
69extern LIBUDIS86_DLLEXTERN
unsigned int ud_decode(
struct ud*);
71extern LIBUDIS86_DLLEXTERN
unsigned int ud_disassemble(
struct ud*);
73extern LIBUDIS86_DLLEXTERN
void ud_translate_intel(
struct ud*);
75extern LIBUDIS86_DLLEXTERN
void ud_translate_att(
struct ud*);
77extern LIBUDIS86_DLLEXTERN
const char* ud_insn_asm(
const struct ud* u);
79extern LIBUDIS86_DLLEXTERN
const uint8_t* ud_insn_ptr(
const struct ud* u);
81extern LIBUDIS86_DLLEXTERN uint64_t ud_insn_off(
const struct ud*);
83extern LIBUDIS86_DLLEXTERN
const char* ud_insn_hex(
struct ud*);
85extern LIBUDIS86_DLLEXTERN
unsigned int ud_insn_len(
const struct ud* u);
87extern LIBUDIS86_DLLEXTERN
const struct ud_operand* ud_insn_opr(
const struct ud *u,
unsigned int n);
89extern LIBUDIS86_DLLEXTERN
int ud_opr_is_sreg(
const struct ud_operand *opr);
91extern LIBUDIS86_DLLEXTERN
int ud_opr_is_gpr(
const struct ud_operand *opr);
93extern LIBUDIS86_DLLEXTERN
enum ud_mnemonic_code ud_insn_mnemonic(
const struct ud *u);
95extern LIBUDIS86_DLLEXTERN
const char* ud_lookup_mnemonic(
enum ud_mnemonic_code c);
97extern LIBUDIS86_DLLEXTERN
void ud_set_user_opaque_data(
struct ud*,
void*);
99extern LIBUDIS86_DLLEXTERN
void* ud_get_user_opaque_data(
const struct ud*);
101extern LIBUDIS86_DLLEXTERN
void ud_set_asm_buffer(
struct ud *u,
char *buf,
size_t size);
103extern LIBUDIS86_DLLEXTERN
void ud_set_sym_resolver(
struct ud *u,
104 const char* (*resolver)(
struct ud*,