* remote.c (remote_write_bytes): Take a const buffer argument.
[deliverable/binutils-gdb.git] / gdb / value.h
index 448124224ce55c88d25959fa341fdbbe417f90d0..87129d612162d2dde86cefe5f9f2bfa058d65e21 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions for values of C expressions, for GDB.
 
-   Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
+   Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
    1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    Free Software Foundation, Inc.
 
@@ -18,8 +18,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #if !defined (VALUE_H)
 #define VALUE_H 1
@@ -168,7 +168,7 @@ extern void set_value_lazy (struct value *value, int val);
    get to the real subobject, if the value happens to represent
    something embedded in a larger run-time object.  */
 
-extern bfd_byte *value_contents_raw (struct value *);
+extern gdb_byte *value_contents_raw (struct value *);
 
 /* Actual contents of the value.  For use of this value; setting it
    uses the stuff above.  Not valid if lazy is nonzero.  Target
@@ -176,16 +176,17 @@ extern bfd_byte *value_contents_raw (struct value *);
    value.  Note that a value therefore extends beyond what is
    declared here.  */
 
-extern const bfd_byte *value_contents (struct value *);
-extern bfd_byte *value_contents_writeable (struct value *);
+extern const gdb_byte *value_contents (struct value *);
+extern gdb_byte *value_contents_writeable (struct value *);
 
 /* The ALL variants of the above two macros do not adjust the returned
    pointer by the embedded_offset value.  */
 
-extern bfd_byte *value_contents_all_raw (struct value *);
-extern const bfd_byte *value_contents_all (struct value *);
+extern gdb_byte *value_contents_all_raw (struct value *);
+extern const gdb_byte *value_contents_all (struct value *);
 
 extern int value_fetch_lazy (struct value *val);
+extern int value_contents_equal (struct value *val1, struct value *val2);
 
 /* If nonzero, this is the value of a variable which does not actually
    exist in the program.  */
@@ -244,13 +245,9 @@ struct internalvar
   struct internalvar *next;
   char *name;
   struct value *value;
+  int endian;
 };
 
-/* Pointer to member function.  Depends on compiler implementation.  */
-
-#define METHOD_PTR_IS_VIRTUAL(ADDR)  ((ADDR) & 0x80000000)
-#define METHOD_PTR_FROM_VOFFSET(OFFSET) (0x80000000 + (OFFSET))
-#define METHOD_PTR_TO_VOFFSET(ADDR) (~0x80000000 & (ADDR))
 \f
 
 #include "symtab.h"
@@ -266,11 +263,12 @@ extern LONGEST value_as_long (struct value *val);
 extern DOUBLEST value_as_double (struct value *val);
 extern CORE_ADDR value_as_address (struct value *val);
 
-extern LONGEST unpack_long (struct type *type, const char *valaddr);
-extern DOUBLEST unpack_double (struct type *type, const char *valaddr,
+extern LONGEST unpack_long (struct type *type, const gdb_byte *valaddr);
+extern DOUBLEST unpack_double (struct type *type, const gdb_byte *valaddr,
                               int *invp);
-extern CORE_ADDR unpack_pointer (struct type *type, const char *valaddr);
-extern LONGEST unpack_field_as_long (struct type *type, const char *valaddr,
+extern CORE_ADDR unpack_pointer (struct type *type, const gdb_byte *valaddr);
+extern LONGEST unpack_field_as_long (struct type *type,
+                                    const gdb_byte *valaddr,
                                     int fieldno);
 
 extern struct value *value_from_longest (struct type *type, LONGEST num);
@@ -327,9 +325,13 @@ extern struct value *value_ind (struct value *arg1);
 
 extern struct value *value_addr (struct value *arg1);
 
+extern struct value *value_ref (struct value *arg1);
+
 extern struct value *value_assign (struct value *toval,
                                   struct value *fromval);
 
+extern struct value *value_pos (struct value *arg1);
+
 extern struct value *value_neg (struct value *arg1);
 
 extern struct value *value_complement (struct value *arg1);
@@ -367,6 +369,8 @@ extern struct type *value_rtti_target_type (struct value *, int *, int *,
 extern struct value *value_full_object (struct value *, struct type *, int,
                                        int, int);
 
+extern struct value *value_cast_pointers (struct type *, struct value *);
+
 extern struct value *value_cast (struct type *type, struct value *arg2);
 
 extern struct value *value_zero (struct type *type, enum lval_type lv);
@@ -380,7 +384,7 @@ extern struct value *register_value_being_returned (struct type *valtype,
 
 extern struct value *value_in (struct value *element, struct value *set);
 
-extern int value_bit_index (struct type *type, const bfd_byte *addr,
+extern int value_bit_index (struct type *type, const gdb_byte *addr,
                            int index);
 
 extern int using_struct_return (struct type *value_type, int gcc_p);
@@ -453,19 +457,20 @@ extern void release_value (struct value *val);
 
 extern int record_latest_value (struct value *val);
 
-extern void modify_field (char *addr, LONGEST fieldval, int bitpos,
+extern void modify_field (gdb_byte *addr, LONGEST fieldval, int bitpos,
                          int bitsize);
 
 extern void type_print (struct type *type, char *varstring,
                        struct ui_file *stream, int show);
 
-extern char *baseclass_addr (struct type *type, int index, char *valaddr,
-                            struct value **valuep, int *errp);
+extern gdb_byte *baseclass_addr (struct type *type, int index,
+                                gdb_byte *valaddr,
+                                struct value **valuep, int *errp);
 
 extern void print_longest (struct ui_file *stream, int format,
                           int use_local, LONGEST val);
 
-extern void print_floating (const bfd_byte *valaddr, struct type *type,
+extern void print_floating (const gdb_byte *valaddr, struct type *type,
                            struct ui_file *stream);
 
 extern int value_print (struct value *val, struct ui_file *stream, int format,
@@ -477,12 +482,17 @@ extern void value_print_array_elements (struct value *val,
 
 extern struct value *value_release_to_mark (struct value *mark);
 
-extern int val_print (struct type *type, const bfd_byte *valaddr,
+extern int val_print (struct type *type, const gdb_byte *valaddr,
                      int embedded_offset, CORE_ADDR address,
                      struct ui_file *stream, int format,
                      int deref_ref, int recurse,
                      enum val_prettyprint pretty);
 
+extern int common_val_print (struct value *val,
+                            struct ui_file *stream, int format,
+                            int deref_ref, int recurse,
+                            enum val_prettyprint pretty);
+
 extern int val_print_string (CORE_ADDR addr, int len, int width,
                             struct ui_file *stream);
 
@@ -497,9 +507,7 @@ extern void typedef_print (struct type *type, struct symbol *news,
 
 extern char *internalvar_name (struct internalvar *var);
 
-extern void clear_value_history (void);
-
-extern void clear_internalvars (void);
+extern void preserve_values (struct objfile *);
 
 /* From values.c */
 
@@ -515,7 +523,7 @@ extern struct value *value_literal_complex (struct value *, struct value *,
                                            struct type *);
 
 extern void find_rt_vbase_offset (struct type *, struct type *,
-                                 const bfd_byte *, int, int *, int *);
+                                 const gdb_byte *, int, int *, int *);
 
 extern struct value *find_function_in_inferior (const char *);
 
This page took 0.029942 seconds and 4 git commands to generate.