[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 081/108] linux-user: Split out getresgid32, getre
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH v2 081/108] linux-user: Split out getresgid32, getresuid32, setresgid32, setresuid32 |
Date: |
Sat, 9 Jun 2018 17:01:53 -1000 |
Signed-off-by: Richard Henderson <address@hidden>
---
linux-user/syscall.c | 93 +++++++++++++++++++++++++++-----------------
1 file changed, 57 insertions(+), 36 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 031033c0ea..af96cc95d3 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8674,6 +8674,22 @@ IMPL(getresgid)
}
#endif
+#ifdef TARGET_NR_getresgid32
+IMPL(getresgid32)
+{
+ gid_t rgid, egid, sgid;
+ abi_long ret = get_errno(getresgid(&rgid, &egid, &sgid));
+
+ if (!is_error(ret) &&
+ (put_user_u32(rgid, arg1) ||
+ put_user_u32(egid, arg2) ||
+ put_user_u32(sgid, arg3))) {
+ return -TARGET_EFAULT;
+ }
+ return ret;
+}
+#endif
+
#ifdef TARGET_NR_getresuid
IMPL(getresuid)
{
@@ -8690,6 +8706,21 @@ IMPL(getresuid)
}
#endif
+#ifdef TARGET_NR_getresuid32
+IMPL(getresuid32)
+{
+ uid_t ruid, euid, suid;
+ abi_long ret = get_errno(getresuid(&ruid, &euid, &suid));
+
+ if (!is_error(ret) &&
+ (put_user_u32(ruid, arg1) ||
+ put_user_u32(euid, arg2) ||
+ put_user_u32(suid, arg3))) {
+ return -TARGET_EFAULT;
+ }
+ return ret;
+}
+#endif
IMPL(getrlimit)
{
int resource = target_to_host_resource(arg1);
@@ -10906,6 +10937,13 @@ IMPL(setresgid)
}
#endif
+#ifdef TARGET_NR_setresgid32
+IMPL(setresgid32)
+{
+ return get_errno(sys_setresgid(arg1, arg2, arg3));
+}
+#endif
+
#ifdef TARGET_NR_setresuid
IMPL(setresuid)
{
@@ -10914,6 +10952,13 @@ IMPL(setresuid)
}
#endif
+#ifdef TARGET_NR_setresuid32
+IMPL(setresuid32)
+{
+ return get_errno(sys_setresuid(arg1, arg2, arg3));
+}
+#endif
+
IMPL(setreuid)
{
return get_errno(setreuid(low2highuid(arg1), low2highuid(arg2)));
@@ -11898,42 +11943,6 @@ static abi_long do_syscall1(void *cpu_env, unsigned
num, abi_long arg1,
void *p;
switch(num) {
-#ifdef TARGET_NR_setresuid32
- case TARGET_NR_setresuid32:
- return get_errno(sys_setresuid(arg1, arg2, arg3));
-#endif
-#ifdef TARGET_NR_getresuid32
- case TARGET_NR_getresuid32:
- {
- uid_t ruid, euid, suid;
- ret = get_errno(getresuid(&ruid, &euid, &suid));
- if (!is_error(ret)) {
- if (put_user_u32(ruid, arg1)
- || put_user_u32(euid, arg2)
- || put_user_u32(suid, arg3))
- return -TARGET_EFAULT;
- }
- }
- return ret;
-#endif
-#ifdef TARGET_NR_setresgid32
- case TARGET_NR_setresgid32:
- return get_errno(sys_setresgid(arg1, arg2, arg3));
-#endif
-#ifdef TARGET_NR_getresgid32
- case TARGET_NR_getresgid32:
- {
- gid_t rgid, egid, sgid;
- ret = get_errno(getresgid(&rgid, &egid, &sgid));
- if (!is_error(ret)) {
- if (put_user_u32(rgid, arg1)
- || put_user_u32(egid, arg2)
- || put_user_u32(sgid, arg3))
- return -TARGET_EFAULT;
- }
- }
- return ret;
-#endif
#ifdef TARGET_NR_chown32
case TARGET_NR_chown32:
if (!(p = lock_user_string(arg1)))
@@ -13235,8 +13244,14 @@ static impl_fn *syscall_table(unsigned num)
#ifdef TARGET_NR_getresgid
SYSCALL(getresgid);
#endif
+#ifdef TARGET_NR_getresgid32
+ SYSCALL(getresgid32);
+#endif
#ifdef TARGET_NR_getresuid
SYSCALL(getresuid);
+#endif
+#ifdef TARGET_NR_getresuid32
+ SYSCALL(getresuid32);
#endif
SYSCALL(getrlimit);
SYSCALL(getrusage);
@@ -13491,11 +13506,17 @@ static impl_fn *syscall_table(unsigned num)
#ifdef TARGET_NR_setresgid
SYSCALL(setresgid);
#endif
+#ifdef TARGET_NR_setresgid32
+ SYSCALL(setresgid32);
+#endif
#ifdef TARGET_NR_setregid32
SYSCALL(setregid32);
#endif
#ifdef TARGET_NR_setresuid
SYSCALL(setresuid);
+#endif
+#ifdef TARGET_NR_setresuid32
+ SYSCALL(setresuid32);
#endif
SYSCALL(setreuid);
#ifdef TARGET_NR_setreuid32
--
2.17.1
- [Qemu-devel] [PATCH v2 071/108] linux-user: Split out fstat64, fstatat64, newfstatat, lstat64, stat64, (continued)
- [Qemu-devel] [PATCH v2 071/108] linux-user: Split out fstat64, fstatat64, newfstatat, lstat64, stat64, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 072/108] linux-user: Split out getegid, geteuid, getgid, getuid, lchown, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 073/108] linux-user: Split out getgroups, setgroups, setregid, setreuid, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 075/108] linux-user: Split out chown, getresgid, getresuid, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 074/108] linux-user: Split out fchown, fchownat, setresgid, setresuid, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 076/108] linux-user: Split out setfsgid, setfsuid, setgid, setuid, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 077/108] linux-user: Split out getuid32, getxgid, getxuid, lchown32, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 079/108] linux-user: Split out getegid32, geteuid32, getgid32, setregid32, setreuid32, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 080/108] linux-user: Split out fchown32, getgroups32, setgroups32, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 078/108] linux-user: Split out osf_getsysinfo, osf_setsysinfo, osf_sigprocmask, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 081/108] linux-user: Split out getresgid32, getresuid32, setresgid32, setresuid32,
Richard Henderson <=
- [Qemu-devel] [PATCH v2 082/108] linux-user: Split out chown32, setfsgid32, setfsuid32, setgid32, setuid32, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 083/108] linux-user: Split out mincore, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 084/108] linux-user: Split out fadvise64, fadvise64_64, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 085/108] linux-user: Split out cacheflush, fcntl64, getpagesize, madvise, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 086/108] linux-user: Split out gettid, readahead, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 087/108] linux-user: Split out xattr syscalls, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 089/108] linux-user: Split out clock syscalls, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 090/108] linux-user: Fix clock_nanosleep, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 088/108] linux-user: Split out getdomainname, get_thread_area, set_thread_area, Richard Henderson, 2018/06/09
- [Qemu-devel] [PATCH v2 091/108] linux-user: Split out set_tid_address, tgkill, tkill, Richard Henderson, 2018/06/09
- Prev by Date:
[Qemu-devel] [PATCH v2 078/108] linux-user: Split out osf_getsysinfo, osf_setsysinfo, osf_sigprocmask
- Next by Date:
[Qemu-devel] [PATCH v2 082/108] linux-user: Split out chown32, setfsgid32, setfsuid32, setgid32, setuid32
- Previous by thread:
[Qemu-devel] [PATCH v2 078/108] linux-user: Split out osf_getsysinfo, osf_setsysinfo, osf_sigprocmask
- Next by thread:
[Qemu-devel] [PATCH v2 082/108] linux-user: Split out chown32, setfsgid32, setfsuid32, setgid32, setuid32
- Index(es):