1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

Split sys/param.h out into common file and sysdeps bits/param.h file.

This commit is contained in:
Roland McGrath
2012-08-17 09:55:17 -07:00
parent b7c08a66f6
commit e66a42f57f
8 changed files with 144 additions and 163 deletions

View File

@ -1,5 +1,15 @@
2012-08-17 Roland McGrath <roland@hack.frob.com> 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 * elf/dl-close.c (_dl_close_worker): Add a cast and a comment to the
last change. last change.

33
bits/param.h Normal file
View File

@ -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
*/

1
include/sys/param.h Normal file
View File

@ -0,0 +1 @@
#include <misc/sys/param.h>

View File

@ -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 \ 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 \ ar.h a.out.h libgen.h stab.h bits/stab.def sgtty.h \
ttyent.h paths.h sys/reboot.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/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 \ 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 \ regexp.h bits/select.h bits/mman.h sys/xattr.h \

View File

@ -1,5 +1,5 @@
/* Compatibility header for old-style Unix parameters and limits. Stub version. /* Compatibility header for old-style Unix parameters and limits.
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 1995-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -17,40 +17,61 @@
<http://www.gnu.org/licenses/>. */ <http://www.gnu.org/licenses/>. */
#ifndef _SYS_PARAM_H #ifndef _SYS_PARAM_H
#define _SYS_PARAM_H 1 #define _SYS_PARAM_H 1
#include <features.h>
#define __need_NULL #define __need_NULL
#include <stddef.h> #include <stddef.h>
#include <sys/types.h> #include <sys/types.h>
#include <errno.h>
#include <signal.h>
#include <endian.h>
#include <limits.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. We do not define the BSD names /* BSD names for some <limits.h> values. */
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 #endif
#ifdef SYMLOOP_MAX #if !defined MAXSYMLINKS && defined SYMLOOP_MAX
# define MAXSYMLINKS SYMLOOP_MAX # define MAXSYMLINKS SYMLOOP_MAX
#endif #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 /* ARG_MAX is unlimited, but we define NCARGS for BSD programs that want to
compare against some fixed limit. */ compare against some fixed limit. */
#define NCARGS INT_MAX # define NCARGS INT_MAX
# endif
#endif
/* Magical constants. */ /* Magical constants. */
#define NOGROUP 65535 /* Marker for empty group set member. */ #ifndef NOGROUP
#define NODEV ((dev_t) -1) /* Non-existent device. */ # 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. */ /* Bit map related macros. */
@ -61,18 +82,20 @@
/* Macros for counting and rounding. */ /* Macros for counting and rounding. */
#ifndef howmany #ifndef howmany
# define howmany(x, y) (((x)+((y)-1))/(y)) # define howmany(x, y) (((x) + ((y) - 1)) / (y))
#endif #endif
#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) #ifdef __GNUC__
#define powerof2(x) ((((x)-1)&(x))==0) # 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. */ /* Macros for min/max. */
#define MIN(a,b) (((a)<(b))?(a):(b)) #define MIN(a,b) (((a)<(b))?(a):(b))
#define MAX(a,b) (((a)>(b))?(a):(b)) #define MAX(a,b) (((a)>(b))?(a):(b))
/* Unit of `st_blocks'. */ #endif /* sys/param.h */
#define DEV_BSIZE 512
#endif /* sys/param.h */

View File

@ -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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or 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 License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */ <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 /* This file is deprecated and is provided only for compatibility with
Unix systems. It is unwise to include this file on programs which Unix systems. It is unwise to include this file on programs which
are intended only for GNU systems. 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. */ /* What versions of BSD we are compatible with. */
#define BSD 199306 /* System version (year & month). */ #define BSD 199306 /* System version (year & month). */
#define BSD4_3 1 #define BSD4_3 1
@ -81,46 +68,12 @@
/* BSD names for some <limits.h> values. We do not define the BSD names /* 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. */ 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 /* There is nothing quite equivalent in GNU to Unix "mounts", but there is
no limit on the number of simultaneously attached filesystems. */ no limit on the number of simultaneously attached filesystems. */
#define NMOUNT INT_MAX #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. /* 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 The number of CPU `tick's that map to a unique `%age' can be expressed

View File

@ -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

View File

@ -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 */