fmem: Add support for reusable virtual mappings
Instead of just keeping the entire heap mapped all the
time, reserve the virtual area and map as needed.
Change-Id: Id9a253541f1462379f3f81611aec92cd760e71c8
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
diff --git a/include/linux/fmem.h b/include/linux/fmem.h
index a88c674..d91f4c1 100644
--- a/include/linux/fmem.h
+++ b/include/linux/fmem.h
@@ -15,6 +15,8 @@
#ifndef _FMEM_H_
#define _FMEM_H_
+#include <linux/vmalloc.h>
+
struct fmem_platform_data {
unsigned long phys;
unsigned long size;
@@ -23,6 +25,7 @@
struct fmem_data {
unsigned long phys;
void *virt;
+ struct vm_struct *area;
unsigned long size;
};
@@ -38,11 +41,15 @@
int fmem_set_state(enum fmem_state);
void lock_fmem_state(void);
void unlock_fmem_state(void);
+void *fmem_map_virtual_area(int cacheability);
+void fmem_unmap_virtual_area(void);
#else
static inline struct fmem_data *fmem_get_info(void) { return NULL; }
static inline int fmem_set_state(enum fmem_state f) { return -ENODEV; }
static inline void lock_fmem_state(void) { return; }
static inline void unlock_fmem_state(void) { return; }
+static inline void *fmem_map_virtual_area(int cacheability) { return NULL; }
+static inline void fmem_unmap_virtual_area(void) { return; }
#endif