aboutsummaryrefslogtreecommitdiff
path: root/sim/sh
diff options
context:
space:
mode:
authorSteve Chamberlain <sac@cygnus>1995-09-20 16:52:52 +0000
committerSteve Chamberlain <sac@cygnus>1995-09-20 16:52:52 +0000
commit5897a29e88fc79cc7084811aec69e3bdaccd9150 (patch)
tree66b434fac383eb80a132ec4a8275b6ceb71a8243 /sim/sh
parentf69e888e4dfa4d47bfc8eefe67ea6ae36455981c (diff)
downloadgdb-5897a29e88fc79cc7084811aec69e3bdaccd9150.zip
gdb-5897a29e88fc79cc7084811aec69e3bdaccd9150.tar.gz
gdb-5897a29e88fc79cc7084811aec69e3bdaccd9150.tar.bz2
* run.c (sim_callback_write_stdout): New.
* interp.c (trap): Call sim_callback_write_stdout when needed.
Diffstat (limited to 'sim/sh')
-rw-r--r--sim/sh/ChangeLog5
-rw-r--r--sim/sh/interp.c5
-rw-r--r--sim/sh/run.c8
3 files changed, 17 insertions, 1 deletions
diff --git a/sim/sh/ChangeLog b/sim/sh/ChangeLog
index 382b22c..d82bbc9 100644
--- a/sim/sh/ChangeLog
+++ b/sim/sh/ChangeLog
@@ -1,3 +1,8 @@
+Wed Sep 20 09:51:50 1995 steve chamberlain <sac@slash.cygnus.com>
+
+ * run.c (sim_callback_write_stdout): New.
+ * interp.c (trap): Call sim_callback_write_stdout when needed.
+
Mon Sep 18 18:42:27 1995 steve chamberlain <sac@slash.cygnus.com>
* interp.c (trap): Remove useless code.
diff --git a/sim/sh/interp.c b/sim/sh/interp.c
index beaf442..c461981 100644
--- a/sim/sh/interp.c
+++ b/sim/sh/interp.c
@@ -506,7 +506,10 @@ trap (i, regs, memory, maskl, maskw, little_endian)
regs[0] = read (regs[5], ptr (regs[6]), regs[7]);
break;
case SYS_write:
- regs[0] = write (regs[5], ptr (regs[6]), regs[7]);
+ if (regs[5] == 1)
+ regs[0] = sim_callback_write_stdout (ptr(regs[6]), regs[7]);
+ else
+ regs[0] = write (regs[5], ptr (regs[6]), regs[7]);
break;
case SYS_lseek:
regs[0] = lseek (regs[5], regs[6], regs[7]);
diff --git a/sim/sh/run.c b/sim/sh/run.c
index f039851..587d3af 100644
--- a/sim/sh/run.c
+++ b/sim/sh/run.c
@@ -165,3 +165,11 @@ printf_filtered (va_alist)
vfprintf (stdout, format, args);
va_end (args);
}
+
+int
+sim_callback_write_stdout (arg, len)
+ char *arg;
+ int len;
+{
+ return write (1, arg, len);
+}