1 /* vi: set sw=4 ts=4: */
3 * getrlimit() for uClibc
5 * Copyright (C) 2000-2004 by Erik Andersen <andersen@codepoet.org>
7 * GNU Library General Public License (LGPL) version 2 or later.
12 #include <sys/resource.h>
14 #ifdef __NR_ugetrlimit
15 #define __NR___ugetrlimit __NR_ugetrlimit
17 _syscall2(int, __ugetrlimit, enum __rlimit_resource, resource,
18 struct rlimit *, rlim);
19 int getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
21 return (__ugetrlimit(resource, rlimits));
24 #else /* __NR_ugetrlimit */
26 /* Only include the old getrlimit if the new one (ugetrlimit) is not around */
27 #define __NR___syscall_getrlimit __NR_getrlimit
29 _syscall2(int, __syscall_getrlimit, int, resource, struct rlimit *, rlim);
31 int getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
35 result = __syscall_getrlimit(resource, rlimits);
40 /* We might have to correct the limits values. Since the old values
41 * were signed the infinity value is too small. */
42 if (rlimits->rlim_cur == RLIM_INFINITY >> 1)
43 rlimits->rlim_cur = RLIM_INFINITY;
44 if (rlimits->rlim_max == RLIM_INFINITY >> 1)
45 rlimits->rlim_max = RLIM_INFINITY;
50 libc_hidden_proto(getrlimit)
51 libc_hidden_def(getrlimit)