diff options
author | Roland McGrath <roland@hack.frob.com> | 2012-08-17 09:55:17 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2012-08-17 09:55:17 -0700 |
commit | e66a42f57fd20d1c7bbdc5f7937831d13bcf709b (patch) | |
tree | 6aba9ac56780e910339abe7a18ccb80f466ee3d0 | |
parent | b7c08a66f6b8855ce93743a0f4587667301fa8f9 (diff) | |
download | glibc-e66a42f57fd20d1c7bbdc5f7937831d13bcf709b.tar glibc-e66a42f57fd20d1c7bbdc5f7937831d13bcf709b.tar.gz glibc-e66a42f57fd20d1c7bbdc5f7937831d13bcf709b.tar.bz2 glibc-e66a42f57fd20d1c7bbdc5f7937831d13bcf709b.zip |
Split sys/param.h out into common file and sysdeps bits/param.h file.
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | bits/param.h | 33 | ||||
-rw-r--r-- | include/sys/param.h | 1 | ||||
-rw-r--r-- | misc/Makefile | 3 | ||||
-rw-r--r-- | misc/sys/param.h (renamed from sysdeps/generic/sys/param.h) | 77 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/param.h (renamed from sysdeps/mach/hurd/sys/param.h) | 59 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/param.h | 42 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/param.h | 82 |
8 files changed, 144 insertions, 163 deletions
@@ -1,5 +1,15 @@ 2012-08-17 Roland McGrath <roland@hack.frob.com> + * bits/param.h: New file. + * misc/sys/param.h: New file. + * include/sys/param.h: New file. + * misc/Makefile (headers): Add bits/param.h. + * sysdeps/generic/sys/param.h: File removed. + * sysdeps/unix/sysv/linux/bits/param.h: New file. + * sysdeps/unix/sysv/linux/sys/param.h: File removed. + * sysdeps/mach/hurd/bits/param.h: New file. + * sysdeps/mach/hurd/sys/param.h: New file. + * elf/dl-close.c (_dl_close_worker): Add a cast and a comment to the last change. diff --git a/bits/param.h b/bits/param.h new file mode 100644 index 0000000000..8a2bc71de6 --- /dev/null +++ b/bits/param.h @@ -0,0 +1,33 @@ +/* Old-style Unix parameters and limits. Stub version. + Copyright (C) 1995-2012 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, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_PARAM_H +# error "Never use <bits/param.h> directly; include <sys/param.h> instead." +#endif + +/* This header is expected to define a few particular macros. + + The traditional BSD macros that correspond directly to POSIX <limits.h> + macros don't need to be defined here if <bits/local_lim.h> defines the + POSIX limit macro, as the common <sys/param.h> code will define each + traditional name to its POSIX name if available. + + This file should define at least: + + EXEC_PAGESIZE +*/ diff --git a/include/sys/param.h b/include/sys/param.h new file mode 100644 index 0000000000..7a0cfb1f24 --- /dev/null +++ b/include/sys/param.h @@ -0,0 +1 @@ +#include <misc/sys/param.h> diff --git a/misc/Makefile b/misc/Makefile index d35654cc3f..e5e9b9f152 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -25,7 +25,8 @@ headers := sys/uio.h bits/uio.h sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \ sys/ptrace.h sys/file.h sys/dir.h sys/cdefs.h \ ar.h a.out.h libgen.h stab.h bits/stab.def sgtty.h \ ttyent.h paths.h sys/reboot.h \ - sys/mman.h sys/param.h fstab.h mntent.h search.h err.h error.h \ + sys/mman.h sys/param.h bits/param.h \ + fstab.h mntent.h search.h err.h error.h \ sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \ sys/select.h ustat.h sys/ustat.h bits/ustat.h sys/sysinfo.h \ regexp.h bits/select.h bits/mman.h sys/xattr.h \ diff --git a/sysdeps/generic/sys/param.h b/misc/sys/param.h index c829e9767a..0eafd680da 100644 --- a/sysdeps/generic/sys/param.h +++ b/misc/sys/param.h @@ -1,5 +1,5 @@ -/* Compatibility header for old-style Unix parameters and limits. Stub version. - Copyright (C) 2012 Free Software Foundation, Inc. +/* Compatibility header for old-style Unix parameters and limits. + Copyright (C) 1995-2012 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 @@ -17,40 +17,61 @@ <http://www.gnu.org/licenses/>. */ #ifndef _SYS_PARAM_H - #define _SYS_PARAM_H 1 -#include <features.h> #define __need_NULL #include <stddef.h> #include <sys/types.h> -#include <errno.h> -#include <signal.h> -#include <endian.h> #include <limits.h> +#include <endian.h> /* Define BYTE_ORDER et al. */ +#include <signal.h> /* Define NSIG. */ + +/* This file defines some things in system-specific ways. */ +#include <bits/param.h> + +/* BSD names for some <limits.h> values. */ -/* BSD names for some <limits.h> values. We do not define the BSD names - for the values which are not statically limited, such as NOFILE. */ +#define NBBY CHAR_BIT -#define NBBY CHAR_BIT -#ifdef NGROUPS_MAX -# define NGROUPS NGROUPS_MAX +#if !defined NGROUPS && defined NGROUPS_MAX +# define NGROUPS NGROUPS_MAX #endif -#ifdef SYMLOOP_MAX -# define MAXSYMLINKS SYMLOOP_MAX +#if !defined MAXSYMLINKS && defined SYMLOOP_MAX +# define MAXSYMLINKS SYMLOOP_MAX #endif -#define CANBSIZ MAX_CANON /* XXX ? */ - +#if !defined CANBSIZ && defined MAX_CANON +# define CANBSIZ MAX_CANON +#endif +#if !defined MAXPATHLEN && defined PATH_MAX +# define MAXPATHLEN PATH_MAX +#endif +#if !defined NOFILE && defined OPEN_MAX +# define NOFILE OPEN_MAX +#endif +#ifndef NCARGS +# ifdef ARG_MAX +# define NCARGS ARG_MAX +# else /* ARG_MAX is unlimited, but we define NCARGS for BSD programs that want to compare against some fixed limit. */ -#define NCARGS INT_MAX +# define NCARGS INT_MAX +# endif +#endif /* Magical constants. */ -#define NOGROUP 65535 /* Marker for empty group set member. */ -#define NODEV ((dev_t) -1) /* Non-existent device. */ +#ifndef NOGROUP +# define NOGROUP 65535 /* Marker for empty group set member. */ +#endif +#ifndef NODEV +# define NODEV ((dev_t) -1) /* Non-existent device. */ +#endif + + +/* Unit of `st_blocks'. */ +#define DEV_BSIZE 512 /* Bit map related macros. */ @@ -61,18 +82,20 @@ /* Macros for counting and rounding. */ #ifndef howmany -# define howmany(x, y) (((x)+((y)-1))/(y)) +# define howmany(x, y) (((x) + ((y) - 1)) / (y)) +#endif +#ifdef __GNUC__ +# define roundup(x, y) (__builtin_constant_p (y) && powerof2 (y) \ + ? (((x) + (y) - 1) & ~((y) - 1)) \ + : ((((x) + ((y) - 1)) / (y)) * (y))) +#else +# define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) #endif -#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) -#define powerof2(x) ((((x)-1)&(x))==0) +#define powerof2(x) ((((x) - 1) & (x)) == 0) /* Macros for min/max. */ #define MIN(a,b) (((a)<(b))?(a):(b)) #define MAX(a,b) (((a)>(b))?(a):(b)) -/* Unit of `st_blocks'. */ -#define DEV_BSIZE 512 - - -#endif /* sys/param.h */ +#endif /* sys/param.h */ diff --git a/sysdeps/mach/hurd/sys/param.h b/sysdeps/mach/hurd/bits/param.h index e58d5175bd..d52c1edcb6 100644 --- a/sysdeps/mach/hurd/sys/param.h +++ b/sysdeps/mach/hurd/bits/param.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1993-2012 Free Software Foundation, Inc. +/* Old-style Unix parameters and limits. Hurd version. + Copyright (C) 1993-2012 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 @@ -15,6 +16,10 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#ifndef _SYS_PARAM_H +# error "Never use <bits/param.h> directly; include <sys/param.h> instead." +#endif + /* This file is deprecated and is provided only for compatibility with Unix systems. It is unwise to include this file on programs which are intended only for GNU systems. @@ -52,24 +57,6 @@ */ -#ifndef _SYS_PARAM_H - -#define _SYS_PARAM_H 1 -#include <features.h> - -#define __need_NULL -#include <stddef.h> - -#include <sys/types.h> -#include <errno.h> -#include <signal.h> -#include <endian.h> -#include <limits.h> -#ifdef notyet -# include <ufs/param.h> -#endif - - /* What versions of BSD we are compatible with. */ #define BSD 199306 /* System version (year & month). */ #define BSD4_3 1 @@ -81,46 +68,12 @@ /* BSD names for some <limits.h> values. We do not define the BSD names for the values which are not statically limited, such as NOFILE. */ -#define NBBY CHAR_BIT -#define NGROUPS NGROUPS_MAX -#define CANBSIZ MAX_CANON /* XXX ? */ - -/* ARG_MAX is unlimited, but we define NCARGS for BSD programs that want to - compare against some fixed limit. */ -#define NCARGS INT_MAX /* There is nothing quite equivalent in GNU to Unix "mounts", but there is no limit on the number of simultaneously attached filesystems. */ #define NMOUNT INT_MAX -/* Magical constants. */ -#define NOGROUP 65535 /* Marker for empty group set member. */ -#define NODEV ((dev_t) -1) /* Non-existent device. */ - - -/* Bit map related macros. */ -#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY)) -#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) -#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY))) -#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) - -/* Macros for counting and rounding. */ -#ifndef howmany -# define howmany(x, y) (((x)+((y)-1))/(y)) -#endif -#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) -#define powerof2(x) ((((x)-1)&(x))==0) - -/* Macros for min/max. */ -#define MIN(a,b) (((a)<(b))?(a):(b)) -#define MAX(a,b) (((a)>(b))?(a):(b)) - - -/* Unit of `st_blocks'. */ -#define DEV_BSIZE 512 - - /* Scale factor for scaled integers used to count %cpu time and load avgs. The number of CPU `tick's that map to a unique `%age' can be expressed diff --git a/sysdeps/unix/sysv/linux/bits/param.h b/sysdeps/unix/sysv/linux/bits/param.h new file mode 100644 index 0000000000..36ca088e5a --- /dev/null +++ b/sysdeps/unix/sysv/linux/bits/param.h @@ -0,0 +1,42 @@ +/* Old-style Unix parameters and limits. Linux version. + Copyright (C) 1995-2012 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, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_PARAM_H +# error "Never use <bits/param.h> directly; include <sys/param.h> instead." +#endif + +#ifndef ARG_MAX +# define __undef_ARG_MAX +#endif + +#include <linux/limits.h> +#include <linux/param.h> + +/* The kernel headers define ARG_MAX. The value is wrong, though. */ +#ifdef __undef_ARG_MAX +# undef ARG_MAX +# undef __undef_ARG_MAX +#endif + +#define MAXSYMLINKS 20 + +/* The following are not really correct but it is a value we used for a + long time and which seems to be usable. People should not use NOFILE + and NCARGS anyway. */ +#define NOFILE 256 +#define NCARGS 131072 diff --git a/sysdeps/unix/sysv/linux/sys/param.h b/sysdeps/unix/sysv/linux/sys/param.h deleted file mode 100644 index c419b86408..0000000000 --- a/sysdeps/unix/sysv/linux/sys/param.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Copyright (C) 1995-1997,2000,2001,2003,2008,2011 - 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, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _SYS_PARAM_H -#define _SYS_PARAM_H 1 - -#ifndef ARG_MAX -# define __undef_ARG_MAX -#endif - -#include <limits.h> -#include <linux/limits.h> -#include <linux/param.h> - -/* The kernel headers defines ARG_MAX. The value is wrong, though. */ -#ifdef __undef_ARG_MAX -# undef ARG_MAX -# undef __undef_ARG_MAX -#endif - -/* BSD names for some <limits.h> values. */ - -#define NBBY CHAR_BIT -#ifndef NGROUPS -# define NGROUPS NGROUPS_MAX -#endif -#define MAXSYMLINKS 20 -#define CANBSIZ MAX_CANON -#define MAXPATHLEN PATH_MAX -/* The following are not really correct but it is a value we used for a - long time and which seems to be usable. People should not use NOFILE - and NCARGS anyway. */ -#define NOFILE 256 -#define NCARGS 131072 - - -#include <sys/types.h> - -/* Bit map related macros. */ -#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY)) -#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) -#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY))) -#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) - -/* Macros for counting and rounding. */ -#ifndef howmany -# define howmany(x, y) (((x) + ((y) - 1)) / (y)) -#endif -#ifdef __GNUC__ -# define roundup(x, y) (__builtin_constant_p (y) && powerof2 (y) \ - ? (((x) + (y) - 1) & ~((y) - 1)) \ - : ((((x) + ((y) - 1)) / (y)) * (y))) -#else -# define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) -#endif -#define powerof2(x) ((((x) - 1) & (x)) == 0) - -/* Macros for min/max. */ -#define MIN(a,b) (((a)<(b))?(a):(b)) -#define MAX(a,b) (((a)>(b))?(a):(b)) - - -/* Unit of `st_blocks'. */ -#define DEV_BSIZE 512 - - -#endif /* sys/param.h */ |