2005-05-01 Andrew Cagney <cagney@gnu.org>
[deliverable/binutils-gdb.git] / gdb / frame.h
index d9c59d1791220f53f97bf887811be680c997e75d..d49192f7f4b5f6feba6cc2096368122aba1c0002 100644 (file)
@@ -71,10 +71,6 @@ struct block;
 struct gdbarch;
 struct ui_file;
 
-/* A legacy unwinder to prop up architectures using the old style
-   saved regs array.  */
-extern const struct frame_unwind *legacy_saved_regs_unwind;
-
 /* The frame object.  */
 
 struct frame_info;
@@ -124,9 +120,9 @@ struct frame_id
   CORE_ADDR special_addr;
 
   /* Flags to indicate the above fields have valid contents.  */
-  int stack_addr_p : 1;
-  int code_addr_p : 1;
-  int special_addr_p : 1;
+  unsigned int stack_addr_p : 1;
+  unsigned int code_addr_p : 1;
+  unsigned int special_addr_p : 1;
 };
 
 /* Methods for constructing and comparing Frame IDs.
@@ -223,13 +219,15 @@ extern void flush_cached_frames (void);
 extern void reinit_frame_cache (void);
 
 /* On demand, create the selected frame and then return it.  If the
-   selected frame can not be created, this function throws an error.  */
+   selected frame can not be created, this function prints then throws
+   an error.  When MESSAGE is non-NULL, use it for the error message,
+   otherwize use a generic error message.  */
 /* FIXME: cagney/2002-11-28: At present, when there is no selected
    frame, this function always returns the current (inner most) frame.
    It should instead, when a thread has previously had its frame
    selected (but not resumed) and the frame cache invalidated, find
    and then return that thread's previously selected frame.  */
-extern struct frame_info *get_selected_frame (void);
+extern struct frame_info *get_selected_frame (const char *message);
 
 /* Select a specific frame.  NULL, apparently implies re-select the
    inner most frame.  */
@@ -375,11 +373,6 @@ extern int frame_relative_level (struct frame_info *fi);
 
 enum frame_type
 {
-  /* The frame's type hasn't yet been defined.  This is a catch-all
-     for legacy_get_prev_frame that uses really strange techniques to
-     determine the frame's type.  New code should not use this
-     value.  */
-  UNKNOWN_FRAME,
   /* A true stack frame, created by the target program during normal
      execution.  */
   NORMAL_FRAME,
@@ -429,7 +422,7 @@ extern void frame_unwind_unsigned_register (struct frame_info *frame,
                                            int regnum, ULONGEST *val);
 
 /* Get the value of the register that belongs to this FRAME.  This
-   function is a wrapper to the call sequence ``frame_unwind_register
+   function is a wrapper to the call sequence ``frame_register_unwind
    (get_next_frame (FRAME))''.  As per frame_register_unwind(), if
    VALUEP is NULL, the registers value is not fetched/computed.  */
 
@@ -527,16 +520,8 @@ extern void *frame_obstack_zalloc (unsigned long size);
 #define FRAME_OBSTACK_ZALLOC(TYPE) ((TYPE *) frame_obstack_zalloc (sizeof (TYPE)))
 #define FRAME_OBSTACK_CALLOC(NUMBER,TYPE) ((TYPE *) frame_obstack_zalloc ((NUMBER) * sizeof (TYPE)))
 
-/* If legacy_frame_chain_valid() returns zero it means that the given
-   frame is the outermost one and has no caller.
-
-   This method has been superseded by the per-architecture
-   frame_unwind_pc() (returns 0 to indicate an invalid return address)
-   and per-frame this_id() (returns a NULL frame ID to indicate an
-   invalid frame).  */
-extern int legacy_frame_chain_valid (CORE_ADDR, struct frame_info *);
-
-extern void generic_save_dummy_frame_tos (CORE_ADDR sp);
+/* Create a regcache, and copy the frame's registers into it.  */
+struct regcache *frame_save_as_regcache (struct frame_info *this_frame);
 
 extern struct block *get_frame_block (struct frame_info *,
                                       CORE_ADDR *addr_in_block);
@@ -573,8 +558,6 @@ extern struct symbol *get_frame_function (struct frame_info *);
 
 extern CORE_ADDR get_pc_function_start (CORE_ADDR);
 
-extern int legacy_frameless_look_for_prologue (struct frame_info *);
-
 extern struct frame_info *find_relative_frame (struct frame_info *, int *);
 
 extern void show_and_print_stack_frame (struct frame_info *fi, int print_level,
@@ -590,24 +573,8 @@ extern void print_frame_info (struct frame_info *, int print_level,
 
 extern struct frame_info *block_innermost_frame (struct block *);
 
-/* NOTE: cagney/2002-09-13: There is no need for this function.  */
-extern CORE_ADDR deprecated_read_register_dummy (CORE_ADDR pc,
-                                                CORE_ADDR fp, int);
-extern void generic_push_dummy_frame (void);
-extern void deprecated_pop_dummy_frame (void);
-
 extern int deprecated_pc_in_call_dummy (CORE_ADDR pc);
 
-/* NOTE: cagney/2002-06-26: Targets should no longer use this
-   function.  Instead, the contents of a dummy frame register can be
-   obtained by applying: frame_register_unwind to the dummy frame; or
-   frame_register_unwind() to the next outer frame.  */
-
-extern char *deprecated_generic_find_dummy_frame (CORE_ADDR pc, CORE_ADDR fp);
-
-
-extern void generic_save_call_dummy_addr (CORE_ADDR lo, CORE_ADDR hi);
-
 /* FIXME: cagney/2003-02-02: Should be deprecated or replaced with a
    function called get_frame_register_p().  This slightly weird (and
    older) variant of get_frame_register() returns zero (indicating the
@@ -675,22 +642,6 @@ extern struct frame_info *deprecated_safe_get_selected_frame (void);
 
 extern struct frame_info *create_new_frame (CORE_ADDR base, CORE_ADDR pc);
 
-
-/* Create/access the frame's `extra info'.  The extra info is used by
-   older code to store information such as the analyzed prologue.  The
-   zalloc() should only be called by the INIT_EXTRA_INFO method.  */
-
-extern struct frame_extra_info *frame_extra_info_zalloc (struct frame_info *fi,
-                                                        long size);
-extern struct frame_extra_info *get_frame_extra_info (struct frame_info *fi);
-
-/* Create/access the frame's `saved_regs'.  The saved regs are used by
-   older code to store the address of each register (except for
-   SP_REGNUM where the value of the register in the previous frame is
-   stored).  */
-extern CORE_ADDR *frame_saved_regs_zalloc (struct frame_info *);
-extern CORE_ADDR *deprecated_get_frame_saved_regs (struct frame_info *);
-
 /* FIXME: cagney/2002-12-06: Has the PC in the current frame changed?
    "infrun.c", Thanks to DECR_PC_AFTER_BREAK, can change the PC after
    the initial frame create.  This puts things back in sync.
@@ -701,7 +652,7 @@ extern void deprecated_update_frame_pc_hack (struct frame_info *frame,
 
 /* FIXME: cagney/2002-12-18: Has the frame's base changed?  Or to be
    more exact, was that initial guess at the frame's base as returned
-   by deprecated_read_fp() wrong?  If it was, fix it.  This shouldn't
+   by the deleted read_fp() wrong?  If it was, fix it.  This shouldn't
    be necessary since the code should be getting the frame's base
    correct from the outset.
 
@@ -709,17 +660,4 @@ extern void deprecated_update_frame_pc_hack (struct frame_info *frame,
 extern void deprecated_update_frame_base_hack (struct frame_info *frame,
                                               CORE_ADDR base);
 
-/* FIXME: cagney/2003-01-05: Allocate a frame, along with the
-   saved_regs and extra_info.  Set up cleanups for all three.  Same as
-   for deprecated_frame_xmalloc, targets are calling this when
-   creating a scratch `struct frame_info'.  The frame overhaul makes
-   this unnecessary since all frame queries are parameterized with a
-   common cache parameter and a frame.  */
-extern struct frame_info *deprecated_frame_xmalloc_with_cleanup (long sizeof_saved_regs,
-                                                                long sizeof_extra_info);
-
-/* Return non-zero if the architecture is relying on legacy frame
-   code.  */
-extern int legacy_frame_p (struct gdbarch *gdbarch);
-
 #endif /* !defined (FRAME_H)  */
This page took 0.026077 seconds and 4 git commands to generate.