[BACK]Return to param.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / powerpc / include

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>