diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-12-22 20:10:10 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-12-22 20:10:10 +0000 |
commit | a334319f6530564d22e775935d9c91663623a1b4 (patch) | |
tree | b5877475619e4c938e98757d518bb1e9cbead751 /resource | |
parent | 0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (diff) | |
download | glibc-a334319f6530564d22e775935d9c91663623a1b4.zip glibc-a334319f6530564d22e775935d9c91663623a1b4.tar.gz glibc-a334319f6530564d22e775935d9c91663623a1b4.tar.bz2 |
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
Diffstat (limited to 'resource')
-rw-r--r-- | resource/Makefile | 4 | ||||
-rw-r--r-- | resource/getpriority.c | 37 | ||||
-rw-r--r-- | resource/getrlimit.c | 34 | ||||
-rw-r--r-- | resource/getrlimit64.c | 43 | ||||
-rw-r--r-- | resource/getrusage.c | 35 | ||||
-rw-r--r-- | resource/nice.c | 33 | ||||
-rw-r--r-- | resource/setpriority.c | 36 | ||||
-rw-r--r-- | resource/setrlimit.c | 37 | ||||
-rw-r--r-- | resource/setrlimit64.c | 43 | ||||
-rw-r--r-- | resource/tst-getrlimit.c | 112 | ||||
-rw-r--r-- | resource/ulimit.c | 39 | ||||
-rw-r--r-- | resource/vlimit.c | 51 | ||||
-rw-r--r-- | resource/vtimes.c | 65 |
13 files changed, 1 insertions, 568 deletions
diff --git a/resource/Makefile b/resource/Makefile index 68f9ff6..cddb6d3 100644 --- a/resource/Makefile +++ b/resource/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991,1992,1994,1995,1997,2005 Free Software Foundation, Inc. +# Copyright (C) 1991, 1992, 1994, 1995, 1997 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 @@ -24,6 +24,4 @@ headers := sys/resource.h bits/resource.h sys/vlimit.h sys/vtimes.h \ routines := getrlimit setrlimit getrlimit64 setrlimit64 getrusage ulimit \ vlimit vtimes getpriority setpriority nice -tests = tst-getrlimit - include ../Rules diff --git a/resource/getpriority.c b/resource/getpriority.c deleted file mode 100644 index 501c92a..0000000 --- a/resource/getpriority.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (C) 1991,95,96,97,2000,02 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> - -/* Return the highest priority of any process specified by WHICH and WHO - (see <sys/resource.h>); if WHO is zero, the current process, process group, - or user (as specified by WHO) is used. A lower priority number means higher - priority. Priorities range from PRIO_MIN to PRIO_MAX. */ -int -getpriority (which, who) - enum __priority_which which; - id_t who; -{ - __set_errno (ENOSYS); - return -1; -} -libc_hidden_def (getpriority) - -stub_warning (getpriority) -#include <stub-tag.h> diff --git a/resource/getrlimit.c b/resource/getrlimit.c deleted file mode 100644 index d4bcadd..0000000 --- a/resource/getrlimit.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (C) 1991, 1995, 1996, 1997 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> - -/* Put the soft and hard limits for RESOURCE in *RLIMITS. - Returns 0 if successful, -1 if not (and sets errno). */ -int -__getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits) -{ - __set_errno (ENOSYS); - return -1; -} -weak_alias (__getrlimit, getrlimit) - -stub_warning (getrlimit) -#include <stub-tag.h> diff --git a/resource/getrlimit64.c b/resource/getrlimit64.c deleted file mode 100644 index dcd67cf..0000000 --- a/resource/getrlimit64.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright (C) 1991, 1995, 1996, 1997, 1998 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> - -/* Put the soft and hard limits for RESOURCE in *RLIMITS. - Returns 0 if successful, -1 if not (and sets errno). */ -int -getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits) -{ - struct rlimit rlimits32; - - if (__getrlimit (resource, &rlimits32) < 0) - return -1; - - if (rlimits32.rlim_cur == RLIM_INFINITY) - rlimits->rlim_cur = RLIM64_INFINITY; - else - rlimits->rlim_cur = rlimits32.rlim_cur; - if (rlimits32.rlim_max == RLIM_INFINITY) - rlimits->rlim_max = RLIM64_INFINITY; - else - rlimits->rlim_max = rlimits32.rlim_max; - - return 0; -} diff --git a/resource/getrusage.c b/resource/getrusage.c deleted file mode 100644 index c679855..0000000 --- a/resource/getrusage.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (C) 1991, 1995, 1996, 1997 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 <sys/resource.h> -#include <errno.h> - -/* Return resource usage information on process indicated by WHO - and put it in *USAGE. Returns 0 for success, -1 for failure. */ -int -__getrusage (who, usage) - enum __rusage_who who; - struct rusage *usage; -{ - __set_errno (ENOSYS); - return -1; -} -stub_warning (getrusage) - -weak_alias (__getrusage, getrusage) -#include <stub-tag.h> diff --git a/resource/nice.c b/resource/nice.c deleted file mode 100644 index 8561931..0000000 --- a/resource/nice.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 1992, 1995, 1996, 1997 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 <unistd.h> - -/* Increment the scheduling priority of the calling process by INCR. - The superuser may use a negative INCR to decrement the priority. */ -int -nice (incr) - int incr; -{ - __set_errno (ENOSYS); - return -1; -} - -stub_warning (nice) -#include <stub-tag.h> diff --git a/resource/setpriority.c b/resource/setpriority.c deleted file mode 100644 index b2e6f8a..0000000 --- a/resource/setpriority.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 1991,95,96,97,2000,02 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> - -/* Set the priority of all processes specified by WHICH and WHO - to PRIO. Returns 0 on success, -1 on errors. */ -int -setpriority (which, who, prio) - enum __priority_which which; - id_t who; - int prio; -{ - __set_errno (ENOSYS); - return -1; -} -libc_hidden_def (setpriority) - -stub_warning (setpriority) -#include <stub-tag.h> diff --git a/resource/setrlimit.c b/resource/setrlimit.c deleted file mode 100644 index c8f6e03..0000000 --- a/resource/setrlimit.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (C) 1991, 1995, 1996, 1997, 1998 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 -setrlimit (resource, rlimits) - enum __rlimit_resource resource; - const struct rlimit *rlimits; -{ - __set_errno (ENOSYS); - return -1; -} - - -stub_warning (setrlimit) -#include <stub-tag.h> diff --git a/resource/setrlimit64.c b/resource/setrlimit64.c deleted file mode 100644 index d4b4bfc..0000000 --- a/resource/setrlimit64.c +++ /dev/null @@ -1,43 +0,0 @@ -/* 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); -} diff --git a/resource/tst-getrlimit.c b/resource/tst-getrlimit.c deleted file mode 100644 index 6748034..0000000 --- a/resource/tst-getrlimit.c +++ /dev/null @@ -1,112 +0,0 @@ -#include <errno.h> -#include <stdbool.h> -#include <stdio.h> -#include <sys/resource.h> - - -static struct -{ - const char *name; - int resource; - bool required; -} tests[] = - { - /* The following 7 limits are part of POSIX and must exist. */ - { "RLIMIT_CORE", RLIMIT_CORE, true }, - { "RLIMIT_CPU", RLIMIT_CPU, true }, - { "RLIMIT_DATA", RLIMIT_DATA, true }, - { "RLIMIT_FSIZE", RLIMIT_FSIZE, true }, - { "RLIMIT_NOFILE", RLIMIT_NOFILE, true }, - { "RLIMIT_STACK", RLIMIT_STACK, true }, - { "RLIMIT_AS", RLIMIT_AS, true }, - /* The following are traditional Unix limits which are also - expected (by us). */ - { "RLIMIT_RSS", RLIMIT_RSS, true }, - { "RLIMIT_NPROC", RLIMIT_NPROC, true }, - /* The following are extensions. */ -#ifdef RLIMIT_MEMLOCK - { "RLIMIT_MEMLOCK", RLIMIT_MEMLOCK, false }, -#endif -#ifdef RLIMIT_LOCKS - { "RLIMIT_LOCKS", RLIMIT_LOCKS, false }, -#endif -#ifdef RLIMIT_SIGPENDING - { "RLIMIT_SIGPENDING", RLIMIT_SIGPENDING, false }, -#endif -#ifdef RLIMIT_MSGQUEUE - { "RLIMIT_MSGQUEUE", RLIMIT_MSGQUEUE, false }, -#endif -#ifdef RLIMIT_NICE - { "RLIMIT_NICE", RLIMIT_NICE, false }, -#endif -#ifdef RLIMIT_RTPRIO - { "RLIMIT_RTPRIO", RLIMIT_RTPRIO, false }, -#endif - }; -#define ntests (sizeof (tests) / sizeof (tests[0])) - - -static int -do_test (void) -{ - int status = 0; - - for (int i = 0; i < ntests; ++i) - { - bool this_ok = true; - - struct rlimit r; - int res = getrlimit (tests[i].resource, &r); - if (res == -1) - { - if (errno == EINVAL) - { - if (tests[i].required) - { - printf ("limit %s expectedly not available for getrlimit\n", - tests[i].name); - status = 1; - this_ok = false; - } - } - else - { - printf ("getrlimit for %s returned unexpected error: %m\n", - tests[i].name); - status = 1; - this_ok = false; - } - } - - struct rlimit64 r64; - res = getrlimit64 (tests[i].resource, &r64); - if (res == -1) - { - if (errno == EINVAL) - { - if (tests[i].required) - { - printf ("limit %s expectedly not available for getrlimit64" - "\n", tests[i].name); - status = 1; - this_ok = false; - } - } - else - { - printf ("getrlimit64 for %s returned unexpected error: %m\n", - tests[i].name); - status = 1; - this_ok = false; - } - } - - if (this_ok) - printf ("limit %s OK\n", tests[i].name); - } - - return status; -} - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" diff --git a/resource/ulimit.c b/resource/ulimit.c deleted file mode 100644 index cc74054..0000000 --- a/resource/ulimit.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (C) 1991, 1996, 1997 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> - -/* Function depends on CMD: - 1 = Return the limit on the size of a file, in units of 512 bytes. - 2 = Set the limit on the size of a file to NEWLIMIT. Only the - super-user can increase the limit. - 3 = Return the maximum possible address of the data segment. - 4 = Return the maximum number of files that the calling process - can open. - Returns -1 on errors. */ -long int -__ulimit (int cmd, ...) -{ - __set_errno (ENOSYS); - return -1; -} -weak_alias (__ulimit, ulimit) - -stub_warning (ulimit) -#include <stub-tag.h> diff --git a/resource/vlimit.c b/resource/vlimit.c deleted file mode 100644 index 03d89f4..0000000 --- a/resource/vlimit.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright (C) 1991, 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. */ - -/* This is generic in the sense that it will work with the BSD, SYSV, - or stub versions of getrlimit. Separate versions could be written - for efficiency, but it's probably not worth it. */ - -#include <sys/vlimit.h> -#include <sys/resource.h> -#include <errno.h> - -/* Set the soft limit for RESOURCE to be VALUE. - Returns 0 for success, -1 for failure. */ -int -vlimit (resource, value) - enum __vlimit_resource resource; - int value; -{ - if (resource >= LIM_CPU && resource <= LIM_MAXRSS) - { - /* The rlimit codes happen to each be one less - than the corresponding vlimit codes. */ - enum __rlimit_resource rlimit_res = - (enum __rlimit_resource) ((int) resource - 1); - struct rlimit lims; - - if (__getrlimit (rlimit_res, &lims) < 0) - return -1; - - lims.rlim_cur = value; - return __setrlimit (rlimit_res, &lims); - } - - __set_errno (EINVAL); - return -1; -} diff --git a/resource/vtimes.c b/resource/vtimes.c deleted file mode 100644 index 37dc01b..0000000 --- a/resource/vtimes.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (C) 1991, 1997, 1998 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 <stddef.h> -#include <sys/vtimes.h> -#include <sys/resource.h> - -/* Return the number of 1/VTIMES_UNITS_PER_SECOND-second - units in the `struct timeval' TV. */ -#define TIMEVAL_TO_VTIMES(tv) \ - ((tv.tv_sec * VTIMES_UNITS_PER_SECOND) + \ - (tv.tv_usec * VTIMES_UNITS_PER_SECOND / 1000000)) - -/* If VT is not NULL, write statistics for WHO into *VT. - Return 0 for success, -1 for failure. */ -static int -vtimes_one (struct vtimes *vt, enum __rusage_who who) -{ - if (vt != NULL) - { - struct rusage usage; - - if (__getrusage (who, &usage) < 0) - return -1; - - vt->vm_utime = TIMEVAL_TO_VTIMES (usage.ru_utime); - vt->vm_stime = TIMEVAL_TO_VTIMES (usage.ru_stime); - vt->vm_idsrss = usage.ru_idrss + usage.ru_isrss; - vt->vm_majflt = usage.ru_majflt; - vt->vm_minflt = usage.ru_minflt; - vt->vm_nswap = usage.ru_nswap; - vt->vm_inblk = usage.ru_inblock; - vt->vm_oublk = usage.ru_oublock; - } - return 0; -} - -/* If CURRENT is not NULL, write statistics for the current process into - *CURRENT. If CHILD is not NULL, write statistics for all terminated child - processes into *CHILD. Returns 0 for success, -1 for failure. */ -int -vtimes (current, child) - struct vtimes *current; - struct vtimes *child; -{ - if (vtimes_one (current, RUSAGE_SELF) < 0 - || vtimes_one (child, RUSAGE_CHILDREN) < 0) - return -1; - return 0; -} |