From 63c0089f205d68a0aea7074ee29de8c10fc2c27c Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Sun, 8 May 2005 16:27:34 +0000 Subject: [PATCH] * 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. --- gdb/ChangeLog | 30 ++++++++++++++++++ gdb/i386-tdep.c | 74 ++++++++++++++++++++++----------------------- gdb/i386bsd-tdep.c | 2 +- gdb/i386obsd-tdep.c | 9 +++--- 4 files changed, 73 insertions(+), 42 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8041eddba34..7d0607fc9f0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,35 @@ 2005-05-08 Mark Kettenis + * 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. * target.h (target_link): Remove prototype. diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 36b06301bd9..f273248fa47 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -263,12 +263,12 @@ static const char *disassembly_flavor = att_flavor; and can be inserted anywhere. This function is 64-bit safe. */ - -static const unsigned char * + +static const gdb_byte * 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); return break_insn; } @@ -335,7 +335,7 @@ i386_alloc_frame_cache (void) static CORE_ADDR i386_follow_jump (CORE_ADDR pc) { - unsigned char op; + gdb_byte op; long delta = 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 gets generated). This sequence is used to get the address of the return buffer for a function that returns a structure. */ - static unsigned char proto1[3] = { 0x87, 0x04, 0x24 }; - static unsigned char proto2[4] = { 0x87, 0x44, 0x24, 0x00 }; - unsigned char buf[4]; - unsigned char op; + static gdb_byte proto1[3] = { 0x87, 0x04, 0x24 }; + static gdb_byte proto2[4] = { 0x87, 0x44, 0x24, 0x00 }; + gdb_byte buf[4]; + gdb_byte op; if (current_pc <= pc) return pc; @@ -446,8 +446,8 @@ i386_skip_probe (CORE_ADDR pc) pushl %ebp etc. */ - unsigned char buf[8]; - unsigned char op; + gdb_byte buf[8]; + gdb_byte op; op = read_memory_unsigned_integer (pc, 1); @@ -479,8 +479,8 @@ i386_skip_probe (CORE_ADDR pc) struct i386_insn { size_t len; - unsigned char insn[I386_MAX_INSN_LEN]; - unsigned char mask[I386_MAX_INSN_LEN]; + gdb_byte insn[I386_MAX_INSN_LEN]; + gdb_byte mask[I386_MAX_INSN_LEN]; }; /* 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) { struct i386_insn *insn; - unsigned char op; + gdb_byte op; 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_insn *insn; - unsigned char op; + gdb_byte op; int skip = 0; if (limit <= pc) @@ -708,7 +708,7 @@ i386_analyze_register_saves (CORE_ADDR pc, CORE_ADDR current_pc, struct i386_frame_cache *cache) { CORE_ADDR offset = 0; - unsigned char op; + gdb_byte op; int i; if (cache->locals > 0) @@ -771,14 +771,14 @@ i386_analyze_prologue (CORE_ADDR pc, CORE_ADDR current_pc, static CORE_ADDR 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 */ 0x5b, /* popl %ebx */ }; struct i386_frame_cache cache; CORE_ADDR pc; - unsigned char op; + gdb_byte op; int i; cache.locals = -1; @@ -849,7 +849,7 @@ i386_skip_prologue (CORE_ADDR start_pc) static CORE_ADDR 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); 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) { struct i386_frame_cache *cache; - char buf[4]; + gdb_byte buf[4]; int i; 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 gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); CORE_ADDR addr; - char buf[4]; + gdb_byte buf[4]; if (*this_cache) return *this_cache; @@ -1163,7 +1163,7 @@ static const struct frame_base i386_frame_base = static struct frame_id i386_unwind_dummy_id (struct gdbarch *gdbarch, struct frame_info *next_frame) { - char buf[4]; + gdb_byte buf[4]; CORE_ADDR fp; 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 i386_get_longjmp_target (CORE_ADDR *pc) { - char buf[8]; + gdb_byte buf[8]; CORE_ADDR sp, jb_addr; int jb_pc_offset = gdbarch_tdep (current_gdbarch)->jb_pc_offset; 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, CORE_ADDR struct_addr) { - char buf[4]; + gdb_byte buf[4]; int i; /* Push arguments in reverse order. */ @@ -1279,11 +1279,11 @@ i386_push_dummy_call (struct gdbarch *gdbarch, struct value *function, static void 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); 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) { @@ -1316,7 +1316,7 @@ i386_extract_return_value (struct gdbarch *gdbarch, struct type *type, regcache_raw_read (regcache, LOW_RETURN_REGNUM, buf); memcpy (valbuf, buf, low_size); 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 internal_error (__FILE__, __LINE__, @@ -1329,7 +1329,7 @@ i386_extract_return_value (struct gdbarch *gdbarch, struct type *type, static void 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); 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) { ULONGEST fstat; - char buf[I386_MAX_REGISTER_SIZE]; + gdb_byte buf[I386_MAX_REGISTER_SIZE]; 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_part (regcache, HIGH_RETURN_REGNUM, 0, - len - low_size, (char *) valbuf + low_size); + len - low_size, valbuf + low_size); } else 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)) { - char mmx_buf[MAX_REGISTER_SIZE]; + gdb_byte mmx_buf[MAX_REGISTER_SIZE]; int fpnum = i386_mmx_regnum_to_fp_regnum (regcache, regnum); /* 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)) { - char mmx_buf[MAX_REGISTER_SIZE]; + gdb_byte mmx_buf[MAX_REGISTER_SIZE]; int fpnum = i386_mmx_regnum_to_fp_regnum (regcache, regnum); /* Read ... */ @@ -1706,7 +1706,7 @@ i386_register_to_value (struct frame_info *frame, int regnum, struct type *type, void *to) { int len = TYPE_LENGTH (type); - char *buf = to; + gdb_byte *buf = to; /* FIXME: kettenis/20030609: What should we do if REGNUM isn't 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) { int len = TYPE_LENGTH (type); - const char *buf = from; + const gdb_byte *buf = from; 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) { const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); - const char *regs = gregs; + const bfd_byte *regs = gregs; int i; gdb_assert (len == tdep->sizeof_gregset); @@ -1798,7 +1798,7 @@ i386_collect_gregset (const struct regset *regset, int regnum, void *gregs, size_t len) { const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); - char *regs = gregs; + bfd_byte *regs = gregs; int i; gdb_assert (len == tdep->sizeof_gregset); @@ -1996,7 +1996,7 @@ i386_svr4_sigtramp_p (struct frame_info *next_frame) static CORE_ADDR i386_svr4_sigcontext_addr (struct frame_info *next_frame) { - char buf[4]; + gdb_byte buf[4]; CORE_ADDR sp; frame_unwind_register (next_frame, I386_ESP_REGNUM, buf); diff --git a/gdb/i386bsd-tdep.c b/gdb/i386bsd-tdep.c index c82e3104328..bddf1ca529e 100644 --- a/gdb/i386bsd-tdep.c +++ b/gdb/i386bsd-tdep.c @@ -38,7 +38,7 @@ static CORE_ADDR i386bsd_sigcontext_addr (struct frame_info *next_frame) { - char buf[4]; + gdb_byte buf[4]; CORE_ADDR sp; frame_unwind_register (next_frame, I386_ESP_REGNUM, buf); diff --git a/gdb/i386obsd-tdep.c b/gdb/i386obsd-tdep.c index 5eb0444a8b9..7a381bc8207 100644 --- a/gdb/i386obsd-tdep.c +++ b/gdb/i386obsd-tdep.c @@ -60,14 +60,15 @@ i386obsd_sigtramp_p (struct frame_info *next_frame) { CORE_ADDR pc = frame_pc_unwind (next_frame); CORE_ADDR start_pc = (pc & ~(i386obsd_page_size - 1)); - const char sigreturn[] = + const gdb_byte sigreturn[] = { 0xb8, 0x67, 0x00, 0x00, 0x00, /* movl $SYS_sigreturn, %eax */ 0xcd, 0x80 /* int $0x80 */ }; 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 trampoline. */ @@ -218,7 +219,7 @@ i386obsd_supply_uthread (struct regcache *regcache, { CORE_ADDR sp_addr = addr + I386OBSD_UTHREAD_ESP_OFFSET; CORE_ADDR sp = 0; - char buf[4]; + gdb_byte buf[4]; int i; 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 = 0; - char buf[4]; + gdb_byte buf[4]; int i; gdb_assert (regnum >= -1); -- 2.30.2