Makefile.in: Move ravenscar-thread.c from SFILES to ALLDEPFILES.
[deliverable/binutils-gdb.git] / gdb / dwarf2-frame.h
index 22a097fa302204bc1225a5b8049e5db2c7ec60ca..33f7bf7942e21438ff42f480b51fbb7fc21bc34f 100644 (file)
@@ -1,6 +1,6 @@
 /* Frame unwinder for frames with DWARF Call Frame Information.
 
-   Copyright (C) 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2003-2005, 2007-2012 Free Software Foundation, Inc.
 
    Contributed by Mark Kettenis.
 
@@ -25,6 +25,9 @@
 struct gdbarch;
 struct objfile;
 struct frame_info;
+struct dwarf2_per_cu_data;
+struct agent_expr;
+struct axs_value;
 
 /* Register rule.  */
 
@@ -55,6 +58,7 @@ enum dwarf2_frame_reg_rule
 
   /* These aren't defined by the DWARF2 CFI specification, but are
      used internally by GDB.  */
+  DWARF2_FRAME_REG_FN,         /* Call a registered function.  */
   DWARF2_FRAME_REG_RA,         /* Return Address.  */
   DWARF2_FRAME_REG_RA_OFFSET,  /* Return Address with offset.  */
   DWARF2_FRAME_REG_CFA,                /* Call Frame Address.  */
@@ -70,7 +74,9 @@ struct dwarf2_frame_state_reg
   union {
     LONGEST offset;
     ULONGEST reg;
-    unsigned char *exp;
+    const gdb_byte *exp;
+    struct value *(*fn) (struct frame_info *this_frame, void **this_cache,
+                        int regnum);
   } loc;
   ULONGEST exp_len;
   enum dwarf2_frame_reg_rule how;
@@ -100,20 +106,29 @@ extern void
                                  int (*adjust_regnum) (struct gdbarch *,
                                                        int, int));
 
-/* Return the frame unwind methods for the function that contains PC,
-   or NULL if it can't be handled by DWARF CFI frame unwinder.  */
+/* Append the DWARF-2 frame unwinders to GDBARCH's list.  */
 
-extern const struct frame_unwind *
-  dwarf2_frame_sniffer (struct frame_info *next_frame);
+void dwarf2_append_unwinders (struct gdbarch *gdbarch);
 
 /* Return the frame base methods for the function that contains PC, or
    NULL if it can't be handled by the DWARF CFI frame unwinder.  */
 
 extern const struct frame_base *
-  dwarf2_frame_base_sniffer (struct frame_info *next_frame);
+  dwarf2_frame_base_sniffer (struct frame_info *this_frame);
 
-/* Register the DWARF CFI for OBJFILE.  */
+/* Compute the DWARF CFA for a frame.  */
 
-void dwarf2_frame_build_info (struct objfile *objfile);
+CORE_ADDR dwarf2_frame_cfa (struct frame_info *this_frame);
+
+/* Update the agent expression EXPR with code to compute the CFA for a
+   frame at PC.  GDBARCH is the architecture of the function at PC.
+   This function may call dwarf2_compile_expr_to_ax; DATA is passed
+   through to that function if needed.  */
+
+extern void dwarf2_compile_cfa_to_ax (struct agent_expr *expr,
+                                     struct axs_value *loc,
+                                     struct gdbarch *gdbarch,
+                                     CORE_ADDR pc,
+                                     struct dwarf2_per_cu_data *data);
 
 #endif /* dwarf2-frame.h */
This page took 0.039024 seconds and 4 git commands to generate.