From 78267919d631833aaba8deb8c2febf119f653227 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Thu, 2 Jul 2009 12:11:19 +0000 Subject: * gdbtypes.h (struct builtin_type): Add internal_fn member. * gdbtypes.c (gdbtypes_post_init): Initialize it. * value.c (internal_fn_type): Remove. (_initialize_values): Do not initialize it. * value.c (struct internalvar): Add enum internalvar_kind type and kind member. Restructure union internalvar_data type. Remove type, canonical, and make_value members. (init_if_undefined_command): Update for data structure changes. (create_internalvar): Likewise. (create_internalvar_type_lazy): Likewise. (get_internalvar_integer): Likewise. (get_internalvar_function): Likewise. (set_internalvar_component): Likewise. (set_internalvar): Likewise. (set_internalvar_integer): Likewise. (set_internalvar_function): Likewise. (clear_internalvar): Likewise. (add_internal_function): Likewise. (preserve_one_internalvar): New function. (preserve_values): Call it. * value.h (value_of_internalvar): Add GDBARCH parameter. (internalvar_make_value): Likewise. * value.c (value_of_internalvar): Add GDBARCH parameter. Pass it to make_value callback. Use it to generate per-architecture result value types for internal variables with no pre-defined type. Update for data structure changes. (show_convenience): Pass architecture to value_of_internalvar. * eval.c (evaluate_subexp_standard): Likewise. * infrun.c (siginfo_make_value): Add GDBARCH parameter. Use it instead of current frame architecture. Return per-architecture type. * value.h (set_internalvar_string): Add prototype. * value.c (set_internalvar_string): New function. * tracepoint.c (set_traceframe_context): Use it. --- gdb/value.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'gdb/value.h') diff --git a/gdb/value.h b/gdb/value.h index e3a16c5..e3574c1 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -522,7 +522,8 @@ extern void binop_promote (const struct language_defn *language, extern struct value *access_value_history (int num); -extern struct value *value_of_internalvar (struct internalvar *var); +extern struct value *value_of_internalvar (struct gdbarch *gdbarch, + struct internalvar *var); extern int get_internalvar_integer (struct internalvar *var, LONGEST *l); @@ -530,6 +531,9 @@ extern void set_internalvar (struct internalvar *var, struct value *val); extern void set_internalvar_integer (struct internalvar *var, LONGEST l); +extern void set_internalvar_string (struct internalvar *var, + const char *string); + extern void clear_internalvar (struct internalvar *var); extern void set_internalvar_component (struct internalvar *var, @@ -541,8 +545,8 @@ extern struct internalvar *lookup_only_internalvar (const char *name); extern struct internalvar *create_internalvar (const char *name); -typedef struct value * (*internalvar_make_value) (struct internalvar *); - +typedef struct value * (*internalvar_make_value) (struct gdbarch *, + struct internalvar *); extern struct internalvar * create_internalvar_type_lazy (char *name, internalvar_make_value fun); -- cgit v1.1