+#define MACHINE "tahoe"
+
+#ifndef BYTE_ORDER
+#include <machine/endian.h>
+#endif
+
+#define CHAR_BIT NBBY
+#define CHAR_MAX 0x7f
+#define CHAR_MIN 0x80
+#define CLK_TCK 60 /* for times() */
+#define INT_MAX 0x7fffffff
+#define INT_MIN 0x80000000
+#define LONG_MAX 0x7fffffff
+#define LONG_MIN 0x80000000
+#define SCHAR_MAX 0x7f
+#define SCHAR_MIN 0x80
+#define SHRT_MAX 0x7fff
+#define SHRT_MIN 0x8000
+#define UCHAR_MAX 0xff
+#define UINT_MAX 0xffffffff
+#define ULONG_MAX 0xffffffff
+#define USHRT_MAX 0xffff
+
+#define NBPG 1024 /* bytes/page */
+#define PGOFSET (NBPG-1) /* byte offset into page */
+#define PGSHIFT 10 /* LOG2(NBPG) */
+#define NPTEPG (NBPG/(sizeof (struct pte)))
+
+#define KERNBASE 0xc0000000 /* start of kernel virtual */
+#define BTOPKERNBASE ((u_long)KERNBASE >> PGSHIFT)
+
+#define KERNBASE 0xc0000000 /* start of kernel virtual */
+#define BTOPKERNBASE ((u_long)KERNBASE >> PGSHIFT)
+
+#ifndef SECSIZE
+#define DEV_BSIZE 1024
+#define DEV_BSHIFT 10 /* log2(DEV_BSIZE) */
+#define BLKDEV_IOSIZE 1024 /* NBPG for physical controllers */
+#define MAXPHYS (64 * 1024) /* max raw I/O transfer size */
+#else SECSIZE
+/*
+ * Devices without disk labels and the swap virtual device
+ * use "blocks" of exactly pagesize. Devices with disk labels
+ * use device-dependent sector sizes for block and character interfaces.
+ */
+#define DEV_BSIZE NBPG
+#define DEV_BSHIFT PGSHIFT /* log2(DEV_BSIZE) */
+#define BLKDEV_IOSIZE NBPG /* NBPG for unlabeled block devices */
+#endif SECSIZE
+#define MAXPHYS (64 * 1024) /* max raw I/O transfer size */