1 /*        $NetBSD: param.h,v 1.31 2025/04/20 22:32:49 riastradh Exp $ */
2 
3 /*        $OpenBSD: param.h,v 1.12 2001/07/06 02:07:41 provos Exp $   */
4 
5 /*
6  * Copyright (c) 1988-1994, The University of Utah and
7  * the Computer Systems Laboratory at the University of Utah (CSL).
8  * All rights reserved.
9  *
10  * Permission to use, copy, modify and distribute this software is hereby
11  * granted provided that (1) source code retains these copyright, permission,
12  * and disclaimer notices, and (2) redistributions including binaries
13  * reproduce the notices in supporting documentation, and (3) all advertising
14  * materials mentioning features or use of this software display the following
15  * acknowledgement: ``This product includes software developed by the
16  * Computer Systems Laboratory at the University of Utah.''
17  *
18  * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
19  * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
20  * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
21  *
22  * CSL requests users of this software to return to csl-dist@cs.utah.edu any
23  * improvements that they make and grant CSL redistribution rights.
24  *
25  *        Utah $Hdr: param.h 1.18 94/12/16$
26  */
27 
28 #ifdef _KERNEL
29 #include <machine/cpu.h>
30 #ifdef _KERNEL_OPT
31 #include "opt_param.h"
32 #endif
33 #endif
34 
35 /*
36  * Machine dependent constants for PA-RISC.
37  */
38 
39 #define   _MACHINE  hppa
40 #define   MACHINE             "hppa"
41 #define   _MACHINE_ARCH       hppa
42 #define   MACHINE_ARCH        "hppa"
43 #define   MID_MACHINE         MID_HPPA
44 
45 #define   PGSHIFT             12                  /* LOG2(NBPG) */
46 #define   NBPG                (1 << PGSHIFT)      /* bytes/page */
47 #define   PGOFSET             (NBPG - 1)          /* byte offset into page */
48 
49 #define   SEGSHIFT  (PGSHIFT + (PGSHIFT-PTESHIFT))          /* LOG2(NBSEG) */
50 #define NBSEG                 (1 << SEGSHIFT)     /* bytes/segment (quadrant) */
51 #define   SEGOFSET  (NBSEG - 1)         /* byte offset into segment */
52 
53 #define   KERNBASE  0x00000000          /* start of kernel virtual */
54 #define   BTOPKERNBASE        ((u_long)KERNBASE >> PGSHIFT)
55 
56 #define   SSIZE               (1)                 /* initial stack size/NBPG */
57 #define   SINCR               (1)                 /* increment of stack/NBPG */
58 
59 #ifdef DIAGNOSTIC
60 #define   UPAGES              5                   /* pages of u-area + redzone */
61 #else
62 #define   UPAGES              4                   /* pages of u-area */
63 #endif
64 #define   USPACE              (UPAGES * NBPG)     /* pages for user struct and kstack */
65 
66 #ifndef   MSGBUFSIZE
67 #define   MSGBUFSIZE          (4 * NBPG)          /* default message buffer size */
68 #endif
69 
70 /*
71  * Constants related to network buffer management.
72  * MCLBYTES must be no larger than the software page size, and,
73  * on machines that exchange pages of input or output buffers with mbuf
74  * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple
75  * of the hardware page size.
76  */
77 #define   MSIZE               256                 /* size of an mbuf */
78 #define   MCLSHIFT  11
79 #define   MCLBYTES  (1 << MCLSHIFT)     /* large enough for ether MTU */
80 #define   MCLOFSET  (MCLBYTES - 1)
81 
82 #define   STACK_ALIGNBYTES    (64 - 1)
83 
84 /*
85  * Size of kernel malloc arena in logical pages
86  */
87 #define NKMEMPAGES_MIN_DEFAULT  ((16 * 1024 * 1024) >> PAGE_SHIFT)
88 #define NKMEMPAGES_MAX_DEFAULT  ((256 * 1024 * 1024) >> PAGE_SHIFT)
89 
90 /*
91  * Mach derived conversion macros
92  */
93 
94 #define btop(x)               ((unsigned long)(x) >> PGSHIFT)
95 #define ptob(x)               ((unsigned long)(x) << PGSHIFT)
96 
97 /* Default audio blocksize in msec.  See sys/dev/audio/audio.c */
98 #if defined(_KERNEL)
99 #define   __AUDIO_BLK_MS (40)
100 #endif
101