+/* Record architecture-specific functions to call for pseudo-register
+ support. If tdesc_use_registers is called and NUM_PSEUDO_REGS
+ is greater than zero, then these should be called as well.
+ They are equivalent to the gdbarch methods with similar names,
+ except that they will only be called for pseudo registers. */
+
+void set_tdesc_pseudo_register_name
+ (struct gdbarch *gdbarch, gdbarch_register_name_ftype *pseudo_name);
+
+void set_tdesc_pseudo_register_type
+ (struct gdbarch *gdbarch, gdbarch_register_type_ftype *pseudo_type);
+
+void set_tdesc_pseudo_register_reggroup_p
+ (struct gdbarch *gdbarch,
+ gdbarch_register_reggroup_p_ftype *pseudo_reggroup_p);
+
+/* Update GDBARCH to use the target description for registers. Fixed
+ register assignments are taken from EARLY_DATA, which is freed.
+ All registers which have not been assigned fixed numbers are given
+ numbers above the current value of NUM_REGS. NUM_REGS and various
+ register-related predicates are updated to refer to the target
+ description. This function should only be called from the
+ architecture's gdbarch initialization routine, and only after
+ successfully validating the required registers. */
+
+void tdesc_use_registers (struct gdbarch *gdbarch,
+ struct tdesc_arch_data *early_data);
+
+/* Allocate initial data for validation of a target description during
+ gdbarch initialization. */
+
+struct tdesc_arch_data *tdesc_data_alloc (void);
+
+/* Clean up data allocated by tdesc_data_alloc. This should only
+ be called to discard the data; tdesc_use_registers takes ownership
+ of its EARLY_DATA argument. */
+
+void tdesc_data_cleanup (void *data_untyped);
+
+/* Search FEATURE for a register named NAME. Record REGNO and the
+ register in DATA; when tdesc_use_registers is called, REGNO will be
+ assigned to the register. 1 is returned if the register was found,
+ 0 if it was not. */
+
+int tdesc_numbered_register (const struct tdesc_feature *feature,
+ struct tdesc_arch_data *data,
+ int regno, const char *name);
+
+/* Search FEATURE for a register with any of the names from NAMES
+ (NULL-terminated). Record REGNO and the register in DATA; when
+ tdesc_use_registers is called, REGNO will be assigned to the
+ register. 1 is returned if the register was found, 0 if it was
+ not. */
+
+int tdesc_numbered_register_choices (const struct tdesc_feature *feature,
+ struct tdesc_arch_data *data,
+ int regno, const char *const names[]);
+
+