On 12/6/22 22:48, Warner Losh wrote:
Signed-off-by: Stacey Son <s...@freebsd.org>
Signed-off-by: Warner Losh <i...@bsdimp.com>
---
bsd-user/bsd-file.h | 53 +++++++++++++++++++++++++++++++++++
bsd-user/freebsd/os-syscall.c | 16 +++++++++++
2 files changed, 69 insertions(+)
diff --git a/bsd-user/bsd-file.h b/bsd-user/bsd-file.h
index 3e0f160e312..37b3efccd2c 100644
--- a/bsd-user/bsd-file.h
+++ b/bsd-user/bsd-file.h
@@ -262,4 +262,57 @@ static abi_long do_bsd_closefrom(abi_long arg1)
return get_errno(0);
}
+/* revoke(2) */
+static abi_long do_bsd_revoke(abi_long arg1)
+{
+ abi_long ret;
+ void *p;
+
+ LOCK_PATH(p, arg1);
+ ret = get_errno(revoke(p)); /* XXX path(p)? */
+ UNLOCK_PATH(p, arg1);
+
+ return ret;
+}
Out of curiosity, what is the problem with path(p) here?
+/* faccessat(2) */
+static abi_long do_bsd_faccessat(abi_long arg1, abi_long arg2,
+ abi_long arg3, abi_long arg4)
+{
+ abi_long ret;
+ void *p;
+
+ LOCK_PATH(p, arg2);
+ ret = get_errno(faccessat(arg1, p, arg3, arg4)); /* XXX path(p)? */
+ UNLOCK_PATH(p, arg2);
+
+ return ret;
+}