syscall_emul: #ifdef new system calls to allow builds on OSX and BSD
This commit is contained in:
parent
1961a942f3
commit
93d8e6b898
2 changed files with 16 additions and 2 deletions
|
@ -895,6 +895,9 @@ SyscallReturn
|
||||||
fallocateFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
|
fallocateFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
|
||||||
ThreadContext *tc)
|
ThreadContext *tc)
|
||||||
{
|
{
|
||||||
|
#if NO_FALLOCATE
|
||||||
|
warn("Host OS cannot support calls to fallocate. Ignoring syscall");
|
||||||
|
#else
|
||||||
int index = 0;
|
int index = 0;
|
||||||
int tgt_fd = process->getSyscallArg(tc, index);
|
int tgt_fd = process->getSyscallArg(tc, index);
|
||||||
int mode = process->getSyscallArg(tc, index);
|
int mode = process->getSyscallArg(tc, index);
|
||||||
|
@ -908,7 +911,7 @@ fallocateFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
|
||||||
int result = fallocate(sim_fd, mode, offset, len);
|
int result = fallocate(sim_fd, mode, offset, len);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,12 @@
|
||||||
defined(__FreeBSD__) || defined(__CYGWIN__) || \
|
defined(__FreeBSD__) || defined(__CYGWIN__) || \
|
||||||
defined(__NetBSD__))
|
defined(__NetBSD__))
|
||||||
|
|
||||||
|
#define NO_STATFS (defined(__APPLE__) || defined(__OpenBSD__) || \
|
||||||
|
defined(__FreeBSD__) || defined(__NetBSD__))
|
||||||
|
|
||||||
|
#define NO_FALLOCATE (defined(__APPLE__) || defined(__OpenBSD__) || \
|
||||||
|
defined(__FreeBSD__) || defined(__NetBSD__))
|
||||||
|
|
||||||
///
|
///
|
||||||
/// @file syscall_emul.hh
|
/// @file syscall_emul.hh
|
||||||
///
|
///
|
||||||
|
@ -62,7 +68,9 @@
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#if (NO_STATFS == 0)
|
||||||
#include <sys/statfs.h>
|
#include <sys/statfs.h>
|
||||||
|
#endif
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/uio.h>
|
#include <sys/uio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@ -1123,6 +1131,9 @@ SyscallReturn
|
||||||
statfsFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
|
statfsFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
|
||||||
ThreadContext *tc)
|
ThreadContext *tc)
|
||||||
{
|
{
|
||||||
|
#if NO_STATFS
|
||||||
|
warn("Host OS cannot support calls to statfs. Ignoring syscall");
|
||||||
|
#else
|
||||||
std::string path;
|
std::string path;
|
||||||
|
|
||||||
int index = 0;
|
int index = 0;
|
||||||
|
@ -1142,7 +1153,7 @@ statfsFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
copyOutStatfsBuf<OS>(tc->getMemProxy(), bufPtr, &hostBuf);
|
copyOutStatfsBuf<OS>(tc->getMemProxy(), bufPtr, &hostBuf);
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue