struct nto_target_ops current_nto_target;
+static const struct inferior_data *nto_inferior_data_reg;
+
static char *
nto_target (void)
{
}
return len_read;
}
+
+/* Allocate new nto_inferior_data object. */
+
+static struct nto_inferior_data *
+nto_new_inferior_data (void)
+{
+ struct nto_inferior_data *const inf_data
+ = XCNEW (struct nto_inferior_data);
+
+ return inf_data;
+}
+
+/* Free inferior data. */
+
+static void
+nto_inferior_data_cleanup (struct inferior *const inf, void *const dat)
+{
+ xfree (dat);
+}
+
+/* Return nto_inferior_data for the given INFERIOR. If not yet created,
+ construct it. */
+
+struct nto_inferior_data *
+nto_inferior_data (struct inferior *const inferior)
+{
+ struct inferior *const inf = inferior ? inferior : current_inferior ();
+ struct nto_inferior_data *inf_data;
+
+ gdb_assert (inf != NULL);
+
+ inf_data = inferior_data (inf, nto_inferior_data_reg);
+ if (inf_data == NULL)
+ {
+ set_inferior_data (inf, nto_inferior_data_reg,
+ (inf_data = nto_new_inferior_data ()));
+ }
+
+ return inf_data;
+}
+
+/* Provide a prototype to silence -Wmissing-prototypes. */
+extern initialize_file_ftype _initialize_nto_tdep;
+
+void
+_initialize_nto_tdep (void)
+{
+ nto_inferior_data_reg
+ = register_inferior_data_with_cleanup (NULL, nto_inferior_data_cleanup);
+}