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 };
23 
24 struct arm_vmregion *arm_vmregion_alloc(struct arm_vmregion_head *, size_t, size_t, gfp_t);
25 struct arm_vmregion *arm_vmregion_find(struct arm_vmregion_head *, unsigned long);
26 struct arm_vmregion *arm_vmregion_find_remove(struct arm_vmregion_head *, unsigned long);
27 void arm_vmregion_free(struct arm_vmregion_head *, struct arm_vmregion *);
28 
29 #endif
30