1 #ifndef VMREGION_H
2 #define VMREGION_H
3 
4 #include <linux/spinlock.h>
5 #include <linux/list.h>
6 
7 struct page;
8 
9 struct arm_vmregion_head {
10 	spinlock_t		vm_lock;
11 	struct list_head	vm_list;
12 	unsigned long		vm_start;
13 	unsigned long		vm_end;
14 };
15 
16 struct arm_vmregion {
17 	struct list_head	vm_list;
18 	unsigned long		vm_start;
19 	unsigned long		vm_end;
20 	struct page		*vm_pages;
21 	int			vm_active;
22 	const void		*caller;
23 };
24 
25 struct arm_vmregion *arm_vmregion_alloc(struct arm_vmregion_head *, size_t, size_t, gfp_t, const void *);
26 struct arm_vmregion *arm_vmregion_find(struct arm_vmregion_head *, unsigned long);
27 struct arm_vmregion *arm_vmregion_find_remove(struct arm_vmregion_head *, unsigned long);
28 void arm_vmregion_free(struct arm_vmregion_head *, struct arm_vmregion *);
29 
30 int arm_vmregion_create_proc(const char *, struct arm_vmregion_head *);
31 
32 #endif
33