aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/defs.h14
-rw-r--r--gdb/remote-sim.c19
-rw-r--r--gdb/remote-sim.h6
3 files changed, 35 insertions, 4 deletions
diff --git a/gdb/defs.h b/gdb/defs.h
index dfd63af..cd13c2e 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -555,10 +555,6 @@ extern char *strsave PARAMS ((const char *));
extern char *mstrsave PARAMS ((void *, const char *));
-extern PTR xmalloc PARAMS ((long));
-
-extern PTR xrealloc PARAMS ((PTR, long));
-
extern PTR xmmalloc PARAMS ((PTR, long));
extern PTR xmrealloc PARAMS ((PTR, PTR, long));
@@ -616,7 +612,9 @@ extern void warning PARAMS ((char *, ...))
Libiberty thingies are no longer declared here. We include libiberty.h
above, instead. */
+#ifndef GETENV_PROVIDED
extern char *getenv PARAMS ((const char *));
+#endif
/* From other system libraries */
@@ -625,7 +623,15 @@ extern char *getenv PARAMS ((const char *));
#include <stdlib.h>
#endif
+
+/* We take the address of fclose later, but some stdio's forget
+ to declare this. We can't always declare it since there's
+ no way to declare the parameters without upsetting some compiler
+ somewhere. */
+
+#ifndef FCLOSE_PROVIDED
extern int fclose ();
+#endif
#ifndef atof
extern double atof ();
diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
index 813f212..dab8149 100644
--- a/gdb/remote-sim.c
+++ b/gdb/remote-sim.c
@@ -95,6 +95,25 @@ int regno;
}
}
+
+int
+gdbsim_write_stdout (arg, len)
+char *arg;
+int len;
+{
+ int i;
+ char b[2];
+ for (i = 0; i< len; i++) {
+ b[0] = arg[i];
+ b[1] = 0;
+ if (target_output_hook)
+ target_output_hook (b);
+ else
+ fputs_filtered (b, gdb_stdout);
+ }
+ return len;
+}
+
static void
gdbsim_store_register (regno)
int regno;
diff --git a/gdb/remote-sim.h b/gdb/remote-sim.h
index edf9a81..74f9809 100644
--- a/gdb/remote-sim.h
+++ b/gdb/remote-sim.h
@@ -39,6 +39,7 @@ typedef CORE_ADDR_TYPE SIM_ADDR;
void printf_filtered (char *msg, ...);
void error /-* noreturn *-/ (char *msg, ...);
void *xmalloc (long size);
+ int gdbsim_write_stdout (char *, int len);
*/
/* Main simulator entry points ...
@@ -123,4 +124,9 @@ void sim_resume PARAMS ((int step, int siggnal));
void sim_do_command PARAMS ((char *cmd));
+
+/* Callbacks for the simulator to use. */
+
+int gdbsim_write_stdout PARAMS ((char *, int));
+
#endif /* !defined (REMOTE_SIM_H) */