e6d2301878ae7978abfd86d6285b6a9e02bfa03a
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / sys / param.h
1 /* Copyright (C) 1995, 1996, 1997, 1998, 2008 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, write to the Free
16    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17    02111-1307 USA.  */
18
19 #ifndef _SYS_PARAM_H
20 #define _SYS_PARAM_H    1
21
22 #include <limits.h>
23 #include <features.h>
24
25 /* BSD names for some <limits.h> values.  */
26
27 #define NBBY            CHAR_BIT
28 #ifndef NGROUPS
29 # define NGROUPS                NGROUPS_MAX
30 #endif
31 #define MAXSYMLINKS     20
32 #define CANBSIZ         MAX_CANON
33 #define NCARGS          ARG_MAX
34 #define MAXPATHLEN      PATH_MAX
35 #define NOFILE          OPEN_MAX
36
37
38 #include <sys/types.h>
39
40 /* Bit map related macros.  */
41 #define setbit(a,i)     ((a)[(i)/NBBY] |= 1<<((i)%NBBY))
42 #define clrbit(a,i)     ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
43 #define isset(a,i)      ((a)[(i)/NBBY] & (1<<((i)%NBBY)))
44 #define isclr(a,i)      (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
45
46 /* Macros for counting and rounding.  */
47 #ifndef howmany
48 # define howmany(x, y)  (((x)+((y)-1))/(y))
49 #endif
50 #define roundup(x, y)   ((((x)+((y)-1))/(y))*(y))
51 #define powerof2(x)     ((((x)-1)&(x))==0)
52
53 /* Macros for min/max.  */
54 #ifndef MIN
55 # define MIN(a,b)       (((a)<(b))?(a):(b))
56 #endif
57 #ifndef MAX
58 # define MAX(a,b)       (((a)>(b))?(a):(b))
59 #endif
60
61 #define NODEV   (dev_t)-1
62
63 /* Unit of `st_blocks'.  */
64 #define DEV_BSIZE       512
65
66 /* Maximum hostname length.  */
67 #define MAXHOSTNAMELEN  256
68
69 #include <unistd.h>
70
71 #define PAGESIZE        sysconf(_SC_PAGESIZE)
72 #define MAXPID          (pid_t)sysconf(_SC_MAXPID)
73 #define MAXEPHUID       (uid_t)sysconf(_SC_EPHID_MAX)
74 #define MAXNAMELEN      256
75 #define TYPICALMAXPATHLEN       64
76 #define MAXLINKNAMELEN  32
77
78 #define UID_NOBODY      60001
79 #define GID_NOBODY      UID_NOBODY
80 #define GID_SYS         3
81 #define UID_DLADM       15
82 #define MAXUID          2147483647
83
84 #define NS_PACKETSZ     512
85 #define NS_MAXDNAME     1025
86 #define NS_MAXMSG       65535
87 #define NS_MAXCDNAME    255
88 #define NS_MAXLABEL     63
89 #define NS_HFIXEDSZ     12
90 #define NS_QFIXEDSZ     4
91 #define NS_RRFIXEDSZ    10
92 #define NS_INT32SZ      4
93 #define NS_INT16SZ      2
94 #define NS_INT8SZ       1
95 #define NS_INADDRSZ     4
96 #define NS_IN6ADDRSZ    16
97 #define NS_CMPRSFLGS    0xc0
98 #define NS_DEFAULTPORT  53
99
100 #define NGROUPS_UMIN    0
101 #define NGROUPS_UMAX    32
102 #define NGROUPS_MAX_DEFAULT     16
103
104 #include <sys/isa_defs.h>
105
106 #define MAXBSIZE        8192
107 #define DEV_BSIZE       512
108 #define DEV_BSHIFT      9
109 #define MAXFRAG         8
110 #ifdef  _LP64
111 # define MAXOFF_T       0x7fffffffffffffffl
112 # define MAXOFFSET_T    0x7fffffffffffffffl
113 #else
114 # define MAXOFF_T       0x7fffffffl
115 # define MAXOFFSET_T    0x7fffffffffffffffLL
116 #endif
117
118 #ifdef _LITTLE_ENDIAN
119 # define lobyte(X)      (((unsigned char *)&(X))[0])
120 # define hibyte(X)      (((unsigned char *)&(X))[1])
121 # define loword(X)      (((ushort_t *)&(X))[0])
122 # define hiword(X)      (((ushort_t *)&(X))[1])
123 #endif
124 #ifdef _BIG_ENDIAN
125 # define lobyte(X)      (((unsigned char *)&(X))[1])
126 # define hibyte(X)      (((unsigned char *)&(X))[0])
127 # define loword(X)      (((ushort_t *)&(X))[1])
128 # define hiword(X)      (((ushort_t *)&(X))[0])
129 #endif
130
131 #ifndef __USE_XOPEN
132 # define NZERO  20
133 #endif
134
135 #endif  /* sys/param.h */