summary refs log tree commit diff stats
path: root/bsd-user/freebsd/os-proc.h
diff options
context:
space:
mode:
authorStacey Son <sson@FreeBSD.org>2023-09-25 21:24:21 +0300
committerWarner Losh <imp@bsdimp.com>2023-10-03 17:14:06 -0600
commit159e5b0c4bb00ade2d53e6c482ecda59f69fbdde (patch)
treeabe5ecddfdcf383ccb2adbdf2847c13faa8dde12 /bsd-user/freebsd/os-proc.h
parentae502887cb3e3aa38bc0837cd7580f7a6768a649 (diff)
downloadfocaccia-qemu-159e5b0c4bb00ade2d53e6c482ecda59f69fbdde.tar.gz
focaccia-qemu-159e5b0c4bb00ade2d53e6c482ecda59f69fbdde.zip
bsd-user: Implement setloginclass(2) and getloginclass(2) system calls.
Signed-off-by: Stacey Son <sson@FreeBSD.org>
Signed-off-by: Karim Taha <kariem.taha2.7@gmail.com>
Reviewed-by: Warner Losh <imp@bsdimp.com>
Message-Id: <20230925182425.3163-25-kariem.taha2.7@gmail.com>
Diffstat (limited to 'bsd-user/freebsd/os-proc.h')
-rw-r--r--bsd-user/freebsd/os-proc.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/bsd-user/freebsd/os-proc.h b/bsd-user/freebsd/os-proc.h
index 04bce755e5..2eaba141dc 100644
--- a/bsd-user/freebsd/os-proc.h
+++ b/bsd-user/freebsd/os-proc.h
@@ -130,4 +130,36 @@ static inline abi_long do_freebsd_wait6(void *cpu_env, abi_long idtype,
     return ret;
 }
 
+/* setloginclass(2) */
+static inline abi_long do_freebsd_setloginclass(abi_ulong arg1)
+{
+    abi_long ret;
+    void *p;
+
+    p = lock_user_string(arg1);
+    if (p == NULL) {
+        return -TARGET_EFAULT;
+    }
+    ret = get_errno(setloginclass(p));
+    unlock_user(p, arg1, 0);
+
+    return ret;
+}
+
+/* getloginclass(2) */
+static inline abi_long do_freebsd_getloginclass(abi_ulong arg1, abi_ulong arg2)
+{
+    abi_long ret;
+    void *p;
+
+    p = lock_user(VERIFY_WRITE, arg1, arg2, 0);
+    if (p == NULL) {
+        return -TARGET_EFAULT;
+    }
+    ret = get_errno(getloginclass(p, arg2));
+    unlock_user(p, arg1, arg2);
+
+    return ret;
+}
+
 #endif /* BSD_USER_FREEBSD_OS_PROC_H */