2004-03-22 Andrew Cagney <cagney@redhat.com>
[deliverable/binutils-gdb.git] / gdb / cp-abi.h
index ae62478c1c773aadc78f532f64fff61b6b087ab1..0413abafc4e78c1f06e39231903efa0ad0eea2d2 100644 (file)
@@ -25,6 +25,8 @@
 #ifndef CP_ABI_H_
 #define CP_ABI_H_ 1
 
+struct fn_field;
+struct type;
 struct value;
 
 /* The functions here that attempt to determine what sort of thing a
@@ -132,7 +134,17 @@ extern struct value *value_virtual_fn_field (struct value **valuep,
 extern struct type *value_rtti_type (struct value *value,
                                      int *full, int *top, int *using_enc);
 
+/* Compute the offset of the baseclass which is
+   the INDEXth baseclass of class TYPE,
+   for value at VALADDR (in host) at ADDRESS (in target).
+   The result is the offset of the baseclass value relative
+   to (the address of)(ARG) + OFFSET.
 
+   -1 is returned on error. */
+
+extern int baseclass_offset (struct type *type, int index, char *valaddr,
+                            CORE_ADDR address);
+                  
 struct cp_abi_ops
 {
   const char *shortname;
@@ -148,14 +160,13 @@ struct cp_abi_ops
                                     int j, struct type * type, int offset);
   struct type *(*rtti_type) (struct value *v, int *full, int *top,
                             int *using_enc);
+  int (*baseclass_offset) (struct type *type, int index, char *valaddr,
+                          CORE_ADDR address);
 };
 
 
-extern struct cp_abi_ops *cp_abis;
-extern int num_cp_abis;
-extern struct cp_abi_ops current_cp_abi;
-extern int register_cp_abi (struct cp_abi_ops abi);
-extern int switch_to_cp_abi (const char *short_name);
+extern int register_cp_abi (struct cp_abi_ops *abi);
+extern void set_cp_abi_as_auto_default (const char *short_name);
 
 #endif
 
This page took 0.024929 seconds and 4 git commands to generate.