* i386-tdep.c (i386_breakpoint_from_pc): Change return type to

`const gdb_byte *'.  Use gdb_byte for break_insn.
(i386_follow_jump): Use gdb_byte for op.
(i386_analyze_struct_return): Use gdb_byte for proto1, proto2, buf
and op.
(i386_skip_probe): Use gdb_byte for buf and op.
(struct i386_insn): Use gdb_byte for insn and mask.
(i386_match_insn, i386_analyze_frame_setup)
(i386_analyze_register_saves): Use gdb_byte for op.
(i386_skip_prologue): Use gdb_byte for pic_pat and op;
(i386_unwind_pc, i386_frame_cache, i386_sigtramp_frame_cache)
(i386_unwind_dummy_id, i386_get_longjmp_target): Use gdb_byte for
buf.
(i386_extract_return_value, i386_store_return_value): Use
`bfd_byte *' instead of `void *' for valbuf argument.  Remove now
redundant cast.
(i386_pseudo_register_read, i386_pseudo_register_write): Use
gdb_byte for mmx_buf.
(i386_register_to_value, i386_value_to_register): Use `gdb_byte *'
instead of `char *' for buf.
(i386_supply_gregset, i386_collect_gregset): Use `gdb_byte *'
instead of `char *' for regs.
(i386_svr4_sigcontext_addr): Use gdb_byte for buf.
* i386obsd-tdep.c (i386obsd_sigtramp_p): Use gdb_byte for
sigreturn and `gdb_byte *' for buf.
(i386obsd_aout_supply_regset): Use `const gdb_byte *' in cast.
(i386obsd_supply_uthread, i386obsd_collect_uthread): Use gdb_byte
for buf.
* i386bsd-tdep.c (i386bsd_sigcontext_addr): Use gdb_byte for buf.
This commit is contained in:
Mark Kettenis 2005-05-08 16:27:34 +00:00
parent b57b6c2e22
commit 63c0089f20
4 changed files with 73 additions and 42 deletions

View File

@ -1,5 +1,35 @@
2005-05-08 Mark Kettenis <kettenis@gnu.org> 2005-05-08 Mark Kettenis <kettenis@gnu.org>
* i386-tdep.c (i386_breakpoint_from_pc): Change return type to
`const gdb_byte *'. Use gdb_byte for break_insn.
(i386_follow_jump): Use gdb_byte for op.
(i386_analyze_struct_return): Use gdb_byte for proto1, proto2, buf
and op.
(i386_skip_probe): Use gdb_byte for buf and op.
(struct i386_insn): Use gdb_byte for insn and mask.
(i386_match_insn, i386_analyze_frame_setup)
(i386_analyze_register_saves): Use gdb_byte for op.
(i386_skip_prologue): Use gdb_byte for pic_pat and op;
(i386_unwind_pc, i386_frame_cache, i386_sigtramp_frame_cache)
(i386_unwind_dummy_id, i386_get_longjmp_target): Use gdb_byte for
buf.
(i386_extract_return_value, i386_store_return_value): Use
`bfd_byte *' instead of `void *' for valbuf argument. Remove now
redundant cast.
(i386_pseudo_register_read, i386_pseudo_register_write): Use
gdb_byte for mmx_buf.
(i386_register_to_value, i386_value_to_register): Use `gdb_byte *'
instead of `char *' for buf.
(i386_supply_gregset, i386_collect_gregset): Use `gdb_byte *'
instead of `char *' for regs.
(i386_svr4_sigcontext_addr): Use gdb_byte for buf.
* i386obsd-tdep.c (i386obsd_sigtramp_p): Use gdb_byte for
sigreturn and `gdb_byte *' for buf.
(i386obsd_aout_supply_regset): Use `const gdb_byte *' in cast.
(i386obsd_supply_uthread, i386obsd_collect_uthread): Use gdb_byte
for buf.
* i386bsd-tdep.c (i386bsd_sigcontext_addr): Use gdb_byte for buf.
* defs.h (gdb_byte): New typedef. Tweak comments. * defs.h (gdb_byte): New typedef. Tweak comments.
* target.h (target_link): Remove prototype. * target.h (target_link): Remove prototype.

View File

@ -263,12 +263,12 @@ static const char *disassembly_flavor = att_flavor;
and can be inserted anywhere. and can be inserted anywhere.
This function is 64-bit safe. */ This function is 64-bit safe. */
static const unsigned char * static const gdb_byte *
i386_breakpoint_from_pc (CORE_ADDR *pc, int *len) i386_breakpoint_from_pc (CORE_ADDR *pc, int *len)
{ {
static unsigned char break_insn[] = { 0xcc }; /* int 3 */ static gdb_byte break_insn[] = { 0xcc }; /* int 3 */
*len = sizeof (break_insn); *len = sizeof (break_insn);
return break_insn; return break_insn;
} }
@ -335,7 +335,7 @@ i386_alloc_frame_cache (void)
static CORE_ADDR static CORE_ADDR
i386_follow_jump (CORE_ADDR pc) i386_follow_jump (CORE_ADDR pc)
{ {
unsigned char op; gdb_byte op;
long delta = 0; long delta = 0;
int data16 = 0; int data16 = 0;
@ -397,10 +397,10 @@ i386_analyze_struct_return (CORE_ADDR pc, CORE_ADDR current_pc,
and the assembler doesn't try to optimize it, so the 'sib' form and the assembler doesn't try to optimize it, so the 'sib' form
gets generated). This sequence is used to get the address of the gets generated). This sequence is used to get the address of the
return buffer for a function that returns a structure. */ return buffer for a function that returns a structure. */
static unsigned char proto1[3] = { 0x87, 0x04, 0x24 }; static gdb_byte proto1[3] = { 0x87, 0x04, 0x24 };
static unsigned char proto2[4] = { 0x87, 0x44, 0x24, 0x00 }; static gdb_byte proto2[4] = { 0x87, 0x44, 0x24, 0x00 };
unsigned char buf[4]; gdb_byte buf[4];
unsigned char op; gdb_byte op;
if (current_pc <= pc) if (current_pc <= pc)
return pc; return pc;
@ -446,8 +446,8 @@ i386_skip_probe (CORE_ADDR pc)
pushl %ebp pushl %ebp
etc. */ etc. */
unsigned char buf[8]; gdb_byte buf[8];
unsigned char op; gdb_byte op;
op = read_memory_unsigned_integer (pc, 1); op = read_memory_unsigned_integer (pc, 1);
@ -479,8 +479,8 @@ i386_skip_probe (CORE_ADDR pc)
struct i386_insn struct i386_insn
{ {
size_t len; size_t len;
unsigned char insn[I386_MAX_INSN_LEN]; gdb_byte insn[I386_MAX_INSN_LEN];
unsigned char mask[I386_MAX_INSN_LEN]; gdb_byte mask[I386_MAX_INSN_LEN];
}; };
/* Search for the instruction at PC in the list SKIP_INSNS. Return /* Search for the instruction at PC in the list SKIP_INSNS. Return
@ -491,7 +491,7 @@ static struct i386_insn *
i386_match_insn (CORE_ADDR pc, struct i386_insn *skip_insns) i386_match_insn (CORE_ADDR pc, struct i386_insn *skip_insns)
{ {
struct i386_insn *insn; struct i386_insn *insn;
unsigned char op; gdb_byte op;
op = read_memory_unsigned_integer (pc, 1); op = read_memory_unsigned_integer (pc, 1);
@ -584,7 +584,7 @@ i386_analyze_frame_setup (CORE_ADDR pc, CORE_ADDR limit,
struct i386_frame_cache *cache) struct i386_frame_cache *cache)
{ {
struct i386_insn *insn; struct i386_insn *insn;
unsigned char op; gdb_byte op;
int skip = 0; int skip = 0;
if (limit <= pc) if (limit <= pc)
@ -708,7 +708,7 @@ i386_analyze_register_saves (CORE_ADDR pc, CORE_ADDR current_pc,
struct i386_frame_cache *cache) struct i386_frame_cache *cache)
{ {
CORE_ADDR offset = 0; CORE_ADDR offset = 0;
unsigned char op; gdb_byte op;
int i; int i;
if (cache->locals > 0) if (cache->locals > 0)
@ -771,14 +771,14 @@ i386_analyze_prologue (CORE_ADDR pc, CORE_ADDR current_pc,
static CORE_ADDR static CORE_ADDR
i386_skip_prologue (CORE_ADDR start_pc) i386_skip_prologue (CORE_ADDR start_pc)
{ {
static unsigned char pic_pat[6] = static gdb_byte pic_pat[6] =
{ {
0xe8, 0, 0, 0, 0, /* call 0x0 */ 0xe8, 0, 0, 0, 0, /* call 0x0 */
0x5b, /* popl %ebx */ 0x5b, /* popl %ebx */
}; };
struct i386_frame_cache cache; struct i386_frame_cache cache;
CORE_ADDR pc; CORE_ADDR pc;
unsigned char op; gdb_byte op;
int i; int i;
cache.locals = -1; cache.locals = -1;
@ -849,7 +849,7 @@ i386_skip_prologue (CORE_ADDR start_pc)
static CORE_ADDR static CORE_ADDR
i386_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame) i386_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
{ {
char buf[8]; gdb_byte buf[8];
frame_unwind_register (next_frame, PC_REGNUM, buf); frame_unwind_register (next_frame, PC_REGNUM, buf);
return extract_typed_address (buf, builtin_type_void_func_ptr); return extract_typed_address (buf, builtin_type_void_func_ptr);
@ -862,7 +862,7 @@ static struct i386_frame_cache *
i386_frame_cache (struct frame_info *next_frame, void **this_cache) i386_frame_cache (struct frame_info *next_frame, void **this_cache)
{ {
struct i386_frame_cache *cache; struct i386_frame_cache *cache;
char buf[4]; gdb_byte buf[4];
int i; int i;
if (*this_cache) if (*this_cache)
@ -1052,7 +1052,7 @@ i386_sigtramp_frame_cache (struct frame_info *next_frame, void **this_cache)
struct i386_frame_cache *cache; struct i386_frame_cache *cache;
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
CORE_ADDR addr; CORE_ADDR addr;
char buf[4]; gdb_byte buf[4];
if (*this_cache) if (*this_cache)
return *this_cache; return *this_cache;
@ -1163,7 +1163,7 @@ static const struct frame_base i386_frame_base =
static struct frame_id static struct frame_id
i386_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *next_frame) i386_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *next_frame)
{ {
char buf[4]; gdb_byte buf[4];
CORE_ADDR fp; CORE_ADDR fp;
frame_unwind_register (next_frame, I386_EBP_REGNUM, buf); frame_unwind_register (next_frame, I386_EBP_REGNUM, buf);
@ -1185,7 +1185,7 @@ i386_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *next_frame)
static int static int
i386_get_longjmp_target (CORE_ADDR *pc) i386_get_longjmp_target (CORE_ADDR *pc)
{ {
char buf[8]; gdb_byte buf[8];
CORE_ADDR sp, jb_addr; CORE_ADDR sp, jb_addr;
int jb_pc_offset = gdbarch_tdep (current_gdbarch)->jb_pc_offset; int jb_pc_offset = gdbarch_tdep (current_gdbarch)->jb_pc_offset;
int len = TYPE_LENGTH (builtin_type_void_func_ptr); int len = TYPE_LENGTH (builtin_type_void_func_ptr);
@ -1217,7 +1217,7 @@ i386_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
struct value **args, CORE_ADDR sp, int struct_return, struct value **args, CORE_ADDR sp, int struct_return,
CORE_ADDR struct_addr) CORE_ADDR struct_addr)
{ {
char buf[4]; gdb_byte buf[4];
int i; int i;
/* Push arguments in reverse order. */ /* Push arguments in reverse order. */
@ -1279,11 +1279,11 @@ i386_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
static void static void
i386_extract_return_value (struct gdbarch *gdbarch, struct type *type, i386_extract_return_value (struct gdbarch *gdbarch, struct type *type,
struct regcache *regcache, void *valbuf) struct regcache *regcache, gdb_byte *valbuf)
{ {
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
int len = TYPE_LENGTH (type); int len = TYPE_LENGTH (type);
char buf[I386_MAX_REGISTER_SIZE]; gdb_byte buf[I386_MAX_REGISTER_SIZE];
if (TYPE_CODE (type) == TYPE_CODE_FLT) if (TYPE_CODE (type) == TYPE_CODE_FLT)
{ {
@ -1316,7 +1316,7 @@ i386_extract_return_value (struct gdbarch *gdbarch, struct type *type,
regcache_raw_read (regcache, LOW_RETURN_REGNUM, buf); regcache_raw_read (regcache, LOW_RETURN_REGNUM, buf);
memcpy (valbuf, buf, low_size); memcpy (valbuf, buf, low_size);
regcache_raw_read (regcache, HIGH_RETURN_REGNUM, buf); regcache_raw_read (regcache, HIGH_RETURN_REGNUM, buf);
memcpy ((char *) valbuf + low_size, buf, len - low_size); memcpy (valbuf + low_size, buf, len - low_size);
} }
else else
internal_error (__FILE__, __LINE__, internal_error (__FILE__, __LINE__,
@ -1329,7 +1329,7 @@ i386_extract_return_value (struct gdbarch *gdbarch, struct type *type,
static void static void
i386_store_return_value (struct gdbarch *gdbarch, struct type *type, i386_store_return_value (struct gdbarch *gdbarch, struct type *type,
struct regcache *regcache, const void *valbuf) struct regcache *regcache, const gdb_byte *valbuf)
{ {
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
int len = TYPE_LENGTH (type); int len = TYPE_LENGTH (type);
@ -1341,7 +1341,7 @@ i386_store_return_value (struct gdbarch *gdbarch, struct type *type,
if (TYPE_CODE (type) == TYPE_CODE_FLT) if (TYPE_CODE (type) == TYPE_CODE_FLT)
{ {
ULONGEST fstat; ULONGEST fstat;
char buf[I386_MAX_REGISTER_SIZE]; gdb_byte buf[I386_MAX_REGISTER_SIZE];
if (tdep->st0_regnum < 0) if (tdep->st0_regnum < 0)
{ {
@ -1384,7 +1384,7 @@ i386_store_return_value (struct gdbarch *gdbarch, struct type *type,
{ {
regcache_raw_write (regcache, LOW_RETURN_REGNUM, valbuf); regcache_raw_write (regcache, LOW_RETURN_REGNUM, valbuf);
regcache_raw_write_part (regcache, HIGH_RETURN_REGNUM, 0, regcache_raw_write_part (regcache, HIGH_RETURN_REGNUM, 0,
len - low_size, (char *) valbuf + low_size); len - low_size, valbuf + low_size);
} }
else else
internal_error (__FILE__, __LINE__, internal_error (__FILE__, __LINE__,
@ -1607,7 +1607,7 @@ i386_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache,
{ {
if (i386_mmx_regnum_p (gdbarch, regnum)) if (i386_mmx_regnum_p (gdbarch, regnum))
{ {
char mmx_buf[MAX_REGISTER_SIZE]; gdb_byte mmx_buf[MAX_REGISTER_SIZE];
int fpnum = i386_mmx_regnum_to_fp_regnum (regcache, regnum); int fpnum = i386_mmx_regnum_to_fp_regnum (regcache, regnum);
/* Extract (always little endian). */ /* Extract (always little endian). */
@ -1624,7 +1624,7 @@ i386_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
{ {
if (i386_mmx_regnum_p (gdbarch, regnum)) if (i386_mmx_regnum_p (gdbarch, regnum))
{ {
char mmx_buf[MAX_REGISTER_SIZE]; gdb_byte mmx_buf[MAX_REGISTER_SIZE];
int fpnum = i386_mmx_regnum_to_fp_regnum (regcache, regnum); int fpnum = i386_mmx_regnum_to_fp_regnum (regcache, regnum);
/* Read ... */ /* Read ... */
@ -1706,7 +1706,7 @@ i386_register_to_value (struct frame_info *frame, int regnum,
struct type *type, void *to) struct type *type, void *to)
{ {
int len = TYPE_LENGTH (type); int len = TYPE_LENGTH (type);
char *buf = to; gdb_byte *buf = to;
/* FIXME: kettenis/20030609: What should we do if REGNUM isn't /* FIXME: kettenis/20030609: What should we do if REGNUM isn't
available in FRAME (i.e. if it wasn't saved)? */ available in FRAME (i.e. if it wasn't saved)? */
@ -1741,7 +1741,7 @@ i386_value_to_register (struct frame_info *frame, int regnum,
struct type *type, const void *from) struct type *type, const void *from)
{ {
int len = TYPE_LENGTH (type); int len = TYPE_LENGTH (type);
const char *buf = from; const gdb_byte *buf = from;
if (i386_fp_regnum_p (regnum)) if (i386_fp_regnum_p (regnum))
{ {
@ -1774,7 +1774,7 @@ i386_supply_gregset (const struct regset *regset, struct regcache *regcache,
int regnum, const void *gregs, size_t len) int regnum, const void *gregs, size_t len)
{ {
const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
const char *regs = gregs; const bfd_byte *regs = gregs;
int i; int i;
gdb_assert (len == tdep->sizeof_gregset); gdb_assert (len == tdep->sizeof_gregset);
@ -1798,7 +1798,7 @@ i386_collect_gregset (const struct regset *regset,
int regnum, void *gregs, size_t len) int regnum, void *gregs, size_t len)
{ {
const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
char *regs = gregs; bfd_byte *regs = gregs;
int i; int i;
gdb_assert (len == tdep->sizeof_gregset); gdb_assert (len == tdep->sizeof_gregset);
@ -1996,7 +1996,7 @@ i386_svr4_sigtramp_p (struct frame_info *next_frame)
static CORE_ADDR static CORE_ADDR
i386_svr4_sigcontext_addr (struct frame_info *next_frame) i386_svr4_sigcontext_addr (struct frame_info *next_frame)
{ {
char buf[4]; gdb_byte buf[4];
CORE_ADDR sp; CORE_ADDR sp;
frame_unwind_register (next_frame, I386_ESP_REGNUM, buf); frame_unwind_register (next_frame, I386_ESP_REGNUM, buf);

View File

@ -38,7 +38,7 @@
static CORE_ADDR static CORE_ADDR
i386bsd_sigcontext_addr (struct frame_info *next_frame) i386bsd_sigcontext_addr (struct frame_info *next_frame)
{ {
char buf[4]; gdb_byte buf[4];
CORE_ADDR sp; CORE_ADDR sp;
frame_unwind_register (next_frame, I386_ESP_REGNUM, buf); frame_unwind_register (next_frame, I386_ESP_REGNUM, buf);

View File

@ -60,14 +60,15 @@ i386obsd_sigtramp_p (struct frame_info *next_frame)
{ {
CORE_ADDR pc = frame_pc_unwind (next_frame); CORE_ADDR pc = frame_pc_unwind (next_frame);
CORE_ADDR start_pc = (pc & ~(i386obsd_page_size - 1)); CORE_ADDR start_pc = (pc & ~(i386obsd_page_size - 1));
const char sigreturn[] = const gdb_byte sigreturn[] =
{ {
0xb8, 0xb8,
0x67, 0x00, 0x00, 0x00, /* movl $SYS_sigreturn, %eax */ 0x67, 0x00, 0x00, 0x00, /* movl $SYS_sigreturn, %eax */
0xcd, 0x80 /* int $0x80 */ 0xcd, 0x80 /* int $0x80 */
}; };
size_t buflen = sizeof sigreturn; size_t buflen = sizeof sigreturn;
char *name, *buf; gdb_byte *buf;
char *name;
/* If the function has a valid symbol name, it isn't a /* If the function has a valid symbol name, it isn't a
trampoline. */ trampoline. */
@ -218,7 +219,7 @@ i386obsd_supply_uthread (struct regcache *regcache,
{ {
CORE_ADDR sp_addr = addr + I386OBSD_UTHREAD_ESP_OFFSET; CORE_ADDR sp_addr = addr + I386OBSD_UTHREAD_ESP_OFFSET;
CORE_ADDR sp = 0; CORE_ADDR sp = 0;
char buf[4]; gdb_byte buf[4];
int i; int i;
gdb_assert (regnum >= -1); gdb_assert (regnum >= -1);
@ -261,7 +262,7 @@ i386obsd_collect_uthread (const struct regcache *regcache,
{ {
CORE_ADDR sp_addr = addr + I386OBSD_UTHREAD_ESP_OFFSET; CORE_ADDR sp_addr = addr + I386OBSD_UTHREAD_ESP_OFFSET;
CORE_ADDR sp = 0; CORE_ADDR sp = 0;
char buf[4]; gdb_byte buf[4];
int i; int i;
gdb_assert (regnum >= -1); gdb_assert (regnum >= -1);