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