From 4123aca8104bc6442c977cca937aef83ad0a959b Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Wed, 26 Nov 1997 19:52:34 +0000 Subject: [PATCH] Undo last change. callback.h changed instead. Plus: * syscall.c (cb_syscall): Test CB_SYSCALL struct magic number. --- sim/common/ChangeLog | 2 +- sim/common/syscall.c | 20 ++++++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index c3b7528c3d..5a07ff5fe2 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,6 +1,6 @@ Wed Nov 26 11:18:40 1997 Doug Evans - * syscall.c (cb_syscall, cases stat, fstat): Handle -Wall -Werror. + * syscall.c (cb_syscall): Test CB_SYSCALL struct magic number. Tue Nov 25 20:12:46 1997 Michael Meissner diff --git a/sim/common/syscall.c b/sim/common/syscall.c index fbeb24cb37..1556ece24f 100644 --- a/sim/common/syscall.c +++ b/sim/common/syscall.c @@ -64,8 +64,8 @@ /* When doing file read/writes, do this many bytes at a time. */ #define FILE_XFR_SIZE 4096 -/* FIXME: for now */ -#define TWORD unsigned long +/* FIXME: for now, need to consider target word size. */ +#define TWORD long #define TADDR unsigned long /* Utility of cb_syscall to fetch a path name or other string from the target. @@ -131,8 +131,10 @@ cb_syscall (cb, sc) host_callback *cb; CB_SYSCALL *sc; { - /* ??? Need to consider target word size. */ - long result = 0, errcode = 0; + TWORD result = 0, errcode = 0; + + if (sc->magic != CB_SYSCALL_MAGIC) + abort (); switch (cb_target_to_host_syscall (cb, sc->func)) { @@ -390,10 +392,7 @@ cb_syscall (cb, sc) result = -1; goto FinishSyscall; } - /* ??? Coercion to unsigned avoids -Wall -Werror failure. - Ya, cb_host_to_target_stat could return an unsigned int, - but that seems worse. */ - if ((*sc->write_mem) (cb, sc, addr, buf, buflen) != (unsigned) buflen) + if ((*sc->write_mem) (cb, sc, addr, buf, buflen) != buflen) { free (buf); errcode = EINVAL; @@ -425,10 +424,7 @@ cb_syscall (cb, sc) result = -1; goto FinishSyscall; } - /* ??? Coercion to unsigned avoids -Wall -Werror failure. - Ya, cb_host_to_target_stat could return an unsigned int, - but that seems worse. */ - if ((*sc->write_mem) (cb, sc, addr, buf, buflen) != (unsigned) buflen) + if ((*sc->write_mem) (cb, sc, addr, buf, buflen) != buflen) { free (buf); errcode = EINVAL;