summaryrefslogtreecommitdiffstats
path: root/sys/arm/include
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2005-06-07 23:04:24 +0000
committercognet <cognet@FreeBSD.org>2005-06-07 23:04:24 +0000
commitee6e2d90e246e3d7d9eb7a84541efb7c692b9b52 (patch)
tree0eea1fc93d79e564ff52ea149f3578b6846c83db /sys/arm/include
parent4a9af33a3f3f7f1b7338de4a17a6db62a0a0aaf4 (diff)
downloadFreeBSD-src-ee6e2d90e246e3d7d9eb7a84541efb7c692b9b52.zip
FreeBSD-src-ee6e2d90e246e3d7d9eb7a84541efb7c692b9b52.tar.gz
Add a new arm-specific option, ARM_USE_SMALL_ALLOC. If defined, it provides
an implementation of uma_small_alloc() which tries to preallocate memory 1MB per 1MB, and maps it into a section mapping.
Diffstat (limited to 'sys/arm/include')
-rw-r--r--sys/arm/include/pmap.h12
-rw-r--r--sys/arm/include/vmparam.h4
2 files changed, 16 insertions, 0 deletions
diff --git a/sys/arm/include/pmap.h b/sys/arm/include/pmap.h
index 006848e..f8a4db4 100644
--- a/sys/arm/include/pmap.h
+++ b/sys/arm/include/pmap.h
@@ -503,8 +503,20 @@ const struct pmap_devmap *pmap_devmap_find_va(vm_offset_t, vm_size_t);
void pmap_devmap_bootstrap(vm_offset_t, const struct pmap_devmap *);
void pmap_devmap_register(const struct pmap_devmap *);
+#define SECTION_CACHE 0x1
+#define SECTION_PT 0x2
+void pmap_kenter_section(vm_offset_t, vm_paddr_t, int flags);
+
extern char *_tmppt;
+#ifdef ARM_USE_SMALL_ALLOC
+void arm_add_smallalloc_pages(void *, void *, int, int);
+void arm_busy_pages(void);
+struct arm_small_page {
+ void *addr;
+ TAILQ_ENTRY(arm_small_page) pg_list;
+};
+#endif
#endif /* _KERNEL */
#endif /* !LOCORE */
diff --git a/sys/arm/include/vmparam.h b/sys/arm/include/vmparam.h
index d43082c..d5725a4 100644
--- a/sys/arm/include/vmparam.h
+++ b/sys/arm/include/vmparam.h
@@ -128,4 +128,8 @@
#define MAXSLP 20
#define VM_PROT_READ_IS_EXEC
+
+#ifdef ARM_USE_SMALL_ALLOC
+#define UMA_MD_SMALL_ALLOC
+#endif /* ARM_USE_SMALL_ALLOC */
#endif /* _MACHINE_VMPARAM_H_ */
OpenPOWER on IntegriCloud