/* Target-dependent code for GNU/Linux i386.
- Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ Copyright (C) 2000-2018 Free Software Foundation, Inc.
This file is part of GDB.
static LONGEST
i386_linux_get_syscall_number_from_regcache (struct regcache *regcache)
{
- struct gdbarch *gdbarch = get_regcache_arch (regcache);
+ struct gdbarch *gdbarch = regcache->arch ();
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
/* The content of a register. */
gdb_byte buf[4];
[(xcr0 & X86_XSTATE_PKRU) ? 1 : 0];
if (*tdesc == NULL)
- *tdesc = i386_create_target_description (xcr0);
+ *tdesc = i386_create_target_description (xcr0, true);
return *tdesc;
}
CORE_ADDR from, CORE_ADDR to,
struct regcache *regs)
{
- struct displaced_step_closure *closure;
-
- closure = i386_displaced_step_copy_insn (gdbarch, from, to, regs);
+ displaced_step_closure *closure_
+ = i386_displaced_step_copy_insn (gdbarch, from, to, regs);
if (i386_linux_get_syscall_number_from_regcache (regs) != -1)
{
- /* Since we use simple_displaced_step_copy_insn, our closure is a
- copy of the instruction. */
- gdb_byte *insn = (gdb_byte *) closure;
+ /* The closure returned by i386_displaced_step_copy_insn is simply a
+ buffer with a copy of the instruction. */
+ i386_displaced_step_closure *closure
+ = (i386_displaced_step_closure *) closure_;
/* Fake nop. */
- insn[0] = 0x90;
+ closure->buf[0] = 0x90;
}
- return closure;
+ return closure_;
}
static void
i386_linux_handle_segmentation_fault);
}
-/* Provide a prototype to silence -Wmissing-prototypes. */
-extern void _initialize_i386_linux_tdep (void);
-
void
_initialize_i386_linux_tdep (void)
{