|  | #ifndef VMREGION_H | 
|  | #define VMREGION_H | 
|  |  | 
|  | #include <linux/spinlock.h> | 
|  | #include <linux/list.h> | 
|  |  | 
|  | struct page; | 
|  |  | 
|  | struct arm_vmregion_head { | 
|  | spinlock_t		vm_lock; | 
|  | struct list_head	vm_list; | 
|  | unsigned long		vm_start; | 
|  | unsigned long		vm_end; | 
|  | }; | 
|  |  | 
|  | struct arm_vmregion { | 
|  | struct list_head	vm_list; | 
|  | unsigned long		vm_start; | 
|  | unsigned long		vm_end; | 
|  | struct page		*vm_pages; | 
|  | int			vm_active; | 
|  | }; | 
|  |  | 
|  | struct arm_vmregion *arm_vmregion_alloc(struct arm_vmregion_head *, size_t, size_t, gfp_t); | 
|  | struct arm_vmregion *arm_vmregion_find(struct arm_vmregion_head *, unsigned long); | 
|  | struct arm_vmregion *arm_vmregion_find_remove(struct arm_vmregion_head *, unsigned long); | 
|  | void arm_vmregion_free(struct arm_vmregion_head *, struct arm_vmregion *); | 
|  |  | 
|  | #endif |