OSDN Git Service

Update to HEAD.
[pf3gnuchains/pf3gnuchains4x.git] / gdb / target-descriptions.h
index 34f4e45..6553fc3 100644 (file)
@@ -1,6 +1,6 @@
 /* Target description support for GDB.
 
-   Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
    Contributed by CodeSourcery.
 
 
 struct tdesc_feature;
 struct tdesc_arch_data;
+struct tdesc_type;
 struct tdesc_reg;
 struct target_desc;
 struct target_ops;
-struct type;
 
 /* Fetch the current target's description, and switch the current
    architecture to one which incorporates that description.  */
@@ -123,6 +123,11 @@ int tdesc_numbered_register_choices (const struct tdesc_feature *feature,
 const struct bfd_arch_info *tdesc_architecture
   (const struct target_desc *);
 
+/* Return the OSABI associated with this target description, or
+   GDB_OSABI_UNKNOWN if no osabi was specified.  */
+
+enum gdb_osabi tdesc_osabi (const struct target_desc *);
+
 /* Return the string value of a property named KEY, or NULL if the
    property was not specified.  */
 
@@ -146,8 +151,8 @@ const char *tdesc_feature_name (const struct tdesc_feature *feature);
 /* Return the type associated with ID in the context of FEATURE, or
    NULL if none.  */
 
-struct type *tdesc_named_type (const struct tdesc_feature *feature,
-                              const char *id);
+struct tdesc_type *tdesc_named_type (const struct tdesc_feature *feature,
+                                    const char *id);
 
 /* Return the name of register REGNO, from the target description or
    from an architecture-provided pseudo_register_name method.  */
@@ -167,13 +172,20 @@ struct target_desc *allocate_target_description (void);
 struct cleanup *make_cleanup_free_target_description (struct target_desc *);
 void set_tdesc_architecture (struct target_desc *,
                             const struct bfd_arch_info *);
+void set_tdesc_osabi (struct target_desc *, enum gdb_osabi osabi);
 void set_tdesc_property (struct target_desc *,
                         const char *key, const char *value);
 
 struct tdesc_feature *tdesc_create_feature (struct target_desc *tdesc,
                                            const char *name);
-void tdesc_record_type (struct tdesc_feature *feature, struct type *type);
-
+struct tdesc_type *tdesc_create_vector (struct tdesc_feature *feature,
+                                       const char *name,
+                                       struct tdesc_type *field_type,
+                                       int count);
+struct tdesc_type *tdesc_create_union (struct tdesc_feature *feature,
+                                      const char *name);
+void tdesc_add_field (struct tdesc_type *type, const char *field_name,
+                     struct tdesc_type *field_type);
 void tdesc_create_reg (struct tdesc_feature *feature, const char *name,
                       int regnum, int save_restore, const char *group,
                       int bitsize, const char *type);