Sat May 4 18:57:00 2024 UTC (42d)
Welcome to 8.3


(martin)
diff -r1.2.60.3 -r1.2.60.4 src/doc/LAST_MINUTE
diff -r1.2.4.7 -r1.2.4.8 src/external/gpl2/groff/tmac/mdoc.local
diff -r1.542.2.11 -r1.542.2.12 src/sys/sys/param.h

cvs diff -r1.2.60.3 -r1.2.60.4 src/doc/LAST_MINUTE (switch to unified diff)

--- src/doc/LAST_MINUTE 2020/03/31 05:08:40 1.2.60.3
+++ src/doc/LAST_MINUTE 2024/05/04 18:57:00 1.2.60.4
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
1# $NetBSD: LAST_MINUTE,v 1.2.60.3 2020/03/31 05:08:40 martin Exp $ 1# $NetBSD: LAST_MINUTE,v 1.2.60.4 2024/05/04 18:57:00 martin Exp $
2 2
3This file contains important information on the NetBSD 8.2 release that 3This file contains important information on the NetBSD 8.3 release that
4did not make it into the main documentation. 4did not make it into the main documentation.
5 5
6[all] 6[all]
7 Nothing pertinent 7 Nothing pertinent

cvs diff -r1.2.4.7 -r1.2.4.8 src/external/gpl2/groff/tmac/mdoc.local (switch to unified diff)

--- src/external/gpl2/groff/tmac/mdoc.local 2020/04/14 15:50:27 1.2.4.7
+++ src/external/gpl2/groff/tmac/mdoc.local 2024/05/04 18:56:59 1.2.4.8
@@ -1,115 +1,116 @@ @@ -1,115 +1,116 @@
1.\" $NetBSD: mdoc.local,v 1.2.4.7 2020/04/14 15:50:27 martin Exp $ 1.\" $NetBSD: mdoc.local,v 1.2.4.8 2024/05/04 18:56:59 martin Exp $
2.\" 2.\"
3.\" Copyright (c) 2003, 2004 The NetBSD Foundation, Inc. 3.\" Copyright (c) 2003, 2004 The NetBSD Foundation, Inc.
4.\" All rights reserved. 4.\" All rights reserved.
5.\" 5.\"
6.\" This code is derived from software contributed to The NetBSD Foundation 6.\" This code is derived from software contributed to The NetBSD Foundation
7.\" by Thomas Klausner. 7.\" by Thomas Klausner.
8.\" 8.\"
9.\" Redistribution and use in source and binary forms, with or without 9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions 10.\" modification, are permitted provided that the following conditions
11.\" are met: 11.\" are met:
12.\" 1. Redistributions of source code must retain the above copyright 12.\" 1. Redistributions of source code must retain the above copyright
13.\" notice, this list of conditions and the following disclaimer. 13.\" notice, this list of conditions and the following disclaimer.
14.\" 2. Redistributions in binary form must reproduce the above copyright 14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\" notice, this list of conditions and the following disclaimer in the 15.\" notice, this list of conditions and the following disclaimer in the
16.\" documentation and/or other materials provided with the distribution. 16.\" documentation and/or other materials provided with the distribution.
17.\" 17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 21.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28.\" POSSIBILITY OF SUCH DAMAGE. 28.\" POSSIBILITY OF SUCH DAMAGE.
29.\" 29.\"
30.\" %beginstrip% 30.\" %beginstrip%
31. 31.
32.ds doc-volume-operating-system NetBSD 32.ds doc-volume-operating-system NetBSD
33. 33.
34.\" standards names not in groff 34.\" standards names not in groff
35.ds doc-str-St--isoC-amd1 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 9899/AMD1:1995 35.ds doc-str-St--isoC-amd1 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 9899/AMD1:1995
36.as doc-str-St--isoC-amd1 " (\*[Lq]\*[doc-Tn-font-size]ISO\~C\^90\*[doc-str-St], Amendment 1\*[Rq]) 36.as doc-str-St--isoC-amd1 " (\*[Lq]\*[doc-Tn-font-size]ISO\~C\^90\*[doc-str-St], Amendment 1\*[Rq])
37.ds doc-str-St--isoC-tcor1 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 9899/TCOR1:1994 37.ds doc-str-St--isoC-tcor1 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 9899/TCOR1:1994
38.as doc-str-St--isoC-tcor1 " (\*[Lq]\*[doc-Tn-font-size]ISO\~C\^90\*[doc-str-St], Technical Corrigendum 1\*[Rq]) 38.as doc-str-St--isoC-tcor1 " (\*[Lq]\*[doc-Tn-font-size]ISO\~C\^90\*[doc-str-St], Technical Corrigendum 1\*[Rq])
39.ds doc-str-St--isoC-tcor2 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 9899/TCOR2:1995 39.ds doc-str-St--isoC-tcor2 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 9899/TCOR2:1995
40.as doc-str-St--isoC-tcor2 " (\*[Lq]\*[doc-Tn-font-size]ISO\~C\^90\*[doc-str-St], Technical Corrigendum 2\*[Rq]) 40.as doc-str-St--isoC-tcor2 " (\*[Lq]\*[doc-Tn-font-size]ISO\~C\^90\*[doc-str-St], Technical Corrigendum 2\*[Rq])
41.ds doc-str-St--xns5.2d2.0 \*[doc-Tn-font-size]X/Open\*[doc-str-St] Networking Services Issue\~5.2 Draft\~2.0 41.ds doc-str-St--xns5.2d2.0 \*[doc-Tn-font-size]X/Open\*[doc-str-St] Networking Services Issue\~5.2 Draft\~2.0
42.as doc-str-St--xns5.2d2.0 " (\*[Lq]\*[doc-Tn-font-size]XNS\*[doc-str-St]\^5.2D2.0\*[Rq]) 42.as doc-str-St--xns5.2d2.0 " (\*[Lq]\*[doc-Tn-font-size]XNS\*[doc-str-St]\^5.2D2.0\*[Rq])
43.ds doc-str-St--ieee1275-94 \*[doc-Tn-font-size]\%IEEE\*[doc-str-St] Std 1275-1994 43.ds doc-str-St--ieee1275-94 \*[doc-Tn-font-size]\%IEEE\*[doc-str-St] Std 1275-1994
44.as doc-str-St--ieee1275-94 " (\*[Lq]\*[doc-Tn-font-size]Open Firmware\*[doc-str-St]\*[Rq]) 44.as doc-str-St--ieee1275-94 " (\*[Lq]\*[doc-Tn-font-size]Open Firmware\*[doc-str-St]\*[Rq])
45. 45.
46.\" Default .Os value 46.\" Default .Os value
47.ds doc-operating-system NetBSD\~8.2_STABLE 47.ds doc-operating-system NetBSD\~8.3
48.\" Default footer operating system value 48.\" Default footer operating system value
49.ds doc-default-operating-system NetBSD\~8.2_STABLE 49.ds doc-default-operating-system NetBSD\~8.3
50.\" Other known versions, not yet in groff distribution 50.\" Other known versions, not yet in groff distribution
51.ds doc-operating-system-NetBSD-1.3.3 1.3.3 51.ds doc-operating-system-NetBSD-1.3.3 1.3.3
52.ds doc-operating-system-NetBSD-1.6.3 1.6.3 52.ds doc-operating-system-NetBSD-1.6.3 1.6.3
53.ds doc-operating-system-NetBSD-2.0.1 2.0.1 53.ds doc-operating-system-NetBSD-2.0.1 2.0.1
54.ds doc-operating-system-NetBSD-2.0.2 2.0.2 54.ds doc-operating-system-NetBSD-2.0.2 2.0.2
55.ds doc-operating-system-NetBSD-3.0 3.0 55.ds doc-operating-system-NetBSD-3.0 3.0
56.ds doc-operating-system-NetBSD-3.0.1 3.0.1 56.ds doc-operating-system-NetBSD-3.0.1 3.0.1
57.ds doc-operating-system-NetBSD-3.1 3.1 57.ds doc-operating-system-NetBSD-3.1 3.1
58.ds doc-operating-system-NetBSD-4.0 4.0 58.ds doc-operating-system-NetBSD-4.0 4.0
59.ds doc-operating-system-NetBSD-5.0 5.0 59.ds doc-operating-system-NetBSD-5.0 5.0
60.ds doc-operating-system-NetBSD-5.1 5.1 60.ds doc-operating-system-NetBSD-5.1 5.1
61.ds doc-operating-system-NetBSD-6.0 6.0 61.ds doc-operating-system-NetBSD-6.0 6.0
62.ds doc-operating-system-NetBSD-6.1 6.1 62.ds doc-operating-system-NetBSD-6.1 6.1
63.ds doc-operating-system-NetBSD-7.0 7.0 63.ds doc-operating-system-NetBSD-7.0 7.0
64.ds doc-operating-system-NetBSD-7.1 7.1 64.ds doc-operating-system-NetBSD-7.1 7.1
65.ds doc-operating-system-NetBSD-8.0 8.0 65.ds doc-operating-system-NetBSD-8.0 8.0
66.ds doc-operating-system-NetBSD-8.1 8.1 66.ds doc-operating-system-NetBSD-8.1 8.1
67.ds doc-operating-system-NetBSD-8.2 8.2 67.ds doc-operating-system-NetBSD-8.2 8.2
 68.ds doc-operating-system-NetBSD-8.3 8.3
68.ds doc-operating-system-FreeBSD-4.11 4.11 69.ds doc-operating-system-FreeBSD-4.11 4.11
69.ds doc-operating-system-FreeBSD-5.4 5.4 70.ds doc-operating-system-FreeBSD-5.4 5.4
70.ds doc-operating-system-FreeBSD-5.5 5.5 71.ds doc-operating-system-FreeBSD-5.5 5.5
71.ds doc-operating-system-FreeBSD-6.1 6.1 72.ds doc-operating-system-FreeBSD-6.1 6.1
72.ds doc-operating-system-FreeBSD-6.2 6.2 73.ds doc-operating-system-FreeBSD-6.2 6.2
73.ds doc-operating-system-FreeBSD-6.3 6.3 74.ds doc-operating-system-FreeBSD-6.3 6.3
74.ds doc-operating-system-FreeBSD-6.4 6.4 75.ds doc-operating-system-FreeBSD-6.4 6.4
75.ds doc-operating-system-FreeBSD-7.0 7.0 76.ds doc-operating-system-FreeBSD-7.0 7.0
76.ds doc-operating-system-FreeBSD-7.1 7.1 77.ds doc-operating-system-FreeBSD-7.1 7.1
77.ds doc-operating-system-FreeBSD-7.2 7.2 78.ds doc-operating-system-FreeBSD-7.2 7.2
78.ds doc-operating-system-FreeBSD-8.0 8.0 79.ds doc-operating-system-FreeBSD-8.0 8.0
79.ds doc-operating-system-FreeBSD-9.0 9.0 80.ds doc-operating-system-FreeBSD-9.0 9.0
80.\" Platforms not yet in groff distribution 81.\" Platforms not yet in groff distribution
81.ds doc-volume-as-amigappc amigappc 82.ds doc-volume-as-amigappc amigappc
82.ds doc-volume-as-ews4800mips ews4800mips 83.ds doc-volume-as-ews4800mips ews4800mips
83.ds doc-volume-as-ibmnws ibmnws 84.ds doc-volume-as-ibmnws ibmnws
84.ds doc-volume-as-iyonix iyonix 85.ds doc-volume-as-iyonix iyonix
85.ds doc-volume-as-landisk landisk 86.ds doc-volume-as-landisk landisk
86.ds doc-volume-as-x86 x86 87.ds doc-volume-as-x86 x86
87.ds doc-volume-as-xen xen 88.ds doc-volume-as-xen xen
88. 89.
89.\" Local libraries not in groff 90.\" Local libraries not in groff
90.ds doc-str-Lb-libarchive Reading and Writing Streaming Archives Library (libarchive, \-larchive) 91.ds doc-str-Lb-libarchive Reading and Writing Streaming Archives Library (libarchive, \-larchive)
91.ds doc-str-Lb-libbluetooth Bluetooth Library (libbluetooth, \-lbluetooth) 92.ds doc-str-Lb-libbluetooth Bluetooth Library (libbluetooth, \-lbluetooth)
92.ds doc-str-Lb-libdm Device-mapper Library (libdm, \-ldm) 93.ds doc-str-Lb-libdm Device-mapper Library (libdm, \-ldm)
93.ds doc-str-Lb-libexecinfo Backtrace Access Library (libexecinfo, \-lexecinfo) 94.ds doc-str-Lb-libexecinfo Backtrace Access Library (libexecinfo, \-lexecinfo)
94.ds doc-str-Lb-libfetch File Transfer Library for URLs (libfetch, \-lfetch) 95.ds doc-str-Lb-libfetch File Transfer Library for URLs (libfetch, \-lfetch)
95.ds doc-str-Lb-libiscsi iSCSI Protocol Library (libiscsi, \-liscsi) 96.ds doc-str-Lb-libiscsi iSCSI Protocol Library (libiscsi, \-liscsi)
96.ds doc-str-Lb-libisns Internet Storage Name Service Library (libisns, \-lisns) 97.ds doc-str-Lb-libisns Internet Storage Name Service Library (libisns, \-lisns)
97.ds doc-str-Lb-libmj Minimalist JSON Library (libmj, \-lmj) 98.ds doc-str-Lb-libmj Minimalist JSON Library (libmj, \-lmj)
98.ds doc-str-Lb-libmandoc Mandoc Macro Compiler Library (libmandoc, \-lmandoc) 99.ds doc-str-Lb-libmandoc Mandoc Macro Compiler Library (libmandoc, \-lmandoc)
99.ds doc-str-Lb-libnetpgp Netpgp Signing, Verification, Encryption and Decryption (libnetpgp, \-lnetpgp) 100.ds doc-str-Lb-libnetpgp Netpgp Signing, Verification, Encryption and Decryption (libnetpgp, \-lnetpgp)
100.ds doc-str-Lb-libnetpgpverify Netpgp Signature Verification (libnetpgpverify, \-lnetpgpverify) 101.ds doc-str-Lb-libnetpgpverify Netpgp Signature Verification (libnetpgpverify, \-lnetpgpverify)
101.ds doc-str-Lb-libnpf NPF Packet Filter Library (libnpf, \-lnpf) 102.ds doc-str-Lb-libnpf NPF Packet Filter Library (libnpf, \-lnpf)
102.ds doc-str-Lb-libperfuse PUFFS-enabled Relay to FUSE Library (libperfuse, \-lperfuse) 103.ds doc-str-Lb-libperfuse PUFFS-enabled Relay to FUSE Library (libperfuse, \-lperfuse)
103.ds doc-str-Lb-libppath Property-List Paths Library (libppath, \-lppath) 104.ds doc-str-Lb-libppath Property-List Paths Library (libppath, \-lppath)
104.ds doc-str-Lb-libproc Process manipulation Library (libproc, \-lproc) 105.ds doc-str-Lb-libproc Process manipulation Library (libproc, \-lproc)
105.ds doc-str-Lb-libprop Property Container Object Library (libprop, \-lprop) 106.ds doc-str-Lb-libprop Property Container Object Library (libprop, \-lprop)
106.ds doc-str-Lb-libpuffs puffs Convenience Library (libpuffs, \-lpuffs) 107.ds doc-str-Lb-libpuffs puffs Convenience Library (libpuffs, \-lpuffs)
107.ds doc-str-Lb-libquota Disk Quota Access and Control Library (libquota, \-lquota) 108.ds doc-str-Lb-libquota Disk Quota Access and Control Library (libquota, \-lquota)
108.ds doc-str-Lb-librefuse File System in Userspace Convenience Library (librefuse, \-lrefuse) 109.ds doc-str-Lb-librefuse File System in Userspace Convenience Library (librefuse, \-lrefuse)
109.ds doc-str-Lb-librtld_db Debugging interface to the runtime linker Library (librtld_db, \-lrtld_db) 110.ds doc-str-Lb-librtld_db Debugging interface to the runtime linker Library (librtld_db, \-lrtld_db)
110.ds doc-str-Lb-librumpclient Clientside Stubs for rump Kernel Remote Protocols (librumpclient, \-lrumpclient) 111.ds doc-str-Lb-librumpclient Clientside Stubs for rump Kernel Remote Protocols (librumpclient, \-lrumpclient)
111.ds doc-str-Lb-libsaslc Simple Authentication and Security Layer client library (libsaslc, \-lsaslc) 112.ds doc-str-Lb-libsaslc Simple Authentication and Security Layer client library (libsaslc, \-lsaslc)
112.ds doc-str-Lb-libssp Buffer Overflow Protection Library (libssp, \-lssp) 113.ds doc-str-Lb-libssp Buffer Overflow Protection Library (libssp, \-lssp)
113.ds doc-str-Lb-libterminfo Terminal Information Library (libterminfo, \-lterminfo) 114.ds doc-str-Lb-libterminfo Terminal Information Library (libterminfo, \-lterminfo)
114.ds doc-str-St--p1003.1j-2000 \*[doc-Tn-font-size]\%IEEE\*[doc-str-St] Std 1003.1j-2000  115.ds doc-str-St--p1003.1j-2000 \*[doc-Tn-font-size]\%IEEE\*[doc-str-St] Std 1003.1j-2000
115.as doc-str-St--p1003.1j-2000 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq]) 116.as doc-str-St--p1003.1j-2000 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq])

cvs diff -r1.542.2.11 -r1.542.2.12 src/sys/sys/param.h (switch to unified diff)

--- src/sys/sys/param.h 2021/02/06 15:22:19 1.542.2.11
+++ src/sys/sys/param.h 2024/05/04 18:56:59 1.542.2.12
@@ -1,500 +1,500 @@ @@ -1,500 +1,500 @@
1/* $NetBSD: param.h,v 1.542.2.11 2021/02/06 15:22:19 martin Exp $ */ 1/* $NetBSD: param.h,v 1.542.2.12 2024/05/04 18:56:59 martin Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 1982, 1986, 1989, 1993 4 * Copyright (c) 1982, 1986, 1989, 1993
5 * The Regents of the University of California. All rights reserved. 5 * The Regents of the University of California. All rights reserved.
6 * (c) UNIX System Laboratories, Inc. 6 * (c) UNIX System Laboratories, Inc.
7 * All or some portions of this file are derived from material licensed 7 * All or some portions of this file are derived from material licensed
8 * to the University of California by American Telephone and Telegraph 8 * to the University of California by American Telephone and Telegraph
9 * Co. or Unix System Laboratories, Inc. and are reproduced herein with 9 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
10 * the permission of UNIX System Laboratories, Inc. 10 * the permission of UNIX System Laboratories, Inc.
11 * 11 *
12 * Redistribution and use in source and binary forms, with or without 12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions 13 * modification, are permitted provided that the following conditions
14 * are met: 14 * are met:
15 * 1. Redistributions of source code must retain the above copyright 15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer. 16 * notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright 17 * 2. Redistributions in binary form must reproduce the above copyright
18 * notice, this list of conditions and the following disclaimer in the 18 * notice, this list of conditions and the following disclaimer in the
19 * documentation and/or other materials provided with the distribution. 19 * documentation and/or other materials provided with the distribution.
20 * 3. Neither the name of the University nor the names of its contributors 20 * 3. Neither the name of the University nor the names of its contributors
21 * may be used to endorse or promote products derived from this software 21 * may be used to endorse or promote products derived from this software
22 * without specific prior written permission. 22 * without specific prior written permission.
23 * 23 *
24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE. 34 * SUCH DAMAGE.
35 * 35 *
36 * @(#)param.h 8.3 (Berkeley) 4/4/95 36 * @(#)param.h 8.3 (Berkeley) 4/4/95
37 */ 37 */
38 38
39#ifndef _SYS_PARAM_H_ 39#ifndef _SYS_PARAM_H_
40#define _SYS_PARAM_H_ 40#define _SYS_PARAM_H_
41 41
42#ifdef _KERNEL_OPT 42#ifdef _KERNEL_OPT
43#include "opt_param.h" 43#include "opt_param.h"
44#endif 44#endif
45 45
46/* 46/*
47 * Historic BSD #defines -- probably will remain untouched for all time. 47 * Historic BSD #defines -- probably will remain untouched for all time.
48 */ 48 */
49#define BSD 199506 /* System version (year & month). */ 49#define BSD 199506 /* System version (year & month). */
50#define BSD4_3 1 50#define BSD4_3 1
51#define BSD4_4 1 51#define BSD4_4 1
52 52
53/* 53/*
54 * #define __NetBSD_Version__ MMmmrrpp00 54 * #define __NetBSD_Version__ MMmmrrpp00
55 * 55 *
56 * M = major version 56 * M = major version
57 * m = minor version; a minor number of 99 indicates current. 57 * m = minor version; a minor number of 99 indicates current.
58 * r = 0 (*) 58 * r = 0 (*)
59 * p = patchlevel 59 * p = patchlevel
60 * 60 *
61 * When new releases are made, src/gnu/usr.bin/groff/tmac/mdoc.local 61 * When new releases are made, src/gnu/usr.bin/groff/tmac/mdoc.local
62 * needs to be updated and the changes sent back to the groff maintainers. 62 * needs to be updated and the changes sent back to the groff maintainers.
63 * 63 *
64 * (*) Up to 2.0I "release" used to be "",A-Z,Z[A-Z] but numeric 64 * (*) Up to 2.0I "release" used to be "",A-Z,Z[A-Z] but numeric
65 * e.g. NetBSD-1.2D = 102040000 ('D' == 4) 65 * e.g. NetBSD-1.2D = 102040000 ('D' == 4)
66 * NetBSD-2.0H (200080000) was changed on 20041001 to: 66 * NetBSD-2.0H (200080000) was changed on 20041001 to:
67 * 2.99.9 (299000900) 67 * 2.99.9 (299000900)
68 */ 68 */
69 69
70#define __NetBSD_Version__ 802000000 /* NetBSD 8.2_STABLE */ 70#define __NetBSD_Version__ 803000000 /* NetBSD 8.3 */
71 71
72#define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \ 72#define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \
73 (m) * 1000000) + (p) * 100) <= __NetBSD_Version__) 73 (m) * 1000000) + (p) * 100) <= __NetBSD_Version__)
74 74
75/* 75/*
76 * Historical NetBSD #define 76 * Historical NetBSD #define
77 * 77 *
78 * NetBSD 1.4 was the last release for which this value was incremented. 78 * NetBSD 1.4 was the last release for which this value was incremented.
79 * The value is now permanently fixed at 199905. It will never be 79 * The value is now permanently fixed at 199905. It will never be
80 * changed again. 80 * changed again.
81 * 81 *
82 * New code must use __NetBSD_Version__ instead, and should not even 82 * New code must use __NetBSD_Version__ instead, and should not even
83 * count on NetBSD being defined. 83 * count on NetBSD being defined.
84 * 84 *
85 */ 85 */
86 86
87#define NetBSD 199905 /* NetBSD version (year & month). */ 87#define NetBSD 199905 /* NetBSD version (year & month). */
88 88
89/* 89/*
90 * There macros determine if we are running in protected mode or not. 90 * There macros determine if we are running in protected mode or not.
91 * _HARDKERNEL: code uses kernel namespace and runs in hw priviledged mode 91 * _HARDKERNEL: code uses kernel namespace and runs in hw priviledged mode
92 * _SOFTKERNEL: code uses kernel namespace but runs without hw priviledges 92 * _SOFTKERNEL: code uses kernel namespace but runs without hw priviledges
93 */ 93 */
94#if defined(_KERNEL) && !defined(_RUMPKERNEL) 94#if defined(_KERNEL) && !defined(_RUMPKERNEL)
95#define _HARDKERNEL 95#define _HARDKERNEL
96#endif 96#endif
97#if defined(_KERNEL) && defined(_RUMPKERNEL) 97#if defined(_KERNEL) && defined(_RUMPKERNEL)
98#define _SOFTKERNEL 98#define _SOFTKERNEL
99#endif 99#endif
100 100
101#include <sys/null.h> 101#include <sys/null.h>
102 102
103#ifndef __ASSEMBLER__ 103#ifndef __ASSEMBLER__
104#include <sys/inttypes.h> 104#include <sys/inttypes.h>
105#include <sys/types.h> 105#include <sys/types.h>
106 106
107/* 107/*
108 * Machine-independent constants (some used in following include files). 108 * Machine-independent constants (some used in following include files).
109 * Redefined constants are from POSIX 1003.1 limits file. 109 * Redefined constants are from POSIX 1003.1 limits file.
110 * 110 *
111 * MAXCOMLEN should be >= sizeof(ac_comm) (see <acct.h>) 111 * MAXCOMLEN should be >= sizeof(ac_comm) (see <acct.h>)
112 * MAXHOSTNAMELEN should be >= (_POSIX_HOST_NAME_MAX + 1) (see <limits.h>) 112 * MAXHOSTNAMELEN should be >= (_POSIX_HOST_NAME_MAX + 1) (see <limits.h>)
113 * MAXLOGNAME should be >= UT_NAMESIZE (see <utmp.h>) 113 * MAXLOGNAME should be >= UT_NAMESIZE (see <utmp.h>)
114 */ 114 */
115#include <sys/syslimits.h> 115#include <sys/syslimits.h>
116 116
117#define MAXCOMLEN 16 /* max command name remembered */ 117#define MAXCOMLEN 16 /* max command name remembered */
118#define MAXINTERP PATH_MAX /* max interpreter file name length */ 118#define MAXINTERP PATH_MAX /* max interpreter file name length */
119/* DEPRECATED: use LOGIN_NAME_MAX instead. */ 119/* DEPRECATED: use LOGIN_NAME_MAX instead. */
120#define MAXLOGNAME (LOGIN_NAME_MAX - 1) /* max login name length */ 120#define MAXLOGNAME (LOGIN_NAME_MAX - 1) /* max login name length */
121#define NCARGS ARG_MAX /* max bytes for an exec function */ 121#define NCARGS ARG_MAX /* max bytes for an exec function */
122#define NGROUPS NGROUPS_MAX /* max number groups */ 122#define NGROUPS NGROUPS_MAX /* max number groups */
123#define NOGROUP 65535 /* marker for empty group set member */ 123#define NOGROUP 65535 /* marker for empty group set member */
124#define MAXHOSTNAMELEN 256 /* max hostname size */ 124#define MAXHOSTNAMELEN 256 /* max hostname size */
125 125
126#ifndef NOFILE 126#ifndef NOFILE
127#define NOFILE OPEN_MAX /* max open files per process */ 127#define NOFILE OPEN_MAX /* max open files per process */
128#endif 128#endif
129#ifndef MAXUPRC /* max simultaneous processes */ 129#ifndef MAXUPRC /* max simultaneous processes */
130#define MAXUPRC CHILD_MAX /* POSIX 1003.1-compliant default */ 130#define MAXUPRC CHILD_MAX /* POSIX 1003.1-compliant default */
131#else 131#else
132#if (MAXUPRC - 0) < CHILD_MAX 132#if (MAXUPRC - 0) < CHILD_MAX
133#error MAXUPRC less than CHILD_MAX. See options(4) for details. 133#error MAXUPRC less than CHILD_MAX. See options(4) for details.
134#endif /* (MAXUPRC - 0) < CHILD_MAX */ 134#endif /* (MAXUPRC - 0) < CHILD_MAX */
135#endif /* !defined(MAXUPRC) */ 135#endif /* !defined(MAXUPRC) */
136 136
137/* Macros for min/max. */ 137/* Macros for min/max. */
138#define MIN(a,b) ((/*CONSTCOND*/(a)<(b))?(a):(b)) 138#define MIN(a,b) ((/*CONSTCOND*/(a)<(b))?(a):(b))
139#define MAX(a,b) ((/*CONSTCOND*/(a)>(b))?(a):(b)) 139#define MAX(a,b) ((/*CONSTCOND*/(a)>(b))?(a):(b))
140 140
141/* More types and definitions used throughout the kernel. */ 141/* More types and definitions used throughout the kernel. */
142#ifdef _KERNEL 142#ifdef _KERNEL
143#include <sys/cdefs.h> 143#include <sys/cdefs.h>
144#include <sys/errno.h> 144#include <sys/errno.h>
145#include <sys/time.h> 145#include <sys/time.h>
146#include <sys/resource.h> 146#include <sys/resource.h>
147#include <sys/ucred.h> 147#include <sys/ucred.h>
148#include <sys/uio.h> 148#include <sys/uio.h>
149#include <uvm/uvm_param.h> 149#include <uvm/uvm_param.h>
150#ifndef NPROC 150#ifndef NPROC
151#define NPROC (20 + 16 * MAXUSERS) 151#define NPROC (20 + 16 * MAXUSERS)
152#endif 152#endif
153#ifndef MAXFILES 153#ifndef MAXFILES
154#define MAXFILES (3 * (NPROC + MAXUSERS) + 80) 154#define MAXFILES (3 * (NPROC + MAXUSERS) + 80)
155#define MAXFILES_IMPLICIT 155#define MAXFILES_IMPLICIT
156#endif 156#endif
157#ifndef NTEXT 157#ifndef NTEXT
158#define NTEXT (80 + NPROC / 8) /* actually the object cache */ 158#define NTEXT (80 + NPROC / 8) /* actually the object cache */
159#endif 159#endif
160#ifndef NVNODE 160#ifndef NVNODE
161#define NVNODE (NPROC + NTEXT + 100) 161#define NVNODE (NPROC + NTEXT + 100)
162#define NVNODE_IMPLICIT 162#define NVNODE_IMPLICIT
163#endif 163#endif
164#ifndef VNODE_KMEM_MAXPCT 164#ifndef VNODE_KMEM_MAXPCT
165#define VNODE_KMEM_MAXPCT 60 165#define VNODE_KMEM_MAXPCT 60
166#endif 166#endif
167#ifndef BUFCACHE_VA_MAXPCT 167#ifndef BUFCACHE_VA_MAXPCT
168#define BUFCACHE_VA_MAXPCT 20 168#define BUFCACHE_VA_MAXPCT 20
169#endif 169#endif
170#define VNODE_COST 2048 /* assumed space in bytes */ 170#define VNODE_COST 2048 /* assumed space in bytes */
171#endif /* _KERNEL */ 171#endif /* _KERNEL */
172 172
173/* Signals. */ 173/* Signals. */
174#include <sys/signal.h> 174#include <sys/signal.h>
175 175
176/* Machine type dependent parameters. */ 176/* Machine type dependent parameters. */
177#include <machine/param.h> 177#include <machine/param.h>
178#include <machine/limits.h> 178#include <machine/limits.h>
179 179
180/* pages ("clicks") to disk blocks */ 180/* pages ("clicks") to disk blocks */
181#define ctod(x) ((x) << (PGSHIFT - DEV_BSHIFT)) 181#define ctod(x) ((x) << (PGSHIFT - DEV_BSHIFT))
182#define dtoc(x) ((x) >> (PGSHIFT - DEV_BSHIFT)) 182#define dtoc(x) ((x) >> (PGSHIFT - DEV_BSHIFT))
183 183
184/* bytes to pages */ 184/* bytes to pages */
185#define ctob(x) ((x) << PGSHIFT) 185#define ctob(x) ((x) << PGSHIFT)
186#define btoc(x) (((x) + PGOFSET) >> PGSHIFT) 186#define btoc(x) (((x) + PGOFSET) >> PGSHIFT)
187 187
188/* bytes to disk blocks */ 188/* bytes to disk blocks */
189#define dbtob(x) ((x) << DEV_BSHIFT) 189#define dbtob(x) ((x) << DEV_BSHIFT)
190#define btodb(x) ((x) >> DEV_BSHIFT) 190#define btodb(x) ((x) >> DEV_BSHIFT)
191 191
192#ifndef COHERENCY_UNIT 192#ifndef COHERENCY_UNIT
193#define COHERENCY_UNIT 64 193#define COHERENCY_UNIT 64
194#endif 194#endif
195#ifndef CACHE_LINE_SIZE 195#ifndef CACHE_LINE_SIZE
196#define CACHE_LINE_SIZE 64 196#define CACHE_LINE_SIZE 64
197#endif 197#endif
198#ifndef MAXCPUS 198#ifndef MAXCPUS
199#define MAXCPUS 32 199#define MAXCPUS 32
200#endif 200#endif
201#ifndef MAX_LWP_PER_PROC 201#ifndef MAX_LWP_PER_PROC
202#define MAX_LWP_PER_PROC 8000 202#define MAX_LWP_PER_PROC 8000
203#endif 203#endif
204 204
205/* 205/*
206 * Stack macros. On most architectures, the stack grows down, 206 * Stack macros. On most architectures, the stack grows down,
207 * towards lower addresses; it is the rare architecture where 207 * towards lower addresses; it is the rare architecture where
208 * it grows up, towards higher addresses. 208 * it grows up, towards higher addresses.
209 * 209 *
210 * STACK_GROW and STACK_SHRINK adjust a stack pointer by some 210 * STACK_GROW and STACK_SHRINK adjust a stack pointer by some
211 * size, no questions asked. STACK_ALIGN aligns a stack pointer. 211 * size, no questions asked. STACK_ALIGN aligns a stack pointer.
212 * 212 *
213 * STACK_ALLOC returns a pointer to allocated stack space of 213 * STACK_ALLOC returns a pointer to allocated stack space of
214 * some size; given such a pointer and a size, STACK_MAX gives 214 * some size; given such a pointer and a size, STACK_MAX gives
215 * the maximum (in the "maxsaddr" sense) stack address of the 215 * the maximum (in the "maxsaddr" sense) stack address of the
216 * allocated memory. 216 * allocated memory.
217 */ 217 */
218#if defined(_KERNEL) || defined(__EXPOSE_STACK) 218#if defined(_KERNEL) || defined(__EXPOSE_STACK)
219 219
220#ifndef STACK_ALIGNBYTES 220#ifndef STACK_ALIGNBYTES
221#define STACK_ALIGNBYTES __ALIGNBYTES 221#define STACK_ALIGNBYTES __ALIGNBYTES
222#endif 222#endif
223 223
224#ifdef __MACHINE_STACK_GROWS_UP 224#ifdef __MACHINE_STACK_GROWS_UP
225#define STACK_GROW(sp, _size) (((char *)(void *)(sp)) + (_size)) 225#define STACK_GROW(sp, _size) (((char *)(void *)(sp)) + (_size))
226#define STACK_SHRINK(sp, _size) (((char *)(void *)(sp)) - (_size)) 226#define STACK_SHRINK(sp, _size) (((char *)(void *)(sp)) - (_size))
227#define STACK_ALIGN(sp, bytes) \ 227#define STACK_ALIGN(sp, bytes) \
228 ((char *)((((unsigned long)(sp)) + (bytes)) & ~(bytes))) 228 ((char *)((((unsigned long)(sp)) + (bytes)) & ~(bytes)))
229#define STACK_ALLOC(sp, _size) ((char *)(void *)(sp)) 229#define STACK_ALLOC(sp, _size) ((char *)(void *)(sp))
230#define STACK_MAX(p, _size) (((char *)(void *)(p)) + (_size)) 230#define STACK_MAX(p, _size) (((char *)(void *)(p)) + (_size))
231#else 231#else
232#define STACK_GROW(sp, _size) (((char *)(void *)(sp)) - (_size)) 232#define STACK_GROW(sp, _size) (((char *)(void *)(sp)) - (_size))
233#define STACK_SHRINK(sp, _size) (((char *)(void *)(sp)) + (_size)) 233#define STACK_SHRINK(sp, _size) (((char *)(void *)(sp)) + (_size))
234#define STACK_ALIGN(sp, bytes) \ 234#define STACK_ALIGN(sp, bytes) \
235 ((char *)(((unsigned long)(sp)) & ~(bytes))) 235 ((char *)(((unsigned long)(sp)) & ~(bytes)))
236#define STACK_ALLOC(sp, _size) (((char *)(void *)(sp)) - (_size)) 236#define STACK_ALLOC(sp, _size) (((char *)(void *)(sp)) - (_size))
237#define STACK_MAX(p, _size) ((char *)(void *)(p)) 237#define STACK_MAX(p, _size) ((char *)(void *)(p))
238#endif 238#endif
239#define STACK_LEN_ALIGN(len, bytes) (((len) + (bytes)) & ~(bytes)) 239#define STACK_LEN_ALIGN(len, bytes) (((len) + (bytes)) & ~(bytes))
240 240
241#endif /* defined(_KERNEL) || defined(__EXPOSE_STACK) */ 241#endif /* defined(_KERNEL) || defined(__EXPOSE_STACK) */
242 242
243/* 243/*
244 * Round p (pointer or byte index) up to a correctly-aligned value for all 244 * Round p (pointer or byte index) up to a correctly-aligned value for all
245 * data types (int, long, ...). The result is u_int and must be cast to 245 * data types (int, long, ...). The result is u_int and must be cast to
246 * any desired pointer type. 246 * any desired pointer type.
247 * 247 *
248 * ALIGNED_POINTER is a boolean macro that checks whether an address 248 * ALIGNED_POINTER is a boolean macro that checks whether an address
249 * is valid to fetch data elements of type t from on this architecture. 249 * is valid to fetch data elements of type t from on this architecture.
250 * This does not reflect the optimal alignment, just the possibility 250 * This does not reflect the optimal alignment, just the possibility
251 * (within reasonable limits). 251 * (within reasonable limits).
252 * 252 *
253 */ 253 */
254#define ALIGNBYTES __ALIGNBYTES 254#define ALIGNBYTES __ALIGNBYTES
255#ifndef ALIGN 255#ifndef ALIGN
256#define ALIGN(p) (((uintptr_t)(p) + ALIGNBYTES) & ~ALIGNBYTES) 256#define ALIGN(p) (((uintptr_t)(p) + ALIGNBYTES) & ~ALIGNBYTES)
257#endif 257#endif
258#ifndef ALIGNED_POINTER 258#ifndef ALIGNED_POINTER
259#define ALIGNED_POINTER(p,t) ((((uintptr_t)(p)) & (sizeof(t) - 1)) == 0) 259#define ALIGNED_POINTER(p,t) ((((uintptr_t)(p)) & (sizeof(t) - 1)) == 0)
260#endif 260#endif
261 261
262/* 262/*
263 * Historic priority levels. These are meaningless and remain only 263 * Historic priority levels. These are meaningless and remain only
264 * for source compatibility. Do not use in new code. 264 * for source compatibility. Do not use in new code.
265 */ 265 */
266#define PSWP 0 266#define PSWP 0
267#define PVM 4 267#define PVM 4
268#define PINOD 8 268#define PINOD 8
269#define PRIBIO 16 269#define PRIBIO 16
270#define PVFS 20 270#define PVFS 20
271#define PZERO 22 271#define PZERO 22
272#define PSOCK 24 272#define PSOCK 24
273#define PWAIT 32 273#define PWAIT 32
274#define PLOCK 36 274#define PLOCK 36
275#define PPAUSE 40 275#define PPAUSE 40
276#define PUSER 50 276#define PUSER 50
277#define MAXPRI 127 277#define MAXPRI 127
278 278
279#define PCATCH 0x100 /* OR'd with pri for tsleep to check signals */ 279#define PCATCH 0x100 /* OR'd with pri for tsleep to check signals */
280#define PNORELOCK 0x200 /* OR'd with pri for tsleep to not relock */ 280#define PNORELOCK 0x200 /* OR'd with pri for tsleep to not relock */
281 281
282/* 282/*
283 * New priority levels. 283 * New priority levels.
284 */ 284 */
285#define PRI_COUNT 224 285#define PRI_COUNT 224
286#define PRI_NONE (-1) 286#define PRI_NONE (-1)
287 287
288#define PRI_KERNEL_RT 192 288#define PRI_KERNEL_RT 192
289#define NPRI_KERNEL_RT 32 289#define NPRI_KERNEL_RT 32
290#define MAXPRI_KERNEL_RT (PRI_KERNEL_RT + NPRI_KERNEL_RT - 1) 290#define MAXPRI_KERNEL_RT (PRI_KERNEL_RT + NPRI_KERNEL_RT - 1)
291 291
292#define PRI_USER_RT 128 292#define PRI_USER_RT 128
293#define NPRI_USER_RT 64 293#define NPRI_USER_RT 64
294#define MAXPRI_USER_RT (PRI_USER_RT + NPRI_USER_RT - 1) 294#define MAXPRI_USER_RT (PRI_USER_RT + NPRI_USER_RT - 1)
295 295
296#define PRI_KTHREAD 96 296#define PRI_KTHREAD 96
297#define NPRI_KTHREAD 32 297#define NPRI_KTHREAD 32
298#define MAXPRI_KTHREAD (PRI_KTHREAD + NPRI_KTHREAD - 1) 298#define MAXPRI_KTHREAD (PRI_KTHREAD + NPRI_KTHREAD - 1)
299 299
300#define PRI_KERNEL 64 300#define PRI_KERNEL 64
301#define NPRI_KERNEL 32 301#define NPRI_KERNEL 32
302#define MAXPRI_KERNEL (PRI_KERNEL + NPRI_KERNEL - 1) 302#define MAXPRI_KERNEL (PRI_KERNEL + NPRI_KERNEL - 1)
303 303
304#define PRI_USER 0 304#define PRI_USER 0
305#define NPRI_USER 64 305#define NPRI_USER 64
306#define MAXPRI_USER (PRI_USER + NPRI_USER - 1) 306#define MAXPRI_USER (PRI_USER + NPRI_USER - 1)
307 307
308/* Priority range used by POSIX real-time features */ 308/* Priority range used by POSIX real-time features */
309#define SCHED_PRI_MIN 0 309#define SCHED_PRI_MIN 0
310#define SCHED_PRI_MAX 63 310#define SCHED_PRI_MAX 63
311 311
312/* 312/*
313 * Kernel thread priorities. 313 * Kernel thread priorities.
314 */ 314 */
315#define PRI_SOFTSERIAL MAXPRI_KERNEL_RT 315#define PRI_SOFTSERIAL MAXPRI_KERNEL_RT
316#define PRI_SOFTNET (MAXPRI_KERNEL_RT - schedppq * 1) 316#define PRI_SOFTNET (MAXPRI_KERNEL_RT - schedppq * 1)
317#define PRI_SOFTBIO (MAXPRI_KERNEL_RT - schedppq * 2) 317#define PRI_SOFTBIO (MAXPRI_KERNEL_RT - schedppq * 2)
318#define PRI_SOFTCLOCK (MAXPRI_KERNEL_RT - schedppq * 3) 318#define PRI_SOFTCLOCK (MAXPRI_KERNEL_RT - schedppq * 3)
319 319
320#define PRI_XCALL MAXPRI_KTHREAD 320#define PRI_XCALL MAXPRI_KTHREAD
321#define PRI_PGDAEMON (MAXPRI_KTHREAD - schedppq * 1) 321#define PRI_PGDAEMON (MAXPRI_KTHREAD - schedppq * 1)
322#define PRI_VM (MAXPRI_KTHREAD - schedppq * 2) 322#define PRI_VM (MAXPRI_KTHREAD - schedppq * 2)
323#define PRI_IOFLUSH (MAXPRI_KTHREAD - schedppq * 3) 323#define PRI_IOFLUSH (MAXPRI_KTHREAD - schedppq * 3)
324#define PRI_BIO (MAXPRI_KTHREAD - schedppq * 4) 324#define PRI_BIO (MAXPRI_KTHREAD - schedppq * 4)
325 325
326#define PRI_IDLE PRI_USER 326#define PRI_IDLE PRI_USER
327 327
328/* 328/*
329 * Miscellaneous. 329 * Miscellaneous.
330 */ 330 */
331#define NBPW sizeof(int) /* number of bytes per word (integer) */ 331#define NBPW sizeof(int) /* number of bytes per word (integer) */
332 332
333#define CMASK 022 /* default file mask: S_IWGRP|S_IWOTH */ 333#define CMASK 022 /* default file mask: S_IWGRP|S_IWOTH */
334#define NODEV (dev_t)(-1) /* non-existent device */ 334#define NODEV (dev_t)(-1) /* non-existent device */
335 335
336/* 336/*
337 * File system parameters and macros. 337 * File system parameters and macros.
338 * 338 *
339 * The file system is made out of blocks of at most MAXBSIZE units, with 339 * The file system is made out of blocks of at most MAXBSIZE units, with
340 * smaller units (fragments) only in the last direct block. MAXBSIZE 340 * smaller units (fragments) only in the last direct block. MAXBSIZE
341 * primarily determines the size of buffers in the buffer pool. It may be 341 * primarily determines the size of buffers in the buffer pool. It may be
342 * made larger without any effect on existing file systems; however making 342 * made larger without any effect on existing file systems; however making
343 * it smaller may make some file systems unmountable. 343 * it smaller may make some file systems unmountable.
344 */ 344 */
345#ifndef MAXBSIZE /* XXX */ 345#ifndef MAXBSIZE /* XXX */
346#define MAXBSIZE MAXPHYS 346#define MAXBSIZE MAXPHYS
347#endif 347#endif
348#define MAXFRAG 8 348#define MAXFRAG 8
349 349
350/* 350/*
351 * MAXPATHLEN defines the longest permissible path length after expanding 351 * MAXPATHLEN defines the longest permissible path length after expanding
352 * symbolic links. It is used to allocate a temporary buffer from the buffer 352 * symbolic links. It is used to allocate a temporary buffer from the buffer
353 * pool in which to do the name expansion, hence should be a power of two, 353 * pool in which to do the name expansion, hence should be a power of two,
354 * and must be less than or equal to MAXBSIZE. MAXSYMLINKS defines the 354 * and must be less than or equal to MAXBSIZE. MAXSYMLINKS defines the
355 * maximum number of symbolic links that may be expanded in a path name. 355 * maximum number of symbolic links that may be expanded in a path name.
356 * It should be set high enough to allow all legitimate uses, but halt 356 * It should be set high enough to allow all legitimate uses, but halt
357 * infinite loops reasonably quickly. 357 * infinite loops reasonably quickly.
358 * 358 *
359 * MAXSYMLINKS should be >= _POSIX_SYMLOOP_MAX (see <limits.h>) 359 * MAXSYMLINKS should be >= _POSIX_SYMLOOP_MAX (see <limits.h>)
360 */ 360 */
361#define MAXPATHLEN PATH_MAX 361#define MAXPATHLEN PATH_MAX
362#define MAXSYMLINKS 32 362#define MAXSYMLINKS 32
363 363
364/* 364/*
365 * This is the maximum individual filename component length enforced by 365 * This is the maximum individual filename component length enforced by
366 * namei. Filesystems cannot exceed this limit. The upper bound for that 366 * namei. Filesystems cannot exceed this limit. The upper bound for that
367 * limit is NAME_MAX. We don't bump it for now, for compatibility with 367 * limit is NAME_MAX. We don't bump it for now, for compatibility with
368 * old binaries during the time where MAXPATHLEN was 511 and NAME_MAX was 368 * old binaries during the time where MAXPATHLEN was 511 and NAME_MAX was
369 * 255 369 * 255
370 */ 370 */
371#define KERNEL_NAME_MAX 255 371#define KERNEL_NAME_MAX 255
372 372
373/* Bit map related macros. */ 373/* Bit map related macros. */
374#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY)) 374#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY))
375#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) 375#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
376#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY))) 376#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY)))
377#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) 377#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
378 378
379/* Macros for counting and rounding. */ 379/* Macros for counting and rounding. */
380#ifndef howmany 380#ifndef howmany
381#define howmany(x, y) (((x)+((y)-1))/(y)) 381#define howmany(x, y) (((x)+((y)-1))/(y))
382#endif 382#endif
383#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) 383#define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
384#define rounddown(x,y) (((x)/(y))*(y)) 384#define rounddown(x,y) (((x)/(y))*(y))
385 385
386/* 386/*
387 * Rounding to powers of two. The naive definitions of roundup2 and 387 * Rounding to powers of two. The naive definitions of roundup2 and
388 * rounddown2, 388 * rounddown2,
389 * 389 *
390 * #define roundup2(x,m) (((x) + ((m) - 1)) & ~((m) - 1)) 390 * #define roundup2(x,m) (((x) + ((m) - 1)) & ~((m) - 1))
391 * #define rounddown2(x,m) ((x) & ~((m) - 1)), 391 * #define rounddown2(x,m) ((x) & ~((m) - 1)),
392 * 392 *
393 * exhibit a quirk of integer arithmetic in C because the complement 393 * exhibit a quirk of integer arithmetic in C because the complement
394 * happens in the type of m, not in the type of x. So if unsigned int 394 * happens in the type of m, not in the type of x. So if unsigned int
395 * is 32-bit, and m is an unsigned int while x is a uint64_t, then 395 * is 32-bit, and m is an unsigned int while x is a uint64_t, then
396 * roundup2 and rounddown2 would have the unintended effect of clearing 396 * roundup2 and rounddown2 would have the unintended effect of clearing
397 * the upper 32 bits of the result(!). These definitions avoid the 397 * the upper 32 bits of the result(!). These definitions avoid the
398 * pitfalls of C arithmetic depending on the types of x and m, and 398 * pitfalls of C arithmetic depending on the types of x and m, and
399 * additionally avoid multiply evaluating their arguments. 399 * additionally avoid multiply evaluating their arguments.
400 */ 400 */
401#define roundup2(x,m) ((((x) - 1) | ((m) - 1)) + 1) 401#define roundup2(x,m) ((((x) - 1) | ((m) - 1)) + 1)
402#define rounddown2(x,m) ((x) & ~((__typeof__(x))((m) - 1))) 402#define rounddown2(x,m) ((x) & ~((__typeof__(x))((m) - 1)))
403 403
404#define powerof2(x) ((((x)-1)&(x))==0) 404#define powerof2(x) ((((x)-1)&(x))==0)
405 405
406/* 406/*
407 * Constants for setting the parameters of the kernel memory allocator. 407 * Constants for setting the parameters of the kernel memory allocator.
408 * 408 *
409 * 2 ** MINBUCKET is the smallest unit of memory that will be 409 * 2 ** MINBUCKET is the smallest unit of memory that will be
410 * allocated. It must be at least large enough to hold a pointer. 410 * allocated. It must be at least large enough to hold a pointer.
411 * 411 *
412 * Units of memory less or equal to MAXALLOCSAVE will permanently 412 * Units of memory less or equal to MAXALLOCSAVE will permanently
413 * allocate physical memory; requests for these size pieces of 413 * allocate physical memory; requests for these size pieces of
414 * memory are quite fast. Allocations greater than MAXALLOCSAVE must 414 * memory are quite fast. Allocations greater than MAXALLOCSAVE must
415 * always allocate and free physical memory; requests for these 415 * always allocate and free physical memory; requests for these
416 * size allocations should be done infrequently as they will be slow. 416 * size allocations should be done infrequently as they will be slow.
417 * 417 *
418 * Constraints: NBPG <= MAXALLOCSAVE <= 2 ** (MINBUCKET + 14), and 418 * Constraints: NBPG <= MAXALLOCSAVE <= 2 ** (MINBUCKET + 14), and
419 * MAXALLOCSAVE must be a power of two. 419 * MAXALLOCSAVE must be a power of two.
420 */ 420 */
421#ifdef _LP64 421#ifdef _LP64
422#define MINBUCKET 5 /* 5 => min allocation of 32 bytes */ 422#define MINBUCKET 5 /* 5 => min allocation of 32 bytes */
423#else 423#else
424#define MINBUCKET 4 /* 4 => min allocation of 16 bytes */ 424#define MINBUCKET 4 /* 4 => min allocation of 16 bytes */
425#endif 425#endif
426#define MAXALLOCSAVE (2 * NBPG) 426#define MAXALLOCSAVE (2 * NBPG)
427 427
428/* 428/*
429 * Scale factor for scaled integers used to count %cpu time and load avgs. 429 * Scale factor for scaled integers used to count %cpu time and load avgs.
430 * 430 *
431 * The number of CPU `tick's that map to a unique `%age' can be expressed 431 * The number of CPU `tick's that map to a unique `%age' can be expressed
432 * by the formula (1 / (2 ^ (FSHIFT - 11))). The maximum load average that 432 * by the formula (1 / (2 ^ (FSHIFT - 11))). The maximum load average that
433 * can be calculated (assuming 32 bits) can be closely approximated using 433 * can be calculated (assuming 32 bits) can be closely approximated using
434 * the formula (2 ^ (2 * (16 - FSHIFT))) for (FSHIFT < 15). 434 * the formula (2 ^ (2 * (16 - FSHIFT))) for (FSHIFT < 15).
435 * 435 *
436 * For the scheduler to maintain a 1:1 mapping of CPU `tick' to `%age', 436 * For the scheduler to maintain a 1:1 mapping of CPU `tick' to `%age',
437 * FSHIFT must be at least 11; this gives us a maximum load avg of ~1024. 437 * FSHIFT must be at least 11; this gives us a maximum load avg of ~1024.
438 */ 438 */
439#define FSHIFT 11 /* bits to right of fixed binary point */ 439#define FSHIFT 11 /* bits to right of fixed binary point */
440#define FSCALE (1<<FSHIFT) 440#define FSCALE (1<<FSHIFT)
441 441
442/* 442/*
443 * The time for a process to be blocked before being very swappable. 443 * The time for a process to be blocked before being very swappable.
444 * This is a number of seconds which the system takes as being a non-trivial 444 * This is a number of seconds which the system takes as being a non-trivial
445 * amount of real time. You probably shouldn't change this; 445 * amount of real time. You probably shouldn't change this;
446 * it is used in subtle ways (fractions and multiples of it are, that is, like 446 * it is used in subtle ways (fractions and multiples of it are, that is, like
447 * half of a ``long time'', almost a long time, etc.) 447 * half of a ``long time'', almost a long time, etc.)
448 * It is related to human patience and other factors which don't really 448 * It is related to human patience and other factors which don't really
449 * change over time. 449 * change over time.
450 */ 450 */
451#define MAXSLP 20 451#define MAXSLP 20
452 452
453/* 453/*
454 * Defaults for Unified Buffer Cache parameters. 454 * Defaults for Unified Buffer Cache parameters.
455 * These may be overridden in <machine/param.h>. 455 * These may be overridden in <machine/param.h>.
456 */ 456 */
457 457
458#ifndef UBC_WINSHIFT 458#ifndef UBC_WINSHIFT
459#define UBC_WINSHIFT 13 459#define UBC_WINSHIFT 13
460#endif 460#endif
461#ifndef UBC_NWINS 461#ifndef UBC_NWINS
462#define UBC_NWINS 1024 462#define UBC_NWINS 1024
463#endif 463#endif
464 464
465#ifdef _KERNEL 465#ifdef _KERNEL
466/* 466/*
467 * macro to convert from milliseconds to hz without integer overflow 467 * macro to convert from milliseconds to hz without integer overflow
468 * Default version using only 32bits arithmetics. 468 * Default version using only 32bits arithmetics.
469 * 64bit port can define 64bit version in their <machine/param.h> 469 * 64bit port can define 64bit version in their <machine/param.h>
470 * 0x20000 is safe for hz < 20000 470 * 0x20000 is safe for hz < 20000
471 */ 471 */
472#ifndef mstohz 472#ifndef mstohz
473#define mstohz(ms) \ 473#define mstohz(ms) \
474 (__predict_false((ms) >= 0x20000) ? \ 474 (__predict_false((ms) >= 0x20000) ? \
475 ((ms +0u) / 1000u) * hz : \ 475 ((ms +0u) / 1000u) * hz : \
476 ((ms +0u) * hz) / 1000u) 476 ((ms +0u) * hz) / 1000u)
477#endif 477#endif
478#ifndef hztoms 478#ifndef hztoms
479#define hztoms(t) \ 479#define hztoms(t) \
480 (__predict_false((t) >= 0x20000) ? \ 480 (__predict_false((t) >= 0x20000) ? \
481 ((t +0u) / hz) * 1000u : \ 481 ((t +0u) / hz) * 1000u : \
482 ((t +0u) * 1000u) / hz) 482 ((t +0u) * 1000u) / hz)
483#endif 483#endif
484 484
485extern const int schedppq; 485extern const int schedppq;
486extern size_t coherency_unit; 486extern size_t coherency_unit;
487 487
488#endif /* _KERNEL */ 488#endif /* _KERNEL */
489 489
490/* 490/*
491 * Minimum alignment of "struct lwp" needed by the architecture. 491 * Minimum alignment of "struct lwp" needed by the architecture.
492 * This counts when packing a lock byte into a word alongside a 492 * This counts when packing a lock byte into a word alongside a
493 * pointer to an LWP. 493 * pointer to an LWP.
494 */ 494 */
495#ifndef MIN_LWP_ALIGNMENT 495#ifndef MIN_LWP_ALIGNMENT
496#define MIN_LWP_ALIGNMENT 32 496#define MIN_LWP_ALIGNMENT 32
497#endif 497#endif
498#endif /* !__ASSEMBLER__ */ 498#endif /* !__ASSEMBLER__ */
499 499
500#endif /* !_SYS_PARAM_H_ */ 500#endif /* !_SYS_PARAM_H_ */