aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/sym
diff options
context:
space:
mode:
authorStefan Eßer <se@FreeBSD.org>2005-01-01 19:05:46 +0000
committerStefan Eßer <se@FreeBSD.org>2005-01-01 19:05:46 +0000
commitb67e92b0388e95a238984c5cebaa954e6ee7e951 (patch)
treed1d94fa506245829b78bdbe30a7111cf53b4a439 /sys/dev/sym
parent9a706e4158416b872fcf1e19eb2b334f54762206 (diff)
Notes
Diffstat (limited to 'sys/dev/sym')
-rw-r--r--sys/dev/sym/sym_hipd.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/sym/sym_hipd.c b/sys/dev/sym/sym_hipd.c
index ced33f34c166..a7376712a351 100644
--- a/sys/dev/sym/sym_hipd.c
+++ b/sys/dev/sym/sym_hipd.c
@@ -431,7 +431,11 @@ static void MDELAY(int ms) { while (ms--) UDELAY(1000); }
*/
#define MEMO_SHIFT 4 /* 16 bytes minimum memory chunk */
+#ifndef __amd64__
#define MEMO_PAGE_ORDER 0 /* 1 PAGE maximum */
+#else
+#define MEMO_PAGE_ORDER 1 /* 2 PAGEs maximum on amd64 */
+#endif
#if 0
#define MEMO_FREE_UNUSED /* Free unused pages immediately */
#endif
@@ -440,8 +444,14 @@ static void MDELAY(int ms) { while (ms--) UDELAY(1000); }
#define MEMO_CLUSTER_SIZE (1UL << MEMO_CLUSTER_SHIFT)
#define MEMO_CLUSTER_MASK (MEMO_CLUSTER_SIZE-1)
+#ifndef __amd64__
#define get_pages() malloc(MEMO_CLUSTER_SIZE, M_DEVBUF, M_NOWAIT)
#define free_pages(p) free((p), M_DEVBUF)
+#else
+#define get_pages() contigmalloc(MEMO_CLUSTER_SIZE, M_DEVBUF, \
+ 0, 0, 1LL << 32, PAGE_SIZE, 1LL << 32)
+#define free_pages(p) contigfree((p), MEMO_CLUSTER_SIZE, M_DEVBUF)
+#endif
typedef u_long m_addr_t; /* Enough bits to bit-hack addresses */