4 * Wrapper around i386-dis to supply the same behaviour as the other
5 * disassembly functions.
7 * Copyright (c) 2005 Nathan Keynes.
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
23 extern const struct cpu_desc_struct xlat_cpu_desc;
25 typedef struct xlat_symbol {
33 * Dump the disassembly of the specified code block to a stream
34 * (primarily for debugging purposes)
35 * @param out The stream to write the output to
36 * @param code a translated block
38 void xlat_disasm_block( FILE *out, void *code );
41 * Disassemble one host instruction
42 * @param pc Instruction to disassemble
43 * @param buf buffer to hold the disassembled instruction
44 * @param len sizeof buf
45 * @param opcode buffer to hold the raw opcodes for the instruction (must be at least
46 * 3 * maximum number of instruction bytes)
47 * @return next pc after the current instruction
49 uintptr_t xlat_disasm_instruction( uintptr_t pc, char *buf, int len, char *opcode );
51 void xlat_disasm_region( FILE *out, void *block, uint32_t len );
52 void xlat_disasm_init( xlat_symbol *symtab, int num_symbols );
53 uintptr_t xlat_disasm_instruction( uintptr_t pc, char *buf, int len, char *opcode );
55 void xlat_print_symbolic_operand( char *buf, int hex, uintptr_t disp );
.