[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.20.60.1

1.20.60.1! yamt        1: /*     $NetBSD: param.h,v 1.20 2006/08/28 13:43:35 yamt 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: #ifndef        _LOCORE
                     42: #include <machine/cpu.h>
                     43: #endif /* _LOCORE */
                     44: #endif
                     45:
                     46: /*
                     47:  * Machine dependent constants for PowerPC (32-bit only currently)
                     48:  */
1.10      matt       49: #ifndef MACHINE
1.1       ws         50: #define        MACHINE         "powerpc"
1.10      matt       51: #endif
1.1       ws         52: #define        MACHINE_ARCH    "powerpc"
                     53: #define        MID_MACHINE     MID_POWERPC
                     54:
1.2       fvdl       55: #define        ALIGNBYTES              (sizeof(double) - 1)
1.15      matt       56: #define        ALIGN(p)                (((u_long)(p) + ALIGNBYTES) & ~ALIGNBYTES)
1.17      matt       57: #define        ALIGNED_POINTER(p,t)    ((((u_long)(p)) & (sizeof(t)-1)) == 0)
1.1       ws         58:
1.17      matt       59: #ifdef PPC_IBM4XX
                     60: #define        PGSHIFT         14      /* Use 16KB to reduce TLB thrashing */
                     61: #define        UPAGES          1
                     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.8       itojun     94: #define        MSIZE           256             /* size of an mbuf */
1.18      matt       95: #endif
                     96: #ifndef MCLSHIFT
1.1       ws         97: #define        MCLSHIFT        11              /* convert bytes to m_buf clusters */
1.18      matt       98: #endif
1.1       ws         99: #define        MCLBYTES        (1 << MCLSHIFT) /* size of a m_buf cluster */
                    100:
                    101: /*
1.7       thorpej   102:  * Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
                    103:  * logical pages.
1.1       ws        104:  */
1.10      matt      105: #ifndef NKMEMPAGES_MIN_DEFAULT
                    106: #define        NKMEMPAGES_MIN_DEFAULT  ((16 * 1024 * 1024) >> PAGE_SHIFT)
                    107: #endif
                    108: #ifndef NKMEMPAGES_MAX_DEFAULT
1.7       thorpej   109: #define        NKMEMPAGES_MAX_DEFAULT  ((128 * 1024 * 1024) >> PAGE_SHIFT)
1.10      matt      110: #endif
1.1       ws        111:
1.10      matt      112: #endif /* _POWERPC_PARAM_H_ */

CVSweb <webmaster@jp.NetBSD.org>