summaryrefslogtreecommitdiff
path: root/gdb/trad-frame.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/trad-frame.h')
-rw-r--r--gdb/trad-frame.h63
1 files changed, 39 insertions, 24 deletions
diff --git a/gdb/trad-frame.h b/gdb/trad-frame.h
index ae2722eefb7..6af0df301ac 100644
--- a/gdb/trad-frame.h
+++ b/gdb/trad-frame.h
@@ -63,51 +63,66 @@ struct trad_frame_cache
{
struct frame_id this_id;
CORE_ADDR this_base;
- struct trad_frame_saved_reg *prev_regs;
+ struct trad_frame_saved_reg *saved_regs;
};
+struct trad_frame_cache *trad_frame_cache_zalloc (struct frame_info *next_frame);
+
+
/* Encode REGNUM's value in the trad-frame. */
-void trad_frame_set_value (struct trad_frame_cache *this_cache,
- int regnum, LONGEST val);
-void trad_frame_set_addr (struct trad_frame_cache *this_cache,
- int regnum, CORE_ADDR addr);
-void trad_frame_set_realreg (struct trad_frame_cache *this_cache,
- int regnum, int realreg);
-void trad_frame_set_unknown (struct trad_frame_cache *this_cache,
- int regnum);
+void trad_frame_set_reg_value (struct trad_frame_cache *this_cache,
+ int regnum, LONGEST val);
+void trad_frame_set_reg_addr (struct trad_frame_cache *this_cache,
+ int regnum, CORE_ADDR addr);
+void trad_frame_set_reg_reg (struct trad_frame_cache *this_cache,
+ int regnum, int realreg);
+void trad_frame_set_reg_unknown (struct trad_frame_cache *this_cache,
+ int regnum);
+void trad_frame_set_this_id (struct trad_frame_cache *this_cache,
+ struct frame_id *this_id);
+void trad_frame_set_this_base (struct trad_frame_cache *this_cache,
+ CORE_ADDR base);
/* Set the offset of a register, and then update all offsets. Useful
when the offset of a register is known before its absolute
address. */
-void trad_frame_set_offset (struct trad_frame_cache *this_cache,
- int regnum, LONGEST addr);
-void trad_frame_add_addr (struct trad_frame_cache *this_cache,
- int regnum, CORE_ADDR addr);
+void trad_frame_set_reg_offset (struct trad_frame_cache *this_cache,
+ int regnum, LONGEST addr);
+void trad_frame_add_reg_addr (struct trad_frame_cache *this_cache,
+ int regnum, CORE_ADDR addr);
/* Convenience functions, return non-zero if the register has been
encoded as specified. */
-int trad_frame_value_p (struct trad_frame_cache *this_cache,
- int regnum);
-int trad_frame_addr_p (struct trad_frame_cache *this_cache,
- int regnum);
-int trad_frame_realreg_p (struct trad_frame_cache *this_cache,
+int trad_frame_reg_value_p (struct trad_frame_cache *this_cache,
+ int regnum);
+int trad_frame_reg_addr_p (struct trad_frame_cache *this_cache,
+ int regnum);
+int trad_frame_reg_reg_p (struct trad_frame_cache *this_cache,
int regnum);
-typedef void (trad_frame_init_ftype) (const struct trad_frame *self,
- struct frame_info *next_frame,
- struct trad_frame_cache *this_cache);
-typedef int (trad_frame_sniffer_ftype) (const struct trad_frame *self,
- struct frame_info *next_frame);
+typedef struct trad_frame_cache *(trad_frame_sniffer_ftype) (const struct trad_frame *self,
+ struct frame_info *next_frame);
struct trad_frame
{
enum frame_type type;
trad_frame_sniffer_ftype *sniffer;
- trad_frame_init_ftype *init;
const struct trad_frame_data *trad_data;
};
void trad_frame_append (struct gdbarch *gdbarch,
const struct trad_frame *trad_frame);
+void trad_frame_this_id (struct trad_frame_cache *trad_cache,
+ struct frame_info *next_frame,
+ struct frame_id *this_id);
+
+void trad_frame_prev_register (struct trad_frame_cache *trad_cache,
+ struct frame_info *next_frame,
+ int prev_regnum,
+ int *optimizedp,
+ enum lval_type * lvalp,
+ CORE_ADDR *addrp,
+ int *realnump, void *valuep);
+
#endif