~ubuntu-branches/debian/jessie/ufsutils/jessie

« back to all changes in this revision

Viewing changes to .pc/00_param.patch/sys/sys/param.h

  • Committer: Bazaar Package Importer
  • Author(s): Guillem Jover, Robert Millan, Guillem Jover, Peter Pentchev
  • Date: 2011-05-31 03:50:05 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20110531035005-wyiyk25p99ivd0k0
Tags: 8.2-1
[ Robert Millan ]
* Set ufsutils-udeb to kfreebsd-any.

[ Guillem Jover ]
* New upstream version (based on FreeBSD 8.2)
* Now using Standards-Version 3.9.2 (no changes needed).
* Switch to source format “3.0 (quilt)”.
  - Remove quilt from Build-Depends.
  - Remove patch target in debian/rules.
  - Remove now unneeded README.source.
  - Refresh all patches.
* Reorganize source code:
  - Switch from debian/upstream.sh to debian/rules get-orig-source target.
  - Switch from CVS to Subversion to retrieve the source code.
  - Use the same source layout as upstream (no more relocations),
    i.e. lib/, sbin/, sys/sys, sys/ufs.
  - Move libport/ to port/.
  - Merge libdisklabel/ into port/.
* Remove unneeded linking against libtermcap, thus removing the need for
  ncurses.
* Add an empty debian/watch file explaining that there's no packaged
  upstream releases. Suggested by Peter Pentchev.
* Update CVS to Subversion reference to upstream source code in
  debian/copyright.
* Remove unused lib variable from debian/rules.
* Use dpkg-buildflags to set CPPFLAGS, CFLAGS and LDFLAGS.
  Based on a patch by Peter Pentchev.
* Remove bogus reference to BSD license in /usr/share/common-licenses.
* Always set -I../../sys, even on GNU/kFreeBSD systems.

[ Peter Pentchev ]
* Remove duplicate section “utils” from ufsutils binary package.
* Remove XC- prefix from Package-Type.
* Honour CPPFLAGS and LDFLAGS and do not link with CFLAGS.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*-
 
2
 * Copyright (c) 1982, 1986, 1989, 1993
 
3
 *      The Regents of the University of California.  All rights reserved.
 
4
 * (c) UNIX System Laboratories, Inc.
 
5
 * All or some portions of this file are derived from material licensed
 
6
 * to the University of California by American Telephone and Telegraph
 
7
 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
 
8
 * the permission of UNIX System Laboratories, Inc.
 
9
 *
 
10
 * Redistribution and use in source and binary forms, with or without
 
11
 * modification, are permitted provided that the following conditions
 
12
 * are met:
 
13
 * 1. Redistributions of source code must retain the above copyright
 
14
 *    notice, this list of conditions and the following disclaimer.
 
15
 * 2. Redistributions in binary form must reproduce the above copyright
 
16
 *    notice, this list of conditions and the following disclaimer in the
 
17
 *    documentation and/or other materials provided with the distribution.
 
18
 * 4. Neither the name of the University nor the names of its contributors
 
19
 *    may be used to endorse or promote products derived from this software
 
20
 *    without specific prior written permission.
 
21
 *
 
22
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 
23
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
24
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 
25
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 
26
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 
27
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 
28
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 
29
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 
30
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 
31
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 
32
 * SUCH DAMAGE.
 
33
 *
 
34
 *      @(#)param.h     8.3 (Berkeley) 4/4/95
 
35
 * $FreeBSD$
 
36
 */
 
37
 
 
38
#ifndef _SYS_PARAM_H_
 
39
#define _SYS_PARAM_H_
 
40
 
 
41
#include <sys/_null.h>
 
42
 
 
43
#define BSD     199506          /* System version (year & month). */
 
44
#define BSD4_3  1
 
45
#define BSD4_4  1
 
46
 
 
47
/* 
 
48
 * __FreeBSD_version numbers are documented in the Porter's Handbook.
 
49
 * If you bump the version for any reason, you should update the documentation
 
50
 * there.
 
51
 * Currently this lives here:
 
52
 *
 
53
 *      doc/en_US.ISO8859-1/books/porters-handbook/book.sgml
 
54
 *
 
55
 * scheme is:  <major><two digit minor>Rxx
 
56
 *              'R' is in the range 0 to 4 if this is a release branch or
 
57
 *              x.0-CURRENT before RELENG_*_0 is created, otherwise 'R' is
 
58
 *              in the range 5 to 9.
 
59
 */
 
60
#undef __FreeBSD_version
 
61
#define __FreeBSD_version 802000        /* Master, propagated to newvers */
 
62
 
 
63
#ifdef _KERNEL
 
64
#define P_OSREL_SIGSEGV         700004
 
65
#define P_OSREL_MAP_ANON        800104
 
66
#endif
 
67
 
 
68
#ifndef LOCORE
 
69
#include <sys/types.h>
 
70
#endif
 
71
 
 
72
/*
 
73
 * Machine-independent constants (some used in following include files).
 
74
 * Redefined constants are from POSIX 1003.1 limits file.
 
75
 *
 
76
 * MAXCOMLEN should be >= sizeof(ac_comm) (see <acct.h>)
 
77
 * MAXLOGNAME should be == UT_NAMESIZE+1 (see <utmp.h>)
 
78
 */
 
79
#include <sys/syslimits.h>
 
80
 
 
81
#define MAXCOMLEN       19              /* max command name remembered */
 
82
#define MAXINTERP       32              /* max interpreter file name length */
 
83
#define MAXLOGNAME      17              /* max login name length (incl. NUL) */
 
84
#define MAXUPRC         CHILD_MAX       /* max simultaneous processes */
 
85
#define NCARGS          ARG_MAX         /* max bytes for an exec function */
 
86
#define NGROUPS         (NGROUPS_MAX+1) /* max number groups */
 
87
#define NOFILE          OPEN_MAX        /* max open files per process */
 
88
#define NOGROUP         65535           /* marker for empty group set member */
 
89
#define MAXHOSTNAMELEN  256             /* max hostname size */
 
90
#define SPECNAMELEN     63              /* max length of devicename */
 
91
 
 
92
/* More types and definitions used throughout the kernel. */
 
93
#ifdef _KERNEL
 
94
#include <sys/cdefs.h>
 
95
#include <sys/errno.h>
 
96
#ifndef LOCORE
 
97
#include <sys/time.h>
 
98
#include <sys/priority.h>
 
99
#endif
 
100
 
 
101
#ifndef FALSE
 
102
#define FALSE   0
 
103
#endif
 
104
#ifndef TRUE
 
105
#define TRUE    1
 
106
#endif
 
107
#endif
 
108
 
 
109
#ifndef _KERNEL
 
110
/* Signals. */
 
111
#include <sys/signal.h>
 
112
#endif
 
113
 
 
114
/* Machine type dependent parameters. */
 
115
#include <machine/param.h>
 
116
#ifndef _KERNEL
 
117
#include <sys/limits.h>
 
118
#endif
 
119
 
 
120
#ifndef _NO_NAMESPACE_POLLUTION
 
121
 
 
122
#ifndef DEV_BSHIFT
 
123
#define DEV_BSHIFT      9               /* log2(DEV_BSIZE) */
 
124
#endif
 
125
#define DEV_BSIZE       (1<<DEV_BSHIFT)
 
126
 
 
127
#ifndef BLKDEV_IOSIZE
 
128
#define BLKDEV_IOSIZE  PAGE_SIZE        /* default block device I/O size */
 
129
#endif
 
130
#ifndef DFLTPHYS
 
131
#define DFLTPHYS        (64 * 1024)     /* default max raw I/O transfer size */
 
132
#endif
 
133
#ifndef MAXPHYS
 
134
#define MAXPHYS         (128 * 1024)    /* max raw I/O transfer size */
 
135
#endif
 
136
#ifndef MAXDUMPPGS
 
137
#define MAXDUMPPGS      (DFLTPHYS/PAGE_SIZE)
 
138
#endif
 
139
 
 
140
/*
 
141
 * Constants related to network buffer management.
 
142
 * MCLBYTES must be no larger than PAGE_SIZE.
 
143
 */
 
144
#ifndef MSIZE
 
145
#define MSIZE           256             /* size of an mbuf */
 
146
#endif  /* MSIZE */
 
147
 
 
148
#ifndef MCLSHIFT
 
149
#define MCLSHIFT        11              /* convert bytes to mbuf clusters */
 
150
#endif  /* MCLSHIFT */
 
151
 
 
152
#define MCLBYTES        (1 << MCLSHIFT) /* size of an mbuf cluster */
 
153
 
 
154
#define MJUMPAGESIZE    PAGE_SIZE       /* jumbo cluster 4k */
 
155
#define MJUM9BYTES      (9 * 1024)      /* jumbo cluster 9k */
 
156
#define MJUM16BYTES     (16 * 1024)     /* jumbo cluster 16k */
 
157
 
 
158
/*
 
159
 * Some macros for units conversion
 
160
 */
 
161
 
 
162
/* clicks to bytes */
 
163
#ifndef ctob
 
164
#define ctob(x) ((x)<<PAGE_SHIFT)
 
165
#endif
 
166
 
 
167
/* bytes to clicks */
 
168
#ifndef btoc
 
169
#define btoc(x) (((vm_offset_t)(x)+PAGE_MASK)>>PAGE_SHIFT)
 
170
#endif
 
171
 
 
172
/*
 
173
 * btodb() is messy and perhaps slow because `bytes' may be an off_t.  We
 
174
 * want to shift an unsigned type to avoid sign extension and we don't
 
175
 * want to widen `bytes' unnecessarily.  Assume that the result fits in
 
176
 * a daddr_t.
 
177
 */
 
178
#ifndef btodb
 
179
#define btodb(bytes)                    /* calculates (bytes / DEV_BSIZE) */ \
 
180
        (sizeof (bytes) > sizeof(long) \
 
181
         ? (daddr_t)((unsigned long long)(bytes) >> DEV_BSHIFT) \
 
182
         : (daddr_t)((unsigned long)(bytes) >> DEV_BSHIFT))
 
183
#endif
 
184
 
 
185
#ifndef dbtob
 
186
#define dbtob(db)                       /* calculates (db * DEV_BSIZE) */ \
 
187
        ((off_t)(db) << DEV_BSHIFT)
 
188
#endif
 
189
 
 
190
#endif /* _NO_NAMESPACE_POLLUTION */
 
191
 
 
192
#define PRIMASK 0x0ff
 
193
#define PCATCH  0x100           /* OR'd with pri for tsleep to check signals */
 
194
#define PDROP   0x200   /* OR'd with pri to stop re-entry of interlock mutex */
 
195
#define PBDRY   0x400   /* for PCATCH stop is done on the user boundary */
 
196
 
 
197
#define NZERO   0               /* default "nice" */
 
198
 
 
199
#define NBBY    8               /* number of bits in a byte */
 
200
#define NBPW    sizeof(int)     /* number of bytes per word (integer) */
 
201
 
 
202
#define CMASK   022             /* default file mask: S_IWGRP|S_IWOTH */
 
203
 
 
204
#define NODEV   (dev_t)(-1)     /* non-existent device */
 
205
 
 
206
/*
 
207
 * File system parameters and macros.
 
208
 *
 
209
 * MAXBSIZE -   Filesystems are made out of blocks of at most MAXBSIZE bytes
 
210
 *              per block.  MAXBSIZE may be made larger without effecting
 
211
 *              any existing filesystems as long as it does not exceed MAXPHYS,
 
212
 *              and may be made smaller at the risk of not being able to use
 
213
 *              filesystems which require a block size exceeding MAXBSIZE.
 
214
 *
 
215
 * BKVASIZE -   Nominal buffer space per buffer, in bytes.  BKVASIZE is the
 
216
 *              minimum KVM memory reservation the kernel is willing to make.
 
217
 *              Filesystems can of course request smaller chunks.  Actual 
 
218
 *              backing memory uses a chunk size of a page (PAGE_SIZE).
 
219
 *
 
220
 *              If you make BKVASIZE too small you risk seriously fragmenting
 
221
 *              the buffer KVM map which may slow things down a bit.  If you
 
222
 *              make it too big the kernel will not be able to optimally use 
 
223
 *              the KVM memory reserved for the buffer cache and will wind 
 
224
 *              up with too-few buffers.
 
225
 *
 
226
 *              The default is 16384, roughly 2x the block size used by a
 
227
 *              normal UFS filesystem.
 
228
 */
 
229
#define MAXBSIZE        65536   /* must be power of 2 */
 
230
#define BKVASIZE        16384   /* must be power of 2 */
 
231
#define BKVAMASK        (BKVASIZE-1)
 
232
 
 
233
/*
 
234
 * MAXPATHLEN defines the longest permissible path length after expanding
 
235
 * symbolic links. It is used to allocate a temporary buffer from the buffer
 
236
 * pool in which to do the name expansion, hence should be a power of two,
 
237
 * and must be less than or equal to MAXBSIZE.  MAXSYMLINKS defines the
 
238
 * maximum number of symbolic links that may be expanded in a path name.
 
239
 * It should be set high enough to allow all legitimate uses, but halt
 
240
 * infinite loops reasonably quickly.
 
241
 */
 
242
#define MAXPATHLEN      PATH_MAX
 
243
#define MAXSYMLINKS     32
 
244
 
 
245
/* Bit map related macros. */
 
246
#define setbit(a,i)     (((unsigned char *)(a))[(i)/NBBY] |= 1<<((i)%NBBY))
 
247
#define clrbit(a,i)     (((unsigned char *)(a))[(i)/NBBY] &= ~(1<<((i)%NBBY)))
 
248
#define isset(a,i)                                                      \
 
249
        (((const unsigned char *)(a))[(i)/NBBY] & (1<<((i)%NBBY)))
 
250
#define isclr(a,i)                                                      \
 
251
        ((((const unsigned char *)(a))[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
 
252
 
 
253
/* Macros for counting and rounding. */
 
254
#ifndef howmany
 
255
#define howmany(x, y)   (((x)+((y)-1))/(y))
 
256
#endif
 
257
#define rounddown(x, y) (((x)/(y))*(y))
 
258
#define roundup(x, y)   ((((x)+((y)-1))/(y))*(y))  /* to any y */
 
259
#define roundup2(x, y)  (((x)+((y)-1))&(~((y)-1))) /* if y is powers of two */
 
260
#define powerof2(x)     ((((x)-1)&(x))==0)
 
261
 
 
262
/* Macros for min/max. */
 
263
#define MIN(a,b) (((a)<(b))?(a):(b))
 
264
#define MAX(a,b) (((a)>(b))?(a):(b))
 
265
 
 
266
#ifdef _KERNEL
 
267
/*
 
268
 * Basic byte order function prototypes for non-inline functions.
 
269
 */
 
270
#ifndef LOCORE
 
271
#ifndef _BYTEORDER_PROTOTYPED
 
272
#define _BYTEORDER_PROTOTYPED
 
273
__BEGIN_DECLS
 
274
__uint32_t       htonl(__uint32_t);
 
275
__uint16_t       htons(__uint16_t);
 
276
__uint32_t       ntohl(__uint32_t);
 
277
__uint16_t       ntohs(__uint16_t);
 
278
__END_DECLS
 
279
#endif
 
280
#endif
 
281
 
 
282
#ifndef lint
 
283
#ifndef _BYTEORDER_FUNC_DEFINED
 
284
#define _BYTEORDER_FUNC_DEFINED
 
285
#define htonl(x)        __htonl(x)
 
286
#define htons(x)        __htons(x)
 
287
#define ntohl(x)        __ntohl(x)
 
288
#define ntohs(x)        __ntohs(x)
 
289
#endif /* !_BYTEORDER_FUNC_DEFINED */
 
290
#endif /* lint */
 
291
#endif /* _KERNEL */
 
292
 
 
293
/*
 
294
 * Scale factor for scaled integers used to count %cpu time and load avgs.
 
295
 *
 
296
 * The number of CPU `tick's that map to a unique `%age' can be expressed
 
297
 * by the formula (1 / (2 ^ (FSHIFT - 11))).  The maximum load average that
 
298
 * can be calculated (assuming 32 bits) can be closely approximated using
 
299
 * the formula (2 ^ (2 * (16 - FSHIFT))) for (FSHIFT < 15).
 
300
 *
 
301
 * For the scheduler to maintain a 1:1 mapping of CPU `tick' to `%age',
 
302
 * FSHIFT must be at least 11; this gives us a maximum load avg of ~1024.
 
303
 */
 
304
#define FSHIFT  11              /* bits to right of fixed binary point */
 
305
#define FSCALE  (1<<FSHIFT)
 
306
 
 
307
#define dbtoc(db)                       /* calculates devblks to pages */ \
 
308
        ((db + (ctodb(1) - 1)) >> (PAGE_SHIFT - DEV_BSHIFT))
 
309
 
 
310
#define ctodb(db)                       /* calculates pages to devblks */ \
 
311
        ((db) << (PAGE_SHIFT - DEV_BSHIFT))
 
312
 
 
313
/*
 
314
 * Given the pointer x to the member m of the struct s, return
 
315
 * a pointer to the containing structure.
 
316
 */
 
317
#define member2struct(s, m, x)                                          \
 
318
        ((struct s *)(void *)((char *)(x) - offsetof(struct s, m)))
 
319
 
 
320
#endif  /* _SYS_PARAM_H_ */