162be662c0888c87b492bd2e13a8b51d1e2288e7
[platform/adaptation/renesas_rcar/renesas_kernel.git] / arch / arm / mm / vmregion.h
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