···11+#include "madvise.h"
22+#include "../errno.h"
33+#include "../base.h"
44+#include "../../../../../platform-include/sys/errno.h"
55+#include <asm/unistd.h>
66+77+long sys_madvise(void* addr, unsigned long len, int advice)
88+{
99+ int ret;
1010+1111+ // advice < 0 are identical between OS X and Linux
1212+ // advice >= 5 are specific to OS X/BSD
1313+ if (advice >= 5)
1414+ return -ENOTSUP;
1515+1616+ ret = LINUX_SYSCALL(__NR_madvise, addr, len, advice);
1717+1818+ if (ret < 0)
1919+ ret = errno_linux_to_bsd(ret);
2020+2121+ return ret;
2222+}
2323+
+7
src/kernel/emulation/linux/mman/madvise.h
···11+#ifndef LINUX_MADVISE_H
22+#define LINUX_MADVISE_H
33+44+long sys_madvise(void* addr, unsigned long len, int advice);
55+66+#endif
77+