summaryrefslogtreecommitdiffstats
path: root/sys/sparc64/include/param.h
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2001-07-31 06:05:05 +0000
committerjake <jake@FreeBSD.org>2001-07-31 06:05:05 +0000
commitfb7edc502f41d82771205b77ec72ec6f85c7992a (patch)
tree09518e5a462c7f369bd3cbd7d956ad24588b2a9b /sys/sparc64/include/param.h
parent489876bc4dc75168229017bfd4c2a43ec2711417 (diff)
downloadFreeBSD-src-fb7edc502f41d82771205b77ec72ec6f85c7992a.zip
FreeBSD-src-fb7edc502f41d82771205b77ec72ec6f85c7992a.tar.gz
Flesh out the sparc64 port considerably. This contains:
- mostly complete kernel pmap support, and tested but currently turned off userland pmap support - low level assembly language trap, context switching and support code - fully implemented atomic.h and supporting cpufunc.h - some support for kernel debugging with ddb - various header tweaks and filling out of machine dependent structures
Diffstat (limited to 'sys/sparc64/include/param.h')
-rw-r--r--sys/sparc64/include/param.h48
1 files changed, 25 insertions, 23 deletions
diff --git a/sys/sparc64/include/param.h b/sys/sparc64/include/param.h
index c164134..a54bb1b 100644
--- a/sys/sparc64/include/param.h
+++ b/sys/sparc64/include/param.h
@@ -85,15 +85,25 @@
#define ALIGNBYTES _ALIGNBYTES
#define ALIGN(p) _ALIGN(p)
-#define PAGE_SHIFT 13 /* LOG2(PAGE_SIZE) */
-#define PAGE_SIZE (1<<PAGE_SHIFT) /* bytes/page */
-#define PAGE_MASK (PAGE_SIZE-1)
-#define NPTEPG (PAGE_SIZE/(sizeof (pt_entry_t)))
+#define PAGE_SHIFT_8K 13
+#define PAGE_SIZE_8K (1<<PAGE_SHIFT_8K)
+#define PAGE_MASK_8K (PAGE_SIZE_8K-1)
-#define NPDEPG (PAGE_SIZE/(sizeof (pd_entry_t)))
-#define PDRSHIFT 22 /* LOG2(NBPDR) */
-#define NBPDR (1<<PDRSHIFT) /* bytes/page dir */
-#define PDRMASK (NBPDR-1)
+#define PAGE_SHIFT_64K 16
+#define PAGE_SIZE_64K (1<<PAGE_SHIFT_64K)
+#define PAGE_MASK_64K (PAGE_SIZE_64K-1)
+
+#define PAGE_SHIFT_512K 19
+#define PAGE_SIZE_512K (1<<PAGE_SHIFT_512K)
+#define PAGE_MASK_512K (PAGE_SIZE_512K-1)
+
+#define PAGE_SHIFT_4M 22
+#define PAGE_SIZE_4M (1<<PAGE_SHIFT_4M)
+#define PAGE_MASK_4M (PAGE_SIZE_4M-1)
+
+#define PAGE_SHIFT PAGE_SHIFT_8K /* LOG2(PAGE_SIZE) */
+#define PAGE_SIZE PAGE_SIZE_8K /* bytes/page */
+#define PAGE_MASK PAGE_MASK_8K
#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */
#define DEV_BSIZE (1<<DEV_BSHIFT)
@@ -126,32 +136,24 @@
*/
/* clicks to bytes */
-#define ctob(x) ((x)<<PAGE_SHIFT)
+#define ctob(x) ((unsigned long)(x)<<PAGE_SHIFT)
/* bytes to clicks */
-#define btoc(x) (((unsigned)(x)+PAGE_MASK)>>PAGE_SHIFT)
+#define btoc(x) (((unsigned long)(x)+PAGE_MASK)>>PAGE_SHIFT)
-/*
- * btodb() is messy and perhaps slow because `bytes' may be an off_t. We
- * want to shift an unsigned type to avoid sign extension and we don't
- * want to widen `bytes' unnecessarily. Assume that the result fits in
- * a daddr_t.
- */
+/* bytes to disk blocks */
#define btodb(bytes) /* calculates (bytes / DEV_BSIZE) */ \
- (sizeof (bytes) > sizeof(long) \
- ? (daddr_t)((unsigned long long)(bytes) >> DEV_BSHIFT) \
- : (daddr_t)((unsigned long)(bytes) >> DEV_BSHIFT))
+ (daddr_t)((unsigned long)(bytes) >> DEV_BSHIFT)
+/* disk blocks to bytes */
#define dbtob(db) /* calculates (db * DEV_BSIZE) */ \
- ((off_t)(db) << DEV_BSHIFT)
+ (off_t)((unsigned long)(db) << DEV_BSHIFT)
/*
* Mach derived conversion macros
*/
-#define trunc_page(x) ((unsigned long)(x) & ~PAGE_MASK)
#define round_page(x) (((unsigned long)(x) + PAGE_MASK) & ~PAGE_MASK)
-#define trunc_4mpage(x) ((unsigned long)(x) & ~PDRMASK)
-#define round_4mpage(x) ((((unsigned long)(x)) + PDRMASK) & ~PDRMASK)
+#define trunc_page(x) ((unsigned long)(x) & ~PAGE_MASK)
#define atop(x) ((unsigned long)(x) >> PAGE_SHIFT)
#define ptoa(x) ((unsigned long)(x) << PAGE_SHIFT)
OpenPOWER on IntegriCloud