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 /misc/sys/param.h | |
parent | b7c08a66f6b8855ce93743a0f4587667301fa8f9 (diff) | |
download | glibc-e66a42f57fd20d1c7bbdc5f7937831d13bcf709b.zip glibc-e66a42f57fd20d1c7bbdc5f7937831d13bcf709b.tar.gz glibc-e66a42f57fd20d1c7bbdc5f7937831d13bcf709b.tar.bz2 |
Split sys/param.h out into common file and sysdeps bits/param.h file.
Diffstat (limited to 'misc/sys/param.h')
-rw-r--r-- | misc/sys/param.h | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/misc/sys/param.h b/misc/sys/param.h new file mode 100644 index 0000000..0eafd68 --- /dev/null +++ b/misc/sys/param.h @@ -0,0 +1,101 @@ +/* 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 + 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 + +#define __need_NULL +#include <stddef.h> + +#include <sys/types.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. */ + +#define NBBY CHAR_BIT + +#if !defined NGROUPS && defined NGROUPS_MAX +# define NGROUPS NGROUPS_MAX +#endif +#if !defined MAXSYMLINKS && defined SYMLOOP_MAX +# define MAXSYMLINKS SYMLOOP_MAX +#endif +#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 +# endif +#endif + + +/* Magical constants. */ +#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. */ +#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)) + + +#endif /* sys/param.h */ |