56,69d55
< #if (defined(__APPLE__) || defined(__OpenBSD__) || \
< defined(__FreeBSD__) || defined(__NetBSD__))
< #define NO_STATFS 1
< #else
< #define NO_STATFS 0
< #endif
<
< #if (defined(__APPLE__) || defined(__OpenBSD__) || \
< defined(__FreeBSD__) || defined(__NetBSD__))
< #define NO_FALLOCATE 1
< #else
< #define NO_FALLOCATE 0
< #endif
<
75a62,67
> #ifdef __linux__
> #include <sys/eventfd.h>
> #include <sys/statfs.h>
>
> #endif
>
87,94d78
<
< #if (NO_STATFS == 0)
< #include <sys/statfs.h>
<
< #else
< #include <sys/mount.h>
<
< #endif
135a120
> void warnUnsupportedOS(std::string syscall_name);
1533,1535c1518
< #if NO_STATFS
< warn("Host OS cannot support calls to statfs. Ignoring syscall");
< #else
---
> #ifdef __linux__
1555d1537
< #endif
1556a1539,1542
> #else
> warnUnsupportedOS("statfs");
> return -1;
> #endif
2862a2849,2876
> /// Target eventfd() function.
> template <class OS>
> SyscallReturn
> eventfdFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
> {
> #ifdef __linux__
> int index = 0;
> unsigned initval = p->getSyscallArg(tc, index);
> int in_flags = p->getSyscallArg(tc, index);
>
> int sim_fd = eventfd(initval, in_flags);
> if (sim_fd == -1)
> return -errno;
>
> bool cloexec = in_flags & OS::TGT_O_CLOEXEC;
>
> int flags = cloexec ? OS::TGT_O_CLOEXEC : 0;
> flags |= (in_flags & OS::TGT_O_NONBLOCK) ? OS::TGT_O_NONBLOCK : 0;
>
> auto hbfdp = std::make_shared<HBFDEntry>(flags, sim_fd, cloexec);
> int tgt_fd = p->fds->allocFD(hbfdp);
> return tgt_fd;
> #else
> warnUnsupportedOS("eventfd");
> return -1;
> #endif
> }
>