Page MenuHomeFreeBSD

D26467.id77143.diff
No OneTemporary

D26467.id77143.diff

Index: sys/amd64/include/vmparam.h
===================================================================
--- sys/amd64/include/vmparam.h
+++ sys/amd64/include/vmparam.h
@@ -253,4 +253,9 @@
*/
#define VM_BATCHQUEUE_SIZE 31
+/*
+ * The pmap can create non-transparent large page mappings.
+ */
+#define PMAP_HAS_LARGEPAGES 1
+
#endif /* _MACHINE_VMPARAM_H_ */
Index: sys/arm/include/vmparam.h
===================================================================
--- sys/arm/include/vmparam.h
+++ sys/arm/include/vmparam.h
@@ -193,4 +193,9 @@
#define DEVMAP_MAX_VADDR ARM_VECTORS_HIGH
+/*
+ * No non-transparent large page support in the pmap.
+ */
+#define PMAP_HAS_LARGEPAGES 0
+
#endif /* _MACHINE_VMPARAM_H_ */
Index: sys/arm64/include/vmparam.h
===================================================================
--- sys/arm64/include/vmparam.h
+++ sys/arm64/include/vmparam.h
@@ -243,4 +243,9 @@
#define DEVMAP_MAX_VADDR VM_MAX_KERNEL_ADDRESS
+/*
+ * The pmap can create non-transparent large page mappings.
+ */
+#define PMAP_HAS_LARGEPAGES 1
+
#endif /* !_MACHINE_VMPARAM_H_ */
Index: sys/i386/include/vmparam.h
===================================================================
--- sys/i386/include/vmparam.h
+++ sys/i386/include/vmparam.h
@@ -240,4 +240,9 @@
#define PHYS_TO_DMAP(x) ({ panic("No direct map exists"); 0; })
#define DMAP_TO_PHYS(x) ({ panic("No direct map exists"); 0; })
+/*
+ * No non-transparent large page support in the pmap.
+ */
+#define PMAP_HAS_LARGEPAGES 0
+
#endif /* _MACHINE_VMPARAM_H_ */
Index: sys/kern/uipc_shm.c
===================================================================
--- sys/kern/uipc_shm.c
+++ sys/kern/uipc_shm.c
@@ -1067,7 +1067,7 @@
return (EINVAL);
largepage = (shmflags & SHM_LARGEPAGE) != 0;
-#if !defined(__amd64__)
+#if PMAP_HAS_LARGEPAGES == 0
if (largepage)
return (ENOTTY);
#endif
Index: sys/mips/include/vmparam.h
===================================================================
--- sys/mips/include/vmparam.h
+++ sys/mips/include/vmparam.h
@@ -197,4 +197,9 @@
#define PHYS_TO_DMAP(x) MIPS_PHYS_TO_DIRECT(x)
#define DMAP_TO_PHYS(x) MIPS_DIRECT_TO_PHYS(x)
+/*
+ * No non-transparent large page support in the pmap.
+ */
+#define PMAP_HAS_LARGEPAGES 0
+
#endif /* !_MACHINE_VMPARAM_H_ */
Index: sys/powerpc/include/vmparam.h
===================================================================
--- sys/powerpc/include/vmparam.h
+++ sys/powerpc/include/vmparam.h
@@ -315,4 +315,9 @@
KASSERT(hw_direct_map, ("Direct map not provided by PMAP")); \
(x) &~ DMAP_BASE_ADDRESS; })
+/*
+ * No non-transparent large page support in the pmap.
+ */
+#define PMAP_HAS_LARGEPAGES 0
+
#endif /* _MACHINE_VMPARAM_H_ */
Index: sys/riscv/include/vmparam.h
===================================================================
--- sys/riscv/include/vmparam.h
+++ sys/riscv/include/vmparam.h
@@ -236,4 +236,9 @@
#define DEVMAP_MAX_VADDR VM_MAX_KERNEL_ADDRESS
+/*
+ * No non-transparent large page support in the pmap.
+ */
+#define PMAP_HAS_LARGEPAGES 0
+
#endif /* !_MACHINE_VMPARAM_H_ */

File Metadata

Mime Type
text/plain
Expires
Tue, Mar 17, 8:54 PM (14 m, 42 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29849680
Default Alt Text
D26467.id77143.diff (3 KB)

Event Timeline