aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mm/vmregion.h
blob: 162be662c0888c87b492bd2e13a8b51d1e2288e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#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;
	const void		*caller;
};

struct arm_vmregion *arm_vmregion_alloc(struct arm_vmregion_head *, size_t, size_t, gfp_t, const void *);
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 *);

int arm_vmregion_create_proc(const char *, struct arm_vmregion_head *);

#endif