summaryrefslogtreecommitdiffstats
path: root/sys/alpha/include/pmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/alpha/include/pmap.h')
-rw-r--r--sys/alpha/include/pmap.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/alpha/include/pmap.h b/sys/alpha/include/pmap.h
index 56c9d6a..08c78dc 100644
--- a/sys/alpha/include/pmap.h
+++ b/sys/alpha/include/pmap.h
@@ -45,6 +45,9 @@
#ifndef _MACHINE_PMAP_H_
#define _MACHINE_PMAP_H_
+#include <machine/chipset.h>
+#include <sys/systm.h>
+
/*
* Define meanings for a few software bits in the pte
*/
@@ -142,12 +145,16 @@ pmap_kextract(vm_offset_t va)
#define vtophys(va) pmap_kextract(((vm_offset_t) (va)))
-extern vm_offset_t alpha_XXX_dmamap_or;
-
static __inline vm_offset_t
alpha_XXX_dmamap(vm_offset_t va)
{
- return (pmap_kextract(va) | alpha_XXX_dmamap_or);
+ vm_offset_t pa = pmap_kextract(va);
+ if (pa >= chipset.dmsize)
+ panic ("driver uses alpha_XXX_dmamap() for an address that"
+ "is not within direct map");
+ if (chipset.pci_sgmap != NULL)
+ panic ("driver uses alpha_XXX_dmamap() on largemem system");
+ return (pa + chipset.dmoffset);
}
#endif /* _KERNEL */
OpenPOWER on IntegriCloud