From: David Edelsohn Date: Wed, 20 Nov 1996 08:42:22 +0000 (+0000) Subject: * callback.h: New file, moved here from gdb. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9d10b92d2ab96407190ff3e22afecf0370c75149;p=binutils-gdb.git * callback.h: New file, moved here from gdb. --- diff --git a/include/.Sanitize b/include/.Sanitize index 0ed04e074c3..d6be81f6d57 100644 --- a/include/.Sanitize +++ b/include/.Sanitize @@ -30,6 +30,7 @@ ansidecl.h aout bfdlink.h bout.h +callback.h coff demangle.h dis-asm.h diff --git a/include/callback.h b/include/callback.h new file mode 100644 index 00000000000..b6d7b69b4de --- /dev/null +++ b/include/callback.h @@ -0,0 +1,56 @@ +#ifndef CALLBACK_H +#define CALLBACK_H + +typedef struct host_callback_struct host_callback; + +#define MAX_CALLBACK_FDS 10 + +struct host_callback_struct +{ + int (*close) PARAMS ((host_callback *,int)); + int (*get_errno) PARAMS ((host_callback *)); + int (*isatty) PARAMS ((host_callback *, int)); + int (*lseek) PARAMS ((host_callback *, int, long , int)); + int (*open) PARAMS ((host_callback *, const char*, int mode)); + int (*read) PARAMS ((host_callback *,int, char *, int)); + int (*read_stdin) PARAMS (( host_callback *, char *, int)); + int (*rename) PARAMS ((host_callback *, const char *, const char *)); + int (*system) PARAMS ((host_callback *, const char *)); + long (*time) PARAMS ((host_callback *, long *)); + int (*unlink) PARAMS ((host_callback *, const char *)); + int (*write) PARAMS ((host_callback *,int, const char *, int)); + int (*write_stdout) PARAMS ((host_callback *, const char *, int)); + + /* Used when the target has gone away, so we can close open + handles and free memory etc etc. */ + int (*shutdown) PARAMS ((host_callback *)); + int (*init) PARAMS ((host_callback *)); + + /* Talk to the user on a console. */ + void (*printf_filtered) PARAMS ((host_callback *, const char *, ...)); + + int last_errno; /* host format */ + + int fdmap[MAX_CALLBACK_FDS]; + char fdopen[MAX_CALLBACK_FDS]; + char alwaysopen[MAX_CALLBACK_FDS]; +}; + +extern host_callback default_callback; + +/* Mapping of host/target values. */ +/* ??? For debugging purposes, one might want to add a string of the + name of the symbol. */ + +typedef struct { + int host_val; + int target_val; +} target_defs_map; + +extern target_defs_map errno_map[]; +extern target_defs_map open_map[]; + +extern int host_to_target_errno PARAMS ((int)); +extern int target_to_host_open PARAMS ((int)); + +#endif