disasm.h revision 1.1.1.1 1 1.1 christos /* Disassemble support for GDB.
2 1.1 christos Copyright (C) 2002-2014 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 christos #define DISASSEMBLY_SOURCE (0x1 << 0)
23 1.1 christos #define DISASSEMBLY_RAW_INSN (0x1 << 1)
24 1.1 christos #define DISASSEMBLY_OMIT_FNAME (0x1 << 2)
25 1.1 christos #define DISASSEMBLY_FILENAME (0x1 << 3)
26 1.1 christos #define DISASSEMBLY_OMIT_PC (0x1 << 4)
27 1.1 christos
28 1.1 christos struct ui_out;
29 1.1 christos struct ui_file;
30 1.1 christos
31 1.1 christos extern void gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout,
32 1.1 christos char *file_string, int flags, int how_many,
33 1.1 christos CORE_ADDR low, CORE_ADDR high);
34 1.1 christos
35 1.1 christos /* Print the instruction at address MEMADDR in debugged memory,
36 1.1 christos on STREAM. Returns the length of the instruction, in bytes,
37 1.1 christos and, if requested, the number of branch delay slot instructions. */
38 1.1 christos
39 1.1 christos extern int gdb_print_insn (struct gdbarch *gdbarch, CORE_ADDR memaddr,
40 1.1 christos struct ui_file *stream, int *branch_delay_insns);
41 1.1 christos
42 1.1 christos /* Return the length in bytes of the instruction at address MEMADDR in
43 1.1 christos debugged memory. */
44 1.1 christos
45 1.1 christos extern int gdb_insn_length (struct gdbarch *gdbarch, CORE_ADDR memaddr);
46 1.1 christos
47 1.1 christos /* Return the length in bytes of INSN, originally at MEMADDR. MAX_LEN
48 1.1 christos is the size of the buffer containing INSN. */
49 1.1 christos
50 1.1 christos extern int gdb_buffered_insn_length (struct gdbarch *gdbarch,
51 1.1 christos const gdb_byte *insn, int max_len,
52 1.1 christos CORE_ADDR memaddr);
53 1.1 christos
54 1.1 christos #endif
55