blob: 425263e7efe3a17c7f18df547bc27dd9f74a5c4e [file] [log] [blame]
yuezonghe824eb0c2024-06-27 02:32:26 -07001/* vi: set sw=4 ts=4: */
2/*
3 * getresgid() for uClibc
4 *
5 * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
6 *
7 * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
8 */
9
10#include <sys/syscall.h>
11#ifdef __USE_GNU
12#include <unistd.h>
13
14#if defined(__NR_getresgid32)
15# undef __NR_getresgid
16# define __NR_getresgid __NR_getresgid32
17_syscall3(int, getresgid, gid_t *, rgid, gid_t *, egid, gid_t *, sgid)
18
19#elif defined(__NR_getresgid)
20# define __NR___syscall_getresgid __NR_getresgid
21static __inline__ _syscall3(int, __syscall_getresgid, __kernel_gid_t *, rgid,
22 __kernel_gid_t *, egid, __kernel_gid_t *, sgid)
23
24int getresgid(gid_t * rgid, gid_t * egid, gid_t * sgid)
25{
26 int result;
27 __kernel_gid_t k_rgid, k_egid, k_sgid;
28
29 result = __syscall_getresgid(&k_rgid, &k_egid, &k_sgid);
30 if (result == 0) {
31 *rgid = (gid_t) k_rgid;
32 *egid = (gid_t) k_egid;
33 *sgid = (gid_t) k_sgid;
34 }
35 return result;
36}
37#endif
38#endif