+
+#include "symtab.h"
+#include "gdbtypes.h"
+#include "expression.h"
+
+#ifdef __STDC__
+struct frame_info;
+struct fn_field;
+#endif
+
+extern void
+print_address_demangle PARAMS ((CORE_ADDR, GDB_FILE *, int));
+
+extern LONGEST value_as_long PARAMS ((value_ptr val));
+
+extern DOUBLEST value_as_double PARAMS ((value_ptr val));
+
+extern CORE_ADDR value_as_pointer PARAMS ((value_ptr val));
+
+extern LONGEST unpack_long PARAMS ((struct type * type, char *valaddr));
+
+extern DOUBLEST unpack_double PARAMS ((struct type * type, char *valaddr,
+ int *invp));
+
+extern CORE_ADDR unpack_pointer PARAMS ((struct type * type, char *valaddr));
+
+extern LONGEST unpack_field_as_long PARAMS ((struct type * type, char *valaddr,
+ int fieldno));
+
+extern value_ptr value_from_longest PARAMS ((struct type * type, LONGEST num));
+
+extern value_ptr value_from_double PARAMS ((struct type * type, DOUBLEST num));
+
+extern value_ptr value_from_string PARAMS ((char *string));
+
+extern value_ptr value_at PARAMS ((struct type * type, CORE_ADDR addr, asection * sect));
+
+extern value_ptr value_at_lazy PARAMS ((struct type * type, CORE_ADDR addr, asection * sect));
+
+extern value_ptr value_from_register PARAMS ((struct type * type, int regnum,
+ struct frame_info * frame));
+
+extern value_ptr value_of_variable PARAMS ((struct symbol * var,
+ struct block * b));
+
+extern value_ptr value_of_register PARAMS ((int regnum));
+
+extern int symbol_read_needs_frame PARAMS ((struct symbol *));
+
+extern value_ptr read_var_value PARAMS ((struct symbol * var,
+ struct frame_info * frame));
+
+extern value_ptr locate_var_value PARAMS ((struct symbol * var,
+ struct frame_info * frame));
+
+extern value_ptr allocate_value PARAMS ((struct type * type));
+
+extern value_ptr allocate_repeat_value PARAMS ((struct type * type, int count));
+
+extern value_ptr value_mark PARAMS ((void));
+
+extern void value_free_to_mark PARAMS ((value_ptr mark));
+
+extern value_ptr value_string PARAMS ((char *ptr, int len));
+extern value_ptr value_bitstring PARAMS ((char *ptr, int len));
+
+extern value_ptr value_array PARAMS ((int lowbound, int highbound,
+ value_ptr * elemvec));
+
+extern value_ptr value_concat PARAMS ((value_ptr arg1, value_ptr arg2));
+
+extern value_ptr value_binop PARAMS ((value_ptr arg1, value_ptr arg2,
+ enum exp_opcode op));
+
+extern value_ptr value_add PARAMS ((value_ptr arg1, value_ptr arg2));
+
+extern value_ptr value_sub PARAMS ((value_ptr arg1, value_ptr arg2));
+
+extern value_ptr value_coerce_array PARAMS ((value_ptr arg1));
+
+extern value_ptr value_coerce_function PARAMS ((value_ptr arg1));
+
+extern value_ptr value_ind PARAMS ((value_ptr arg1));
+
+extern value_ptr value_addr PARAMS ((value_ptr arg1));
+
+extern value_ptr value_assign PARAMS ((value_ptr toval, value_ptr fromval));
+
+extern value_ptr value_neg PARAMS ((value_ptr arg1));
+
+extern value_ptr value_complement PARAMS ((value_ptr arg1));
+
+extern value_ptr value_struct_elt PARAMS ((value_ptr * argp, value_ptr * args,
+ char *name,
+ int *static_memfuncp, char *err));
+
+extern value_ptr value_struct_elt_for_reference PARAMS ((struct type * domain,
+ int offset,
+ struct type * curtype,
+ char *name,
+ struct type * intype));
+
+extern value_ptr value_static_field PARAMS ((struct type * type, int fieldno));
+
+extern struct fn_field *value_find_oload_method_list PARAMS ((value_ptr *, char *, int, int *, int *, struct type **, int *));
+
+extern int find_overload_match PARAMS ((struct type ** arg_types, int nargs, char *name, int method, int lax, value_ptr obj, struct symbol * fsym, value_ptr * valp, struct symbol ** symp, int *staticp));
+
+extern value_ptr value_field PARAMS ((value_ptr arg1, int fieldno));
+
+extern value_ptr value_primitive_field PARAMS ((value_ptr arg1, int offset,
+ int fieldno,
+ struct type * arg_type));
+
+extern struct type *
+ value_rtti_type PARAMS ((value_ptr, int *, int *, int *));
+
+extern struct type *
+ value_rtti_target_type PARAMS ((value_ptr, int *, int *, int *));
+
+extern value_ptr
+ value_full_object PARAMS ((value_ptr, struct type *, int, int, int));
+
+extern value_ptr value_cast PARAMS ((struct type * type, value_ptr arg2));
+
+extern value_ptr value_zero PARAMS ((struct type * type, enum lval_type lv));
+
+extern value_ptr value_repeat PARAMS ((value_ptr arg1, int count));
+
+extern value_ptr value_subscript PARAMS ((value_ptr array, value_ptr idx));
+
+extern value_ptr value_from_vtable_info PARAMS ((value_ptr arg,
+ struct type * type));
+
+extern value_ptr value_being_returned PARAMS ((struct type * valtype,
+ char *retbuf,
+ int struct_return));
+
+extern value_ptr value_in PARAMS ((value_ptr element, value_ptr set));
+
+extern int value_bit_index PARAMS ((struct type * type, char *addr, int index));
+
+extern int using_struct_return PARAMS ((value_ptr function, CORE_ADDR funcaddr,
+ struct type * value_type, int gcc_p));
+
+extern void set_return_value PARAMS ((value_ptr val));
+
+extern value_ptr evaluate_expression PARAMS ((struct expression * exp));
+
+extern value_ptr evaluate_type PARAMS ((struct expression * exp));
+
+extern value_ptr evaluate_subexp_with_coercion PARAMS ((struct expression *,
+ int *, enum noside));
+
+extern value_ptr parse_and_eval PARAMS ((char *exp));
+
+extern value_ptr parse_to_comma_and_eval PARAMS ((char **expp));
+
+extern struct type *parse_and_eval_type PARAMS ((char *p, int length));
+
+extern CORE_ADDR parse_and_eval_address PARAMS ((char *exp));
+
+extern CORE_ADDR parse_and_eval_address_1 PARAMS ((char **expptr));
+
+extern value_ptr access_value_history PARAMS ((int num));
+
+extern value_ptr value_of_internalvar PARAMS ((struct internalvar * var));
+
+extern void set_internalvar PARAMS ((struct internalvar * var, value_ptr val));
+
+extern void set_internalvar_component PARAMS ((struct internalvar * var,
+ int offset,
+ int bitpos, int bitsize,
+ value_ptr newvalue));
+
+extern struct internalvar *lookup_internalvar PARAMS ((char *name));
+
+extern int value_equal PARAMS ((value_ptr arg1, value_ptr arg2));
+
+extern int value_less PARAMS ((value_ptr arg1, value_ptr arg2));
+
+extern int value_logical_not PARAMS ((value_ptr arg1));