Annotation of src/sys/arch/powerpc/include/param.h, Revision 1.27.6.2
1.27.6.2! tls 1: /* $NetBSD: param.h,v 1.27.6.1 2012/11/20 03:01:38 tls Exp $ */
1.1 ws 2:
3: /*-
4: * Copyright (C) 1995, 1996 Wolfgang Solfrank.
5: * Copyright (C) 1995, 1996 TooLs GmbH.
6: * All rights reserved.
7: *
8: * Redistribution and use in source and binary forms, with or without
9: * modification, are permitted provided that the following conditions
10: * are met:
11: * 1. Redistributions of source code must retain the above copyright
12: * notice, this list of conditions and the following disclaimer.
13: * 2. Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: * 3. All advertising materials mentioning features or use of this software
17: * must display the following acknowledgement:
18: * This product includes software developed by TooLs GmbH.
19: * 4. The name of TooLs GmbH may not be used to endorse or promote products
20: * derived from this software without specific prior written permission.
21: *
22: * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``AS IS'' AND ANY EXPRESS OR
23: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25: * IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
28: * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32: */
33:
1.10 matt 34: #ifndef _POWERPC_PARAM_H
35: #define _POWERPC_PARAM_H
36:
1.1 ws 37: #ifdef _KERNEL
1.17 matt 38: #if defined(_KERNEL_OPT)
39: #include "opt_ppcarch.h"
40: #endif
1.1 ws 41: #endif
42:
43: /*
44: * Machine dependent constants for PowerPC (32-bit only currently)
1.23 matt 45: * For userland regardless of port, force MACHINE to be "powerpc"
1.1 ws 46: */
1.23 matt 47: #ifndef _KERNEL
48: #undef MACHINE
49: #endif
1.10 matt 50: #ifndef MACHINE
1.1 ws 51: #define MACHINE "powerpc"
1.10 matt 52: #endif
1.1 ws 53: #define MACHINE_ARCH "powerpc"
54: #define MID_MACHINE MID_POWERPC
55:
1.27 matt 56: /* PowerPC-specific macro to align a stack pointer (downwards). */
57: #define STACK_ALIGNBYTES (16 - 1) /* AltiVec */
58:
1.17 matt 59: #ifdef PPC_IBM4XX
60: #define PGSHIFT 14 /* Use 16KB to reduce TLB thrashing */
1.27.6.2! tls 61: #define UPAGES 2
1.17 matt 62: #else
1.1 ws 63: #define PGSHIFT 12
1.17 matt 64: #define UPAGES 4
65: #endif
1.1 ws 66: #define NBPG (1 << PGSHIFT) /* Page size */
67: #define PGOFSET (NBPG - 1)
68:
69: #define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */
70: #define DEV_BSIZE (1 << DEV_BSHIFT)
71: #define BLKDEV_IOSIZE NBPG
1.14 matt 72: #ifndef MAXPHYS
1.1 ws 73: #define MAXPHYS (64 * 1024) /* max raw I/O transfer size */
1.14 matt 74: #endif
1.1 ws 75:
76: #define USPACE (UPAGES * NBPG)
77:
1.4 sakamoto 78: #ifndef MSGBUFSIZE
1.14 matt 79: #define MSGBUFSIZE (2*NBPG) /* default message buffer size */
1.4 sakamoto 80: #endif
81:
1.10 matt 82: #ifndef KERNBASE
1.1 ws 83: #define KERNBASE 0x100000
1.10 matt 84: #endif
1.1 ws 85:
86: /*
87: * Constants related to network buffer management.
1.6 ragge 88: * MCLBYTES must be no larger than NBPG (the software page size), and,
1.1 ws 89: * on machines that exchange pages of input or output buffers with mbuf
90: * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple
91: * of the hardware page size.
92: */
1.18 matt 93: #ifndef MSIZE
1.22 mrg 94: #ifdef _LP64
95: #define MSIZE 512 /* size of an mbuf */
96: #else /* _LP64 */
1.8 itojun 97: #define MSIZE 256 /* size of an mbuf */
1.22 mrg 98: #endif /* _LP64 */
1.18 matt 99: #endif
100: #ifndef MCLSHIFT
1.1 ws 101: #define MCLSHIFT 11 /* convert bytes to m_buf clusters */
1.18 matt 102: #endif
1.1 ws 103: #define MCLBYTES (1 << MCLSHIFT) /* size of a m_buf cluster */
104:
105: /*
1.7 thorpej 106: * Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
107: * logical pages.
1.1 ws 108: */
1.10 matt 109: #ifndef NKMEMPAGES_MIN_DEFAULT
110: #define NKMEMPAGES_MIN_DEFAULT ((16 * 1024 * 1024) >> PAGE_SHIFT)
111: #endif
112: #ifndef NKMEMPAGES_MAX_DEFAULT
1.27.6.1 tls 113: #define NKMEMPAGES_MAX_DEFAULT ((256 * 1024 * 1024) >> PAGE_SHIFT)
1.10 matt 114: #endif
1.1 ws 115:
1.24 matt 116: #if defined(_KERNEL) && !defined(_LOCORE)
117: #include <machine/cpu.h>
118: #endif /* _KERNEL && !_LOCORE */
119:
1.10 matt 120: #endif /* _POWERPC_PARAM_H_ */
CVSweb <webmaster@jp.NetBSD.org>