Return X86_TDESC_MMX in x86_get_ipa_tdesc_idx
[deliverable/binutils-gdb.git] / gdb / target-descriptions.h
index efe4ebf431e4e272cc9cca09a43256fe74a6a4b0..591da1505596591f2715fce704032443ce859306 100644 (file)
@@ -1,7 +1,6 @@
 /* Target description support for GDB.
 
-   Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
    Contributed by CodeSourcery.
 
@@ -29,23 +28,45 @@ struct tdesc_type;
 struct tdesc_reg;
 struct target_desc;
 struct target_ops;
+struct target_desc;
+/* An inferior's target description info is stored in this opaque
+   object.  There's one such object per inferior.  */
+struct target_desc_info;
+struct inferior;
 
-/* Fetch the current target's description, and switch the current
+/* Fetch the current inferior's description, and switch its current
    architecture to one which incorporates that description.  */
 
 void target_find_description (void);
 
-/* Discard any description fetched from the current target, and switch
-   the current architecture to one with no target description.  */
+/* Discard any description fetched from the target for the current
+   inferior, and switch the current architecture to one with no target
+   description.  */
 
 void target_clear_description (void);
 
-/* Return the global current target description.  This should only be
-   used by gdbarch initialization code; most access should be through
-   an existing gdbarch.  */
+/* Return the current inferior's target description.  This should only
+   be used by gdbarch initialization code; most access should be
+   through an existing gdbarch.  */
 
 const struct target_desc *target_current_description (void);
 
+/* Copy inferior target description data.  Used for example when
+   handling (v)forks, where child's description is the same as the
+   parent's, since the child really is a copy of the parent.  */
+
+void copy_inferior_target_desc_info (struct inferior *destinf,
+                                    struct inferior *srcinf);
+
+/* Free a target_desc_info object.  */
+
+void target_desc_info_free (struct target_desc_info *tdesc_info);
+
+/* Returns true if INFO indicates the target description had been
+   supplied by the user.  */
+
+int target_desc_info_from_user_p (struct target_desc_info *info);
+
 /* Record architecture-specific functions to call for pseudo-register
    support.  If tdesc_use_registers is called and gdbarch_num_pseudo_regs
    is greater than zero, then these should be called as well.
@@ -177,7 +198,7 @@ const char *tdesc_register_name (struct gdbarch *gdbarch, int regno);
 
 struct type *tdesc_register_type (struct gdbarch *gdbarch, int regno);
 
-/* Return the type associated with ID, from the target description. */
+/* Return the type associated with ID, from the target description.  */
 
 struct type *tdesc_find_type (struct gdbarch *gdbarch, const char *id);
 
@@ -208,20 +229,40 @@ struct tdesc_type *tdesc_create_vector (struct tdesc_feature *feature,
                                        int count);
 struct tdesc_type *tdesc_create_struct (struct tdesc_feature *feature,
                                        const char *name);
-void tdesc_set_struct_size (struct tdesc_type *type, LONGEST size);
+void tdesc_set_struct_size (struct tdesc_type *type, int size);
 struct tdesc_type *tdesc_create_union (struct tdesc_feature *feature,
                                       const char *name);
 struct tdesc_type *tdesc_create_flags (struct tdesc_feature *feature,
                                       const char *name,
-                                      LONGEST size);
+                                      int size);
+struct tdesc_type *tdesc_create_enum (struct tdesc_feature *feature,
+                                     const char *name,
+                                     int size);
 void tdesc_add_field (struct tdesc_type *type, const char *field_name,
                      struct tdesc_type *field_type);
+void tdesc_add_typed_bitfield (struct tdesc_type *type, const char *field_name,
+                              int start, int end,
+                              struct tdesc_type *field_type);
 void tdesc_add_bitfield (struct tdesc_type *type, const char *field_name,
                         int start, int end);
 void tdesc_add_flag (struct tdesc_type *type, int start,
                     const char *flag_name);
+void tdesc_add_enum_value (struct tdesc_type *type, int value,
+                          const char *name);
 void tdesc_create_reg (struct tdesc_feature *feature, const char *name,
                       int regnum, int save_restore, const char *group,
                       int bitsize, const char *type);
 
+#if GDB_SELF_TEST
+namespace selftests {
+
+/* Record that XML_FILE should generate a target description that equals
+   TDESC, to be verified by the "maintenance check xml-descriptions"
+   command.  */
+
+void record_xml_tdesc (const char *xml_file,
+                      const struct target_desc *tdesc);
+}
+#endif
+
 #endif /* TARGET_DESCRIPTIONS_H */
This page took 0.025271 seconds and 4 git commands to generate.