disasm.h revision 1.1.1.2 1 1.1 christos /* Disassemble support for GDB.
2 1.1.1.2 christos Copyright (C) 2002-2015 Free Software Foundation, Inc.
3 1.1 christos
4 1.1 christos This file is part of GDB.
5 1.1 christos
6 1.1 christos This program is free software; you can redistribute it and/or modify
7 1.1 christos it under the terms of the GNU General Public License as published by
8 1.1 christos the Free Software Foundation; either version 3 of the License, or
9 1.1 christos (at your option) any later version.
10 1.1 christos
11 1.1 christos This program is distributed in the hope that it will be useful,
12 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of
13 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 1.1 christos GNU General Public License for more details.
15 1.1 christos
16 1.1 christos You should have received a copy of the GNU General Public License
17 1.1 christos along with this program. If not, see <http://www.gnu.org/licenses/>. */
18 1.1 christos
19 1.1 christos #ifndef DISASM_H
20 1.1 christos #define DISASM_H
21 1.1 christos
22 1.1.1.2 christos #include "dis-asm.h"
23 1.1.1.2 christos
24 1.1 christos #define DISASSEMBLY_SOURCE (0x1 << 0)
25 1.1 christos #define DISASSEMBLY_RAW_INSN (0x1 << 1)
26 1.1 christos #define DISASSEMBLY_OMIT_FNAME (0x1 << 2)
27 1.1 christos #define DISASSEMBLY_FILENAME (0x1 << 3)
28 1.1 christos #define DISASSEMBLY_OMIT_PC (0x1 << 4)
29 1.1 christos
30 1.1.1.2 christos struct gdbarch;
31 1.1 christos struct ui_out;
32 1.1 christos struct ui_file;
33 1.1 christos
34 1.1.1.2 christos /* Return a filled in disassemble_info object for use by gdb. */
35 1.1.1.2 christos
36 1.1.1.2 christos extern struct disassemble_info gdb_disassemble_info (struct gdbarch *gdbarch,
37 1.1.1.2 christos struct ui_file *file);
38 1.1.1.2 christos
39 1.1 christos extern void gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout,
40 1.1 christos char *file_string, int flags, int how_many,
41 1.1 christos CORE_ADDR low, CORE_ADDR high);
42 1.1 christos
43 1.1 christos /* Print the instruction at address MEMADDR in debugged memory,
44 1.1 christos on STREAM. Returns the length of the instruction, in bytes,
45 1.1 christos and, if requested, the number of branch delay slot instructions. */
46 1.1 christos
47 1.1 christos extern int gdb_print_insn (struct gdbarch *gdbarch, CORE_ADDR memaddr,
48 1.1 christos struct ui_file *stream, int *branch_delay_insns);
49 1.1 christos
50 1.1 christos /* Return the length in bytes of the instruction at address MEMADDR in
51 1.1 christos debugged memory. */
52 1.1 christos
53 1.1 christos extern int gdb_insn_length (struct gdbarch *gdbarch, CORE_ADDR memaddr);
54 1.1 christos
55 1.1 christos /* Return the length in bytes of INSN, originally at MEMADDR. MAX_LEN
56 1.1 christos is the size of the buffer containing INSN. */
57 1.1 christos
58 1.1 christos extern int gdb_buffered_insn_length (struct gdbarch *gdbarch,
59 1.1 christos const gdb_byte *insn, int max_len,
60 1.1 christos CORE_ADDR memaddr);
61 1.1 christos
62 1.1 christos #endif
63