* Makefile.in (distclean): Add gstdint.h.
[deliverable/binutils-gdb.git] / gdb / varobj.h
index e95321d5d3f9d3903328a6d8a805c4620537d551..4fc7d1ecfb228da1c1410aec98d6c3c0bac54424 100644 (file)
@@ -1,9 +1,10 @@
 /* GDB variable objects API.
-   Copyright (C) 1999, 2000, 2001, 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2001, 2005, 2007, 2008
+   Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
 
    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., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef VAROBJ_H
 #define VAROBJ_H 1
 
 #include "symtab.h"
 #include "gdbtypes.h"
+#include "vec.h"
 
 /* Enumeration for the format types */
 enum varobj_display_formats
@@ -38,7 +38,15 @@ enum varobj_type
     USE_CURRENT_FRAME,          /* Use the current frame */
     USE_SELECTED_FRAME          /* Always reevaluate in selected frame */
   };
-    
+
+/* Error return values for varobj_update function.  */
+enum varobj_update_error
+  {
+    NOT_IN_SCOPE = -1,          /* varobj not in scope, can not be updated.  */
+    TYPE_CHANGED = -2,          /* varobj type has changed.  */
+    INVALID = -3,               /* varobj is not valid anymore.  */
+  };
+
 /* String representations of gdb's format codes (defined in varobj.c) */
 extern char *varobj_format_string[];
 
@@ -54,6 +62,9 @@ extern char *varobj_language_string[];
 /* Struct thar describes a variable object instance */
 struct varobj;
 
+typedef struct varobj *varobj_p;
+DEF_VEC_P (varobj_p);
+
 /* API functions */
 
 extern struct varobj *varobj_create (char *objname,
@@ -78,25 +89,44 @@ extern enum varobj_display_formats varobj_set_display_format (
 extern enum varobj_display_formats varobj_get_display_format (
                                                        struct varobj *var);
 
+extern int varobj_get_thread_id (struct varobj *var);
+
+extern void varobj_set_frozen (struct varobj *var, int frozen);
+
+extern int varobj_get_frozen (struct varobj *var);
+
 extern int varobj_get_num_children (struct varobj *var);
 
-extern int varobj_list_children (struct varobj *var,
-                                struct varobj ***childlist);
+/* Return the list of children of VAR.  The returned vector
+   should not be modified in any way.  */
+extern VEC (varobj_p)* varobj_list_children (struct varobj *var);
 
 extern char *varobj_get_type (struct varobj *var);
 
 extern struct type *varobj_get_gdb_type (struct varobj *var);
 
+extern char *varobj_get_path_expr (struct varobj *var);
+
 extern enum varobj_languages varobj_get_language (struct varobj *var);
 
 extern int varobj_get_attributes (struct varobj *var);
 
+extern char *varobj_get_formatted_value (struct varobj *var,
+                                        enum varobj_display_formats format);
+
 extern char *varobj_get_value (struct varobj *var);
 
 extern int varobj_set_value (struct varobj *var, char *expression);
 
 extern int varobj_list (struct varobj ***rootlist);
 
-extern int varobj_update (struct varobj **varp, struct varobj ***changelist);
+extern int varobj_update (struct varobj **varp, struct varobj ***changelist,
+                         int explicit);
+
+extern void varobj_invalidate (void);
+
+extern int varobj_editable_p (struct varobj *var);
+
+extern int varobj_floating_p (struct varobj *var);
 
 #endif /* VAROBJ_H */
This page took 0.026165 seconds and 4 git commands to generate.