summaryrefslogtreecommitdiff
path: root/gdb/tramp-frame.h
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2004-07-20 15:11:37 +0000
committerAndrew Cagney <cagney@redhat.com>2004-07-20 15:11:37 +0000
commit2cd8546d1321946294f6c89cdfb250a7de50f99d (patch)
tree77cf2b4bed624e2cc61b1f00caa2cccb7f6b39e7 /gdb/tramp-frame.h
parente12904d27fcfac19123e57e6cb606045e7e829b9 (diff)
2004-07-20 Andrew Cagney <cagney@gnu.org>
* tramp-frame.h (struct tramp_frame): Change "insn" to a struct containing both bytes and mask. Add "frame_type". * tramp-frame.c (tramp_frame_start): Update. (tramp_frame_prepend_unwinder): Update. * mips-linux-tdep.c (mips_linux_o32_sigframe) (mips_linux_o32_rt_sigframe, mips_linux_n32_rt_sigframe) (mips_linux_n64_rt_sigframe): Update. Make "static const". * ppcnbsd-tdep.c (tramp_frame ppcnbsd_sigtramp): Update.
Diffstat (limited to 'gdb/tramp-frame.h')
-rw-r--r--gdb/tramp-frame.h26
1 files changed, 18 insertions, 8 deletions
diff --git a/gdb/tramp-frame.h b/gdb/tramp-frame.h
index 26d4178e7b..9244701e9a 100644
--- a/gdb/tramp-frame.h
+++ b/gdb/tramp-frame.h
@@ -22,6 +22,8 @@
#ifndef TRAMP_FRAME_H
#define TRAMP_FRAME_H
+#include "frame.h" /* For "enum frame_type". */
+
struct trad_frame;
struct frame_info;
struct trad_frame_cache;
@@ -45,16 +47,24 @@ struct trad_frame_cache;
struct tramp_frame
{
- /* The trampoline's entire instruction sequence. Search for this in
- the inferior at or around the frame's PC. It is assumed that the
- PC is INSN_SIZE aligned, and that each element of TRAMP contains
- one INSN_SIZE instruction. It is also assumed that TRAMP[0]
- contains the first instruction of the trampoline and hence the
- address of the instruction matching TRAMP[0] is the trampoline's
- "func" address. The instruction sequence shall be terminated by
+ /* The trampoline's type, some a signal trampolines, some are normal
+ call-frame trampolines (aka thunks). */
+ enum frame_type frame_type;
+ /* The trampoline's entire instruction sequence. It consists of a
+ bytes/mask pair. Search for this in the inferior at or around
+ the frame's PC. It is assumed that the PC is INSN_SIZE aligned,
+ and that each element of TRAMP contains one INSN_SIZE
+ instruction. It is also assumed that INSN[0] contains the first
+ instruction of the trampoline and hence the address of the
+ instruction matching INSN[0] is the trampoline's "func" address.
+ The instruction sequence is terminated by
TRAMP_SENTINEL_INSN. */
int insn_size;
- ULONGEST insn[8];
+ struct
+ {
+ ULONGEST bytes;
+ ULONGEST mask;
+ } insn[8];
/* Initialize a trad-frame cache corresponding to the tramp-frame.
FUNC is the address of the instruction TRAMP[0] in memory. */
void (*init) (const struct tramp_frame *self,