1/* $FreeBSD: head/sys/ia64/include/param.h 96606 2002-05-14 20:35:29Z phk $ */
|
1/* $FreeBSD: head/sys/ia64/include/param.h 96912 2002-05-19 04:42:19Z marcel $ */ |
2/* From: NetBSD: param.h,v 1.20 1997/09/19 13:52:53 leo Exp */ 3 4/* 5 * Copyright (c) 1988 University of Utah. 6 * Copyright (c) 1992, 1993 7 * The Regents of the University of California. All rights reserved. 8 * 9 * This code is derived from software contributed to Berkeley by 10 * the Systems Programming Group of the University of Utah Computer 11 * Science Department and Ralph Campbell. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following conditions 15 * are met: 16 * 1. Redistributions of source code must retain the above copyright 17 * notice, this list of conditions and the following disclaimer. 18 * 2. Redistributions in binary form must reproduce the above copyright 19 * notice, this list of conditions and the following disclaimer in the 20 * documentation and/or other materials provided with the distribution. 21 * 3. All advertising materials mentioning features or use of this software 22 * must display the following acknowledgement: 23 * This product includes software developed by the University of 24 * California, Berkeley and its contributors. 25 * 4. Neither the name of the University nor the names of its contributors 26 * may be used to endorse or promote products derived from this software 27 * without specific prior written permission. 28 * 29 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 30 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 31 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 32 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 33 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 34 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 35 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 37 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 38 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 39 * SUCH DAMAGE. 40 * 41 * from: Utah $Hdr: machparam.h 1.11 89/08/14$ 42 * 43 * @(#)param.h 8.1 (Berkeley) 6/10/93 44 */ 45 46/* 47 * Machine dependent constants for the IA64. 48 */ 49/* 50 * Round p (pointer or byte index) up to a correctly-aligned value for all 51 * data types (int, long, ...). The result is u_long and must be cast to 52 * any desired pointer type. 53 * 54 * ALIGNED_POINTER is a boolean macro that checks whether an address 55 * is valid to fetch data elements of type t from on this architecture. 56 * This does not reflect the optimal alignment, just the possibility 57 * (within reasonable limits). 58 * 59 */ 60#ifndef _ALIGNBYTES 61#define _ALIGNBYTES 7 62#endif 63#ifndef _ALIGN 64#define _ALIGN(p) (((u_long)(p) + _ALIGNBYTES) &~ _ALIGNBYTES) 65#endif 66#ifndef _ALIGNED_POINTER 67#define _ALIGNED_POINTER(p,t) ((((u_long)(p)) & (sizeof(t)-1)) == 0) 68#endif 69 70#ifndef _MACHINE 71#define _MACHINE ia64 72#endif
|
73#ifndef MACHINE
74#define MACHINE "ia64"
75#endif
|
73#ifndef _MACHINE_ARCH 74#define _MACHINE_ARCH ia64 75#endif
|
76 77#ifndef _NO_NAMESPACE_POLLUTION 78 79#ifndef _MACHINE_PARAM_H_ 80#define _MACHINE_PARAM_H_ 81 82#ifndef MACHINE 83#define MACHINE "ia64" 84#endif |
85#ifndef MACHINE_ARCH 86#define MACHINE_ARCH "ia64" 87#endif 88#define MID_MACHINE MID_IA64 89
|
84#include <machine/ia64_cpu.h>
85#include <machine/cpu.h>
86
|
90/* 91 * OBJFORMAT_NAMES is a comma-separated list of the object formats 92 * that are supported on the architecture. 93 */ 94#define OBJFORMAT_NAMES "elf" 95#define OBJFORMAT_DEFAULT "elf" 96 97#ifdef SMP 98#define MAXCPU 16 99#else 100#define MAXCPU 1 101#endif 102 103/* 104 * Round p (pointer or byte index) up to a correctly-aligned value for all 105 * data types (int, long, ...). The result is u_long and must be cast to 106 * any desired pointer type. 107 * 108 * ALIGNED_POINTER is a boolean macro that checks whether an address 109 * is valid to fetch data elements of type t from on this architecture. 110 * This does not reflect the optimal alignment, just the possibility 111 * (within reasonable limits). 112 * 113 */ 114#define ALIGNBYTES _ALIGNBYTES 115#define ALIGN(p) _ALIGN(p) 116#define ALIGNED_POINTER(p,t) _ALIGNED_POINTER(p,t) 117 118#if !defined(PAGE_SIZE_4K) && !defined(PAGE_SIZE_8K) && !defined(PAGE_SIZE_16K) 119#define PAGE_SIZE_8K 120#endif 121 122#ifdef PAGE_SIZE_4K 123#define PAGE_SIZE 4096 /* bytes/page */ 124#define PAGE_SHIFT 12 125#endif 126#ifdef PAGE_SIZE_8K 127#define PAGE_SIZE 8192 /* bytes/page */ 128#define PAGE_SHIFT 13 129#endif 130#ifdef PAGE_SIZE_16K 131#define PAGE_SIZE 16384 /* bytes/page */ 132#define PAGE_SHIFT 14 133#endif 134 135#define PAGE_MASK (PAGE_SIZE-1) 136#define NPTEPG (PAGE_SIZE/(sizeof (pt_entry_t))) 137
|
135#define KERNBASE 0xfffffc0000300000LL /* start of kernel virtual */
136#define BTOPKERNBASE ((u_long)KERNBASE >> PGSHIFT)
137
|
138#define CLSIZE 1 139#define CLSIZELOG2 0 140 141/* NOTE: SSIZE, SINCR and UPAGES must be multiples of CLSIZE */ 142#define SSIZE 1 /* initial stack size/NBPG */ 143#define SINCR 1 /* increment of stack/NBPG */ 144 145#define KSTACK_PAGES 4 /* pages of kernel stack */ 146#define UAREA_PAGES 1 /* pages of u-area */ 147
|
148/* #define KSTACK_GUARD */ /* compile in kstack guard page */
149
|
148/* 149 * Mach derived conversion macros 150 */ 151#define round_page(x) ((((unsigned long)(x)) + PAGE_MASK) & ~(PAGE_MASK)) 152#define trunc_page(x) ((unsigned long)(x) & ~(PAGE_MASK)) 153 154#define atop(x) ((unsigned long)(x) >> PAGE_SHIFT) 155#define ptoa(x) ((unsigned long)(x) << PAGE_SHIFT) 156 157#define ia64_btop(x) ((unsigned long)(x) >> PAGE_SHIFT) 158#define ia64_ptob(x) ((unsigned long)(x) << PAGE_SHIFT) 159 160#define pgtok(x) ((x) * (PAGE_SIZE / 1024))
|
161 162#endif /* !_MACHINE_PARAM_H_ */ 163#endif /* !_NO_NAMESPACE_POLLUTION */ |
|