From e66a42f57fd20d1c7bbdc5f7937831d13bcf709b Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 17 Aug 2012 09:55:17 -0700 Subject: [PATCH] Split sys/param.h out into common file and sysdeps bits/param.h file. --- ChangeLog | 10 +++ bits/param.h | 33 ++++++++++ include/sys/param.h | 1 + misc/Makefile | 3 +- {sysdeps/generic => misc}/sys/param.h | 77 +++++++++++++++-------- sysdeps/mach/hurd/{sys => bits}/param.h | 59 ++---------------- sysdeps/unix/sysv/linux/bits/param.h | 42 +++++++++++++ sysdeps/unix/sysv/linux/sys/param.h | 82 ------------------------- 8 files changed, 144 insertions(+), 163 deletions(-) create mode 100644 bits/param.h create mode 100644 include/sys/param.h rename {sysdeps/generic => misc}/sys/param.h (52%) rename sysdeps/mach/hurd/{sys => bits}/param.h (73%) create mode 100644 sysdeps/unix/sysv/linux/bits/param.h delete mode 100644 sysdeps/unix/sysv/linux/sys/param.h diff --git a/ChangeLog b/ChangeLog index 672409ef0b..f050559d83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2012-08-17 Roland McGrath + * 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 + . */ + +#ifndef _SYS_PARAM_H +# error "Never use directly; include instead." +#endif + +/* This header is expected to define a few particular macros. + + The traditional BSD macros that correspond directly to POSIX + macros don't need to be defined here if defines the + POSIX limit macro, as the common 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 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 similarity index 52% rename from sysdeps/generic/sys/param.h rename to 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 @@ . */ #ifndef _SYS_PARAM_H - #define _SYS_PARAM_H 1 -#include #define __need_NULL #include #include -#include -#include -#include #include +#include /* Define BYTE_ORDER et al. */ +#include /* Define NSIG. */ + +/* This file defines some things in system-specific ways. */ +#include + +/* BSD names for some values. */ -/* BSD names for some 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 similarity index 73% rename from sysdeps/mach/hurd/sys/param.h rename to 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 . */ +#ifndef _SYS_PARAM_H +# error "Never use directly; include 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 - -#define __need_NULL -#include - -#include -#include -#include -#include -#include -#ifdef notyet -# include -#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 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 + . */ + +#ifndef _SYS_PARAM_H +# error "Never use directly; include instead." +#endif + +#ifndef ARG_MAX +# define __undef_ARG_MAX +#endif + +#include +#include + +/* 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 - . */ - -#ifndef _SYS_PARAM_H -#define _SYS_PARAM_H 1 - -#ifndef ARG_MAX -# define __undef_ARG_MAX -#endif - -#include -#include -#include - -/* 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 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 - -/* 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 */ -- 2.43.5