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