X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=sim%2Fcommon%2Fsyscall.c;h=d6607229156c96efe08a215b66357328166665a4;hb=128e85e3ab36b8e30f6612fb50de3cbb4ede6824;hp=fd5b82ab9873c3e083d5e0118aa45a5dd2bf56fa;hpb=028f6515424e832ee10a1e4cb1f96ea241e2acae;p=deliverable%2Fbinutils-gdb.git diff --git a/sim/common/syscall.c b/sim/common/syscall.c index fd5b82ab98..d660722915 100644 --- a/sim/common/syscall.c +++ b/sim/common/syscall.c @@ -1,6 +1,5 @@ /* Remote target system call support. - Copyright 1997, 1998, 2002, 2004, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. + Copyright 1997-2016 Free Software Foundation, Inc. Contributed by Cygnus Solutions. This file is part of GDB. @@ -25,7 +24,7 @@ supported. */ #ifdef HAVE_CONFIG_H -#include "cconfig.h" +#include "config.h" #endif #include "ansidecl.h" #include "libiberty.h" @@ -76,13 +75,9 @@ char *simulator_sysroot = ""; /* Utility of cb_syscall to fetch a path name or other string from the target. The result is 0 for success or a host errno value. */ -static int -get_string (cb, sc, buf, buflen, addr) - host_callback *cb; - CB_SYSCALL *sc; - char *buf; - int buflen; - TADDR addr; +int +cb_get_string (host_callback *cb, CB_SYSCALL *sc, char *buf, int buflen, + TADDR addr) { char *p, *pend; @@ -111,17 +106,13 @@ get_string (cb, sc, buf, buflen, addr) If an error occurs, no buffer is left malloc'd. */ static int -get_path (cb, sc, addr, bufp) - host_callback *cb; - CB_SYSCALL *sc; - TADDR addr; - char **bufp; +get_path (host_callback *cb, CB_SYSCALL *sc, TADDR addr, char **bufp) { char *buf = xmalloc (MAX_PATH_LEN); int result; int sysroot_len = strlen (simulator_sysroot); - result = get_string (cb, sc, buf, MAX_PATH_LEN - sysroot_len, addr); + result = cb_get_string (cb, sc, buf, MAX_PATH_LEN - sysroot_len, addr); if (result == 0) { /* Prepend absolute paths with simulator_sysroot. Relative paths @@ -148,9 +139,7 @@ get_path (cb, sc, addr, bufp) /* Perform a system call on behalf of the target. */ CB_RC -cb_syscall (cb, sc) - host_callback *cb; - CB_SYSCALL *sc; +cb_syscall (host_callback *cb, CB_SYSCALL *sc) { TWORD result = 0, errcode = 0; @@ -251,7 +240,7 @@ cb_syscall (cb, sc) #endif /* wip */ case CB_SYS_exit : - /* Caller must catch and handle. */ + /* Caller must catch and handle; see sim_syscall as an example. */ break; case CB_SYS_open : @@ -345,12 +334,12 @@ cb_syscall (cb, sc) errcode = EINVAL; goto FinishSyscall; } - if (cb_is_stdout(cb, fd)) + if (cb_is_stdout (cb, fd)) { result = (int) (*cb->write_stdout) (cb, buf, bytes_read); (*cb->flush_stdout) (cb); } - else if (cb_is_stderr(cb, fd)) + else if (cb_is_stderr (cb, fd)) { result = (int) (*cb->write_stderr) (cb, buf, bytes_read); (*cb->flush_stderr) (cb); @@ -466,7 +455,7 @@ cb_syscall (cb, sc) result = -1; goto FinishSyscall; } - result = (*cb->stat) (cb, path, &statbuf); + result = (*cb->to_stat) (cb, path, &statbuf); free (path); if (result < 0) goto ErrorFinish; @@ -499,7 +488,7 @@ cb_syscall (cb, sc) struct stat statbuf; TADDR addr = sc->arg2; - result = (*cb->fstat) (cb, sc->arg1, &statbuf); + result = (*cb->to_fstat) (cb, sc->arg1, &statbuf); if (result < 0) goto ErrorFinish; buflen = cb_host_to_target_stat (cb, NULL, NULL); @@ -537,7 +526,7 @@ cb_syscall (cb, sc) result = -1; goto FinishSyscall; } - result = (*cb->lstat) (cb, path, &statbuf); + result = (*cb->to_lstat) (cb, path, &statbuf); free (path); if (result < 0) goto ErrorFinish;