#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
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;
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