syscall_emul: #ifdef new system calls to allow builds on OSX and BSD
authorBrandon Potter <brandon.potter@amd.com>
Fri, 20 Jan 2017 19:12:58 +0000 (14:12 -0500)
committerBrandon Potter <brandon.potter@amd.com>
Fri, 20 Jan 2017 19:12:58 +0000 (14:12 -0500)
src/sim/syscall_emul.cc
src/sim/syscall_emul.hh

index da89f7a0862635bad064eb4e3cec9b0bc0fd5fdd..b34e983a6bc1ab7ccb1ed28ca16d516dfc3bd3ba 100644 (file)
@@ -895,6 +895,9 @@ SyscallReturn
 fallocateFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
               ThreadContext *tc)
 {
+#if NO_FALLOCATE
+    warn("Host OS cannot support calls to fallocate. Ignoring syscall");
+#else
     int index = 0;
     int tgt_fd = 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);
     if (result < 0)
         return -errno;
-
+#endif
     return 0;
 }
 
index 3e7221c0b0f4a30beb531b22bc618da6b0e20132..4433b5039a73101d9675f0df3f3ac0688a0a4850 100644 (file)
   defined(__FreeBSD__) || defined(__CYGWIN__) || \
   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
 ///
@@ -62,7 +68,9 @@
 #include <fcntl.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
+#if (NO_STATFS == 0)
 #include <sys/statfs.h>
+#endif
 #include <sys/time.h>
 #include <sys/uio.h>
 #include <unistd.h>
@@ -1123,6 +1131,9 @@ SyscallReturn
 statfsFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
            ThreadContext *tc)
 {
+#if NO_STATFS
+    warn("Host OS cannot support calls to statfs. Ignoring syscall");
+#else
     std::string path;
 
     int index = 0;
@@ -1142,7 +1153,7 @@ statfsFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
         return -errno;
 
     copyOutStatfsBuf<OS>(tc->getMemProxy(), bufPtr, &hostBuf);
-
+#endif
     return 0;
 }