summaryrefslogtreecommitdiff
path: root/sys/arch/sparc64/include/param.h
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2013-03-23 16:12:32 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2013-03-23 16:12:32 +0000
commit73c9f13809997febbf178be4123a0352ee8b8312 (patch)
tree4a514d179014528fcaa112abb942d619dc1ae9ca /sys/arch/sparc64/include/param.h
parent3ea8990ba9276efe1c2bbde129074f8dd9b8c992 (diff)
refactor sys/param.h and machine/param.h. A lot of #ifdef _KERNEL is added
to keep definitions our of user space. The MD files now follow a consistant order -- all namespace intrusion is at the tail can be cleaned up independently. locore, bootblocks, and libkvm still see enough visibility to build. Checked on 90% of platforms...
Diffstat (limited to 'sys/arch/sparc64/include/param.h')
-rw-r--r--sys/arch/sparc64/include/param.h103
1 files changed, 42 insertions, 61 deletions
diff --git a/sys/arch/sparc64/include/param.h b/sys/arch/sparc64/include/param.h
index 3e1b685677c..4e2bd923ed8 100644
--- a/sys/arch/sparc64/include/param.h
+++ b/sys/arch/sparc64/include/param.h
@@ -1,5 +1,4 @@
-/* $OpenBSD: param.h,v 1.36 2011/09/08 03:40:32 guenther Exp $ */
-/* $NetBSD: param.h,v 1.25 2001/05/30 12:28:51 mrg Exp $ */
+/* $OpenBSD: param.h,v 1.37 2013/03/23 16:12:28 deraadt Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -37,8 +36,6 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
- *
- * @(#)param.h 8.1 (Berkeley) 6/11/93
*/
/*
@@ -49,7 +46,7 @@
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -64,8 +61,8 @@
*
*/
-#ifndef _MACHINE_PARAM_H_
-#define _MACHINE_PARAM_H_
+#ifndef _MACHINE_PARAM_H_
+#define _MACHINE_PARAM_H_
#define _MACHINE sparc64
#define MACHINE "sparc64"
@@ -77,20 +74,15 @@
#define ALIGN(p) _ALIGN(p)
#define ALIGNED_POINTER(p,t) _ALIGNED_POINTER(p,t)
-#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */
-#define DEV_BSIZE (1 << DEV_BSHIFT)
-#define BLKDEV_IOSIZE 2048
-#define MAXPHYS (64 * 1024)
-
-/* We get stack overflows w/8K stacks in 64-bit mode */
-#define UPAGES 2 /* initial stack size in pages */
-#define USPACE (UPAGES*8192)
-#define USPACE_ALIGN (0) /* u-area alignment 0-none */
-
+#define PAGE_SHIFT 13
+#define PAGE_SIZE (1 << PAGE_SHIFT)
+#define PAGE_MASK (PAGE_SIZE - 1)
+#define PGSHIFT PAGE_SHIFT /* LOG2(PAGE_SIZE) */
+#define PGOFSET PAGE_MASK /* byte offset into page */
/*
* Here are all the magic kernel virtual addresses and how they're allocated.
- *
+ *
* First, the PROM is usually a fixed-sized block from 0x00000000f0000000 to
* 0x00000000f0100000. It also uses some space around 0x00000000fff00000 to
* map in device registers. The rest is pretty much ours to play with.
@@ -105,7 +97,7 @@
* 0x0000000000000000: 64K NFO page zero
* 0x0000000000010000: Userland or PROM
* KERNBASE: 4MB kernel text and read only data
- * This is mapped in the ITLB and
+ * This is mapped in the ITLB and
* Read-Only in the DTLB
* KERNBASE+0x400000: 4MB kernel data and BSS -- not in ITLB
* Contains context table, kernel pmap,
@@ -124,9 +116,12 @@
*
*/
#define KERNBASE 0x001000000 /* start of kernel virtual space */
+
+#ifdef _KERNEL
+
#define KERNEND 0x0e0000000 /* end of kernel virtual space */
-#define _MAXNBPG 8192 /* fixed VAs, independent of actual NBPG */
+#define _MAXNBPG 8192 /* fixed VAs, independent of actual NBPG */
#define AUXREG_VA ( KERNEND + _MAXNBPG) /* 1 page REDZONE */
#define TMPMAP_VA ( AUXREG_VA + _MAXNBPG)
@@ -134,33 +129,28 @@
/*
* Here's the location of the interrupt stack and CPU structure.
*/
-#define INTSTACK ( KERNEND + 8*_MAXNBPG)/* 64K after kernel end */
+#define INTSTACK ( KERNEND + 8*_MAXNBPG)/* 64K after kernel end */
#define EINTSTACK ( INTSTACK + 2*USPACE) /* 32KB */
#define CPUINFO_VA ( EINTSTACK)
-/*
- * Constants related to network buffer management.
- */
-#define NMBCLUSTERS 4096 /* map size, max cluster allocation */
+#define NBPG PAGE_SIZE /* bytes/page */
+
+#define UPAGES 2 /* pages of u-area */
+#define USPACE (UPAGES * PAGE_SIZE) /* total size of u-area */
+#define USPACE_ALIGN 0 /* u-area alignment 0-none */
-#define MSGBUFSIZE NBPG
+#define NMBCLUSTERS 4096 /* map size, max cluster allocation */
+
+#ifndef MSGBUFSIZE
+#define MSGBUFSIZE (1 * PAGE_SIZE)
+#endif
/*
- * Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized
+ * Maximum size of the kernel malloc arena in PAGE_SIZE-sized
* logical pages.
*/
-#define NKMEMPAGES_MIN_DEFAULT ((8 * 1024 * 1024) >> PAGE_SHIFT)
#define NKMEMPAGES_MAX_DEFAULT ((128 * 1024 * 1024) >> PAGE_SHIFT)
-/* pages ("clicks") to disk blocks */
-#define ctod(x) ((x) << (PGSHIFT - DEV_BSHIFT))
-#define dtoc(x) ((x) >> (PGSHIFT - DEV_BSHIFT))
-
-/* bytes to disk blocks */
-#define btodb(x) ((x) >> DEV_BSHIFT)
-#define dbtob(x) ((x) << DEV_BSHIFT)
-
-#ifdef _KERNEL
#ifndef _LOCORE
extern void delay(unsigned int);
@@ -169,44 +159,35 @@ extern void delay(unsigned int);
extern int cputyp;
#if defined (SUN4US) || defined (SUN4V)
-#define CPU_ISSUN4U (cputyp == CPU_SUN4U)
-#define CPU_ISSUN4US (cputyp == CPU_SUN4US)
-#define CPU_ISSUN4V (cputyp == CPU_SUN4V)
+#define CPU_ISSUN4U (cputyp == CPU_SUN4U)
+#define CPU_ISSUN4US (cputyp == CPU_SUN4US)
+#define CPU_ISSUN4V (cputyp == CPU_SUN4V)
#else
-#define CPU_ISSUN4U (1)
-#define CPU_ISSUN4US (0)
-#define CPU_ISSUN4V (0)
+#define CPU_ISSUN4U (1)
+#define CPU_ISSUN4US (0)
+#define CPU_ISSUN4V (0)
#endif
#endif /* _LOCORE */
-#endif /* _KERNEL */
/*
* Values for the cputyp variable.
*/
-#define CPU_SUN4 0
-#define CPU_SUN4C 1
-#define CPU_SUN4M 2
-#define CPU_SUN4U 3
-#define CPU_SUN4US 4
-#define CPU_SUN4V 5
+#define CPU_SUN4 0
+#define CPU_SUN4C 1
+#define CPU_SUN4M 2
+#define CPU_SUN4U 3
+#define CPU_SUN4US 4
+#define CPU_SUN4V 5
/*
* On a sun4u machine, the page size is 8192.
*/
-#define NBPG 8192 /* bytes/page */
-#define PGOFSET (NBPG-1) /* byte offset into page */
-#define PGSHIFT 13 /* log2(NBPG) */
-
-#define PAGE_SHIFT 13
-#define PAGE_SIZE (1 << PAGE_SHIFT)
-#define PAGE_MASK (PAGE_SIZE - 1)
-
-#ifdef _KERNEL
#ifndef _LOCORE
#include <machine/cpu.h>
#endif
-#endif
-#endif /* _MACHINE_PARAM_H_ */
+#endif /* _KERNEL */
+
+#endif /* _MACHINE_PARAM_H_ */