/* vi: set sw=4 ts=4: */ /* * getresuid() for uClibc * * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> * * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ #include <sys/syscall.h> #ifdef __USE_GNU #include <unistd.h> #if defined(__NR_getresuid32) # undef __NR_getresuid # define __NR_getresuid __NR_getresuid32 _syscall3(int, getresuid, uid_t *, ruid, uid_t *, euid, uid_t *, suid) #elif defined(__NR_getresuid) # define __NR___syscall_getresuid __NR_getresuid static __inline__ _syscall3(int, __syscall_getresuid, __kernel_uid_t *, ruid, __kernel_uid_t *, euid, __kernel_uid_t *, suid) int getresuid(uid_t * ruid, uid_t * euid, uid_t * suid) { int result; __kernel_uid_t k_ruid, k_euid, k_suid; result = __syscall_getresuid(&k_ruid, &k_euid, &k_suid); if (result == 0) { *ruid = (uid_t) k_ruid; *euid = (uid_t) k_euid; *suid = (uid_t) k_suid; } return result; } #endif #endif