aboutsummaryrefslogtreecommitdiff
path: root/vm/vm_page.h
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2023-08-14 10:40:11 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-08-14 10:40:51 +0200
commit28c51f7f60281bf3acbefd47e8233ae40de1e463 (patch)
tree8e5709834780fab0a85e909fedc3dc047902974e /vm/vm_page.h
parent952872cb67bd811991dd558dd4e5d28e7d16b21b (diff)
downloadgnumach-28c51f7f60281bf3acbefd47e8233ae40de1e463.tar.gz
gnumach-28c51f7f60281bf3acbefd47e8233ae40de1e463.tar.bz2
gnumach-28c51f7f60281bf3acbefd47e8233ae40de1e463.zip
vm: Fix ordering of addresses between DMA32 and DIRECTMAP
Diffstat (limited to 'vm/vm_page.h')
-rw-r--r--vm/vm_page.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/vm/vm_page.h b/vm/vm_page.h
index b2581d9e..f4761f3f 100644
--- a/vm/vm_page.h
+++ b/vm/vm_page.h
@@ -162,8 +162,13 @@ void vm_page_check(const struct vm_page *page);
*/
#define VM_PAGE_DMA 0x01
+#if defined(VM_PAGE_DMA32_LIMIT) && VM_PAGE_DMA32_LIMIT > VM_PAGE_DIRECTMAP_LIMIT
+#define VM_PAGE_DIRECTMAP 0x02
+#define VM_PAGE_DMA32 0x04
+#else
#define VM_PAGE_DMA32 0x02
#define VM_PAGE_DIRECTMAP 0x04
+#endif
#define VM_PAGE_HIGHMEM 0x08
extern
@@ -327,13 +332,24 @@ extern unsigned int vm_page_info(
*
* Selector-to-segment-list translation table :
* DMA DMA
+ * if 32bit PAE
+ * DIRECTMAP DMA32 DMA
+ * DMA32 DMA32 DIRECTMAP DMA
+ * HIGHMEM HIGHMEM DMA32 DIRECTMAP DMA
+ * else
* DMA32 DMA32 DMA
* DIRECTMAP DIRECTMAP DMA32 DMA
* HIGHMEM HIGHMEM DIRECTMAP DMA32 DMA
+ * endif
*/
#define VM_PAGE_SEL_DMA 0
+#if defined(VM_PAGE_DMA32_LIMIT) && VM_PAGE_DMA32_LIMIT > VM_PAGE_DIRECTMAP_LIMIT
+#define VM_PAGE_SEL_DIRECTMAP 1
+#define VM_PAGE_SEL_DMA32 2
+#else
#define VM_PAGE_SEL_DMA32 1
#define VM_PAGE_SEL_DIRECTMAP 2
+#endif
#define VM_PAGE_SEL_HIGHMEM 3
/*