diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2002-07-20 03:21:43 +0400 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2002-07-20 03:21:43 +0400 |
commit | c119e0ab7ad26043906eae35460c15103c7bcf70 (patch) | |
tree | f02b5e4dbab477586714e964c190f8246328261d /newlib/libc/sys/linux/setrlimit64.c | |
parent | 9b022d6db80564cfc10c7f18e5d05cedb32f6375 (diff) |
2002-07-19 Jeff Johnston <jjohnstn@redhat.com>
* libc/include/sys/config.h[__i386__][__linux__]: Define
_LARGE64FILE_SOURCE to 1.
* libc/sys/linux/Makefile.am: Add getrlimit64.c and setrlimit64.c.
* libc/sys/linux/Makefile.in: Regenerated.
* libc/sys/linux/resource.c: Add __getrlimit and __setrlimit aliases.
* libc/sys/linux/sys/linux_time.h: Protect struct timeval definition.
* libc/sys/linux/sys/resource.h: Include <bits/resource.h> instead
of <linux/resource.h>.
* libc/sys/linux/getrlimit64.c: New file.
* libc/sys/linux/setrlimit64.c: Ditto.
Diffstat (limited to 'newlib/libc/sys/linux/setrlimit64.c')
-rw-r--r-- | newlib/libc/sys/linux/setrlimit64.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/newlib/libc/sys/linux/setrlimit64.c b/newlib/libc/sys/linux/setrlimit64.c new file mode 100644 index 000000000..d4b4bfce0 --- /dev/null +++ b/newlib/libc/sys/linux/setrlimit64.c @@ -0,0 +1,43 @@ +/* Copyright (C) 1991,1995,1996,1997,1998,2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <errno.h> +#include <sys/resource.h> +#include <sys/types.h> + +/* Set the soft and hard limits for RESOURCE to *RLIMITS. + Only the super-user can increase hard limits. + Return 0 if successful, -1 if not (and sets errno). */ +int +setrlimit64 (resource, rlimits) + enum __rlimit_resource resource; + const struct rlimit64 *rlimits; +{ + struct rlimit rlimits32; + + if (rlimits->rlim_cur >= RLIM_INFINITY) + rlimits32.rlim_cur = RLIM_INFINITY; + else + rlimits32.rlim_cur = rlimits->rlim_cur; + if (rlimits->rlim_max >= RLIM_INFINITY) + rlimits32.rlim_max = RLIM_INFINITY; + else + rlimits32.rlim_max = rlimits->rlim_max; + + return __setrlimit (resource, &rlimits32); +} |