From 881a60116f6ee0886327e818024bb0d9b29ed31a Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Wed, 26 Nov 1997 19:49:13 +0000 Subject: [PATCH] * callback.h (CB_SYSCALL): Change byte count arguments to {read,write}_mem to `int'. New member `magic'. (CB_SYSCALL_MAGIC,CB_SYSCALL_INIT): New macros. --- include/ChangeLog | 6 ++++++ include/callback.h | 26 +++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/include/ChangeLog b/include/ChangeLog index cda5da0f249..02cf6f02bf6 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,9 @@ +Wed Nov 26 11:39:30 1997 Doug Evans + + * callback.h (CB_SYSCALL): Change byte count arguments to + {read,write}_mem to `int'. New member `magic'. + (CB_SYSCALL_MAGIC,CB_SYSCALL_INIT): New macros. + Tue Nov 25 01:35:52 1997 Doug Evans * callback.h (struct stat): Move forward decl up. diff --git a/include/callback.h b/include/callback.h index 6b700fe37b1..d2847cca0a0 100644 --- a/include/callback.h +++ b/include/callback.h @@ -203,10 +203,30 @@ typedef struct cb_syscall { PTR p2; long x1,x2; - /* Callbacks for reading/writing memory (e.g. for read/write syscalls). */ - unsigned long (*read_mem) PARAMS ((host_callback *, struct cb_syscall *, unsigned long taddr, char *buf, unsigned long bytes)); - unsigned long (*write_mem) PARAMS ((host_callback *, struct cb_syscall *, unsigned long taddr, const char *buf, unsigned long bytes)); + /* Callbacks for reading/writing memory (e.g. for read/write syscalls). + ??? long or unsigned long might be better to use for the `count' + argument here. We mimic sim_{read,write} for now. Be careful to + test any changes with -Wall -Werror, mixed signed comparisons + will get you. */ + int (*read_mem) PARAMS ((host_callback *, struct cb_syscall *, + unsigned long taddr, char *buf, int bytes)); + int (*write_mem) PARAMS ((host_callback *, struct cb_syscall *, + unsigned long taddr, const char *buf, int bytes)); + + /* For sanity checking, should be last entry. */ + int magic; } CB_SYSCALL; + +/* Magic number sanity checker. */ +#define CB_SYSCALL_MAGIC 0x12344321 + +/* Macro to initialize CB_SYSCALL. Called first, before filling in + any fields. */ +#define CB_SYSCALL_INIT(sc) \ +do { \ + memset ((sc), 0, sizeof (*(sc))); \ + (sc)->magic = CB_SYSCALL_MAGIC; \ +} while (0) /* Return codes for various interface routines. */ -- 2.30.2