Home | History | Annotate | Line # | Download | only in gdb
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