param.h revision 1.25
1/*	$NetBSD: param.h,v 1.25 2009/08/13 05:15:08 matt Exp $	*/
2/*      $OpenBSD: param.h,v 1.9 1997/04/30 09:54:15 niklas Exp $ */
3
4/*
5 * Copyright (c) 1992, 1993
6 *	The Regents of the University of California.  All rights reserved.
7 *
8 * This code is derived from software contributed to Berkeley by
9 * the Systems Programming Group of the University of Utah Computer
10 * Science Department and Ralph Campbell.
11 *
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
14 * are met:
15 * 1. Redistributions of source code must retain the above copyright
16 *    notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright
18 *    notice, this list of conditions and the following disclaimer in the
19 *    documentation and/or other materials provided with the distribution.
20 * 3. Neither the name of the University nor the names of its contributors
21 *    may be used to endorse or promote products derived from this software
22 *    without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 *	from: Utah Hdr: machparam.h 1.11 89/08/14
37 *	from: @(#)param.h	8.1 (Berkeley) 6/10/93
38 */
39/*
40 * Copyright (c) 1988 University of Utah.
41 *
42 * This code is derived from software contributed to Berkeley by
43 * the Systems Programming Group of the University of Utah Computer
44 * Science Department and Ralph Campbell.
45 *
46 * Redistribution and use in source and binary forms, with or without
47 * modification, are permitted provided that the following conditions
48 * are met:
49 * 1. Redistributions of source code must retain the above copyright
50 *    notice, this list of conditions and the following disclaimer.
51 * 2. Redistributions in binary form must reproduce the above copyright
52 *    notice, this list of conditions and the following disclaimer in the
53 *    documentation and/or other materials provided with the distribution.
54 * 3. All advertising materials mentioning features or use of this software
55 *    must display the following acknowledgement:
56 *	This product includes software developed by the University of
57 *	California, Berkeley and its contributors.
58 * 4. Neither the name of the University nor the names of its contributors
59 *    may be used to endorse or promote products derived from this software
60 *    without specific prior written permission.
61 *
62 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
63 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
64 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
65 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
66 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
67 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
68 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
69 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
70 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
71 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
72 * SUCH DAMAGE.
73 *
74 *	from: Utah Hdr: machparam.h 1.11 89/08/14
75 *	from: @(#)param.h	8.1 (Berkeley) 6/10/93
76 */
77
78#ifndef _ARC_PARAM_H_
79#define _ARC_PARAM_H_
80
81/*
82 * Machine-dependent constants (VM, etc) common across MIPS cpus
83 */
84#include <mips/mips_param.h>
85
86/*
87 * Machine dependent constants for ARC BIOS MIPS machines:
88 *	Acer Labs PICA_61
89 *	Deskstation rPC44
90 *	Deskstation Tyne
91 *	Etc
92 */
93#define	_MACHINE_ARCH	mipsel
94#define	MACHINE_ARCH	"mipsel"
95#define	_MACHINE	arc
96#define	MACHINE		"arc"
97
98#define	KERNBASE	0x80000000	/* start of kernel virtual */
99#define	BTOPKERNBASE	((u_long)KERNBASE >> PGSHIFT)
100
101#define	DEV_BSIZE	512
102#define	DEV_BSHIFT	9		/* log2(DEV_BSIZE) */
103#define BLKDEV_IOSIZE	2048
104#define	MAXPHYS		(64 * 1024)	/* max raw I/O transfer size */
105
106#define	SSIZE		1		/* initial stack size/NBPG */
107#define	SINCR		1		/* increment of stack/NBPG */
108
109#define	UPAGES		2		/* pages of u-area */
110#if defined(_LOCORE) && defined(notyet)
111#define	UADDR		0xffffffffffffc000	/* address of u */
112#else
113#define	UADDR		0xffffc000	/* address of u */
114#endif
115#define USPACE		(UPAGES*NBPG)	/* size of u-area in bytes */
116#define	UVPN		(UADDR>>PGSHIFT)/* virtual page number of u */
117#define	KERNELSTACK	(UADDR+UPAGES*NBPG)	/* top of kernel stack */
118
119/*
120 * Constants related to network buffer management.
121 * MCLBYTES must be no larger than NBPG (the software page size), and,
122 * on machines that exchange pages of input or output buffers with mbuf
123 * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple
124 * of the hardware page size.
125 */
126#define	MSIZE		256		/* size of an mbuf */
127
128#ifndef MCLSHIFT
129#define	MCLSHIFT	11		/* convert bytes to m_buf clusters */
130					/* 2K cluster can hold Ether frame */
131#endif	/* MCLSHIFT */
132
133#define	MCLBYTES	(1 << MCLSHIFT)	/* size of a m_buf cluster */
134
135#ifndef NMBCLUSTERS
136#if defined(_KERNEL_OPT)
137#include "opt_gateway.h"
138#endif
139
140#ifdef GATEWAY
141#define	NMBCLUSTERS	2048		/* map size, max cluster allocation */
142#else
143#define	NMBCLUSTERS	1024		/* map size, max cluster allocation */
144#endif
145#endif
146
147/* bytes to disk blocks */
148#define	btodb(x)	((x) >> DEV_BSHIFT)
149#define dbtob(x)	((x) << DEV_BSHIFT)
150
151#ifdef _KERNEL
152#ifndef _LOCORE
153
154extern int cpuspeed;
155void delay(unsigned int n);
156
157#define	DELAY(n)	delay(n)
158
159#include <machine/intr.h>
160
161#endif /* _LOCORE */
162#endif /* _KERNEL */
163
164#endif /* _ARC_PARAM_H_ */
165