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