Add a symbol's value to the computed frag offset, rather than overwriting it.
[deliverable/binutils-gdb.git] / gdb / value.h
index c4a33f59ef0e27b0e01633e85999e6827f8ac251..ab22573a4806c064970530aa1721242c1d011e75 100644 (file)
@@ -1,6 +1,5 @@
 /* Definitions for values of C expressions, for GDB.
-   Copyright 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996
-   Free Software Foundation, Inc.
+   Copyright 1986, 1987, 1989, 1992-1996, 2000 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
  * be possible for a program lval value to survive over a call to the inferior
  * (ie to be put into the history list or an internal variable).
  */
-enum lval_type
-  {
-    /* Not an lval.  */
-    not_lval,
-    /* In memory.  Could be a saved register.  */
-    lval_memory,
-    /* In a register.  */
-    lval_register,
-    /* In a gdb internal variable.  */
-    lval_internalvar,
-    /* Part of a gdb internal variable (structure field).  */
-    lval_internalvar_component,
-    /* In a register series in a frame not the current one, which may have been
-       partially saved or saved in different places (otherwise would be
-       lval_register or lval_memory).  */
-    lval_reg_frame_relative
-  };
 
 struct value
   {
@@ -55,7 +37,9 @@ struct value
     /* Location of value (if lval).  */
     union
       {
-       /* Address in inferior or byte of registers structure.  */
+       /* If lval == lval_memory, this is the address in the inferior.
+          If lval == lval_register, this is the byte offset into the
+          registers structure.  */
        CORE_ADDR address;
        /* Pointer to internal variable.  */
        struct internalvar *internalvar;
@@ -65,8 +49,10 @@ struct value
       }
     location;
     /* Describes offset of a value within lval of a structure in bytes.
-       This is used in retrieving contents from target memory. [Note also
-       the member embedded_offset below.] */
+       If lval == lval_memory, this is an offset to the address.
+       If lval == lval_register, this is a further offset from
+          location.address within the registers structure.  
+       Note also the member embedded_offset below.  */
     int offset;
     /* Only used for bitfields; number of bits contained in them.  */
     int bitsize;
@@ -255,13 +241,10 @@ struct internalvar
 #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 void print_address_demangle (CORE_ADDR, struct ui_file *, int);
 
 extern LONGEST value_as_long PARAMS ((value_ptr val));
 
@@ -502,47 +485,46 @@ extern void get_saved_register PARAMS ((char *raw_buffer, int *optimized,
 extern void
 modify_field PARAMS ((char *addr, LONGEST fieldval, int bitpos, int bitsize));
 
-extern void
-type_print PARAMS ((struct type * type, char *varstring, GDB_FILE * stream,
-                   int show));
+extern void type_print (struct type * type, char *varstring,
+                       struct ui_file * stream, int show);
 
 extern char *baseclass_addr PARAMS ((struct type * type, int index,
                                     char *valaddr,
                                     value_ptr * valuep, int *errp));
 
-extern void
-print_longest PARAMS ((GDB_FILE * stream, int format, int use_local,
-                      LONGEST val));
+extern void print_longest (struct ui_file * stream, int format,
+                          int use_local, LONGEST val);
 
-extern void
-print_floating PARAMS ((char *valaddr, struct type * type, GDB_FILE * stream));
+extern void print_floating (char *valaddr, struct type * type,
+                           struct ui_file * stream);
 
-extern int value_print PARAMS ((value_ptr val, GDB_FILE * stream, int format,
-                               enum val_prettyprint pretty));
+extern int value_print (value_ptr val, struct ui_file *stream, int format,
+                       enum val_prettyprint pretty);
 
-extern void
-value_print_array_elements PARAMS ((value_ptr val, GDB_FILE * stream,
-                                 int format, enum val_prettyprint pretty));
+extern void value_print_array_elements (value_ptr val,
+                                       struct ui_file *stream,
+                                       int format,
+                                       enum val_prettyprint pretty);
 
 extern value_ptr
   value_release_to_mark PARAMS ((value_ptr mark));
 
-extern int
-val_print PARAMS ((struct type * type, char *valaddr, int embedded_offset, CORE_ADDR address,
-                  GDB_FILE * stream, int format, int deref_ref,
-                  int recurse, enum val_prettyprint pretty));
+extern int val_print (struct type * type, char *valaddr,
+                     int embedded_offset, CORE_ADDR address,
+                     struct ui_file * stream, int format,
+                     int deref_ref, int recurse,
+                     enum val_prettyprint pretty);
 
-extern int
-val_print_string PARAMS ((CORE_ADDR addr, int len, int width, GDB_FILE * stream));
+extern int val_print_string (CORE_ADDR addr, int len, int width, struct ui_file *stream);
 
-extern void
-print_variable_value PARAMS ((struct symbol * var, struct frame_info * frame,
-                             GDB_FILE * stream));
+extern void print_variable_value (struct symbol * var,
+                                 struct frame_info * frame,
+                                 struct ui_file *stream);
 
 extern int check_field PARAMS ((value_ptr, const char *));
 
-extern void
-c_typedef_print PARAMS ((struct type * type, struct symbol * news, GDB_FILE * stream));
+extern void c_typedef_print (struct type * type, struct symbol * news,
+                            struct ui_file * stream);
 
 extern char *
   internalvar_name PARAMS ((struct internalvar * var));
This page took 0.025747 seconds and 4 git commands to generate.