summaryrefslogtreecommitdiff
path: root/sys/arch/pmax/include/mips_param.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/pmax/include/mips_param.h')
-rw-r--r--sys/arch/pmax/include/mips_param.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/sys/arch/pmax/include/mips_param.h b/sys/arch/pmax/include/mips_param.h
new file mode 100644
index 00000000000..9c3ad6736be
--- /dev/null
+++ b/sys/arch/pmax/include/mips_param.h
@@ -0,0 +1,82 @@
+/* $NetBSD: mips_param.h,v 1.1 1996/05/19 17:52:18 jonathan Exp $ */
+
+/*
+ * Round p (pointer or byte index) up to a correctly-aligned value for all
+ * data types (int, long, ...). The result is u_int and must be cast to
+ * any desired pointer type.
+ */
+#define ALIGNBYTES 7
+#define ALIGN(p) (((u_int)(p) + ALIGNBYTES) &~ ALIGNBYTES)
+
+#define NBPG 4096 /* bytes/page */
+#define PGOFSET (NBPG-1) /* byte offset into page */
+#define PGSHIFT 12 /* LOG2(NBPG) */
+#define NPTEPG (NBPG/4)
+
+#define NBSEG 0x400000 /* bytes/segment */
+#define SEGOFSET (NBSEG-1) /* byte offset into segment */
+#define SEGSHIFT 22 /* LOG2(NBSEG) */
+
+/*
+ * Size of kernel malloc arena in CLBYTES-sized logical pages
+ */
+#ifndef NKMEMCLUSTERS
+#define NKMEMCLUSTERS (512*1024/CLBYTES)
+#endif
+
+/* pages ("clicks") (4096 bytes) to disk blocks */
+#define ctod(x) ((x) << (PGSHIFT - DEV_BSHIFT))
+#define dtoc(x) ((x) >> (PGSHIFT - DEV_BSHIFT))
+
+/* pages to bytes */
+#define ctob(x) ((x) << PGSHIFT)
+#define btoc(x) (((x) + PGOFSET) >> PGSHIFT)
+
+/* bytes to disk blocks */
+#define btodb(x) ((x) >> DEV_BSHIFT)
+#define dbtob(x) ((x) << DEV_BSHIFT)
+
+/*
+ * Map a ``block device block'' to a file system block.
+ * This should be device dependent, and should use the bsize
+ * field from the disk label.
+ * For now though just use DEV_BSIZE.
+ */
+#define bdbtofsb(bn) ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE))
+
+/*
+ * Mach derived conversion macros
+ */
+#define mips_round_page(x) ((((unsigned)(x)) + NBPG - 1) & ~(NBPG-1))
+#define mips_trunc_page(x) ((unsigned)(x) & ~(NBPG-1))
+#define mips_btop(x) ((unsigned)(x) >> PGSHIFT)
+#define mips_ptob(x) ((unsigned)(x) << PGSHIFT)
+
+#ifdef _KERNEL
+#ifndef _LOCORE
+typedef int spl_t;
+extern spl_t splx __P((spl_t));
+extern spl_t splsoftnet __P((void)), splsoftclock __P((void));
+extern spl_t splhigh __P((void));
+extern spl_t spl0 __P((void)); /* XXX should not enable TC on 3min */
+
+extern void setsoftnet __P((void)), clearsoftnet __P((void));
+extern void setsoftclock __P((void)), clearsoftclock __P((void));
+
+
+extern int (*Mach_splnet) __P((void)), (*Mach_splbio) __P((void)),
+ (*Mach_splimp) __P((void)), (*Mach_spltty) __P((void)),
+ (*Mach_splclock) __P((void)), (*Mach_splstatclock) __P((void)),
+ (*Mach_splnone) __P((void));
+#define splnet() ((*Mach_splnet)())
+#define splbio() ((*Mach_splbio)())
+#define splimp() ((*Mach_splimp)())
+#define spltty() ((*Mach_spltty)())
+#define splclock() ((*Mach_splclock)())
+#define splstatclock() ((*Mach_splstatclock)())
+
+extern void wbflush __P ((void)); /* XXX */
+extern void delay __P((int n));
+
+#endif /* _LOCORE */
+#endif /* _KERNEL */