Subversion Repositories Kolibri OS

Rev

Rev 4370 | Rev 5270 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4370 Rev 4559
Line 10... Line 10...
10
#define page_to_pfn(page) (page_to_phys(page)>>12)
10
#define page_to_pfn(page) (page_to_phys(page)>>12)
Line 11... Line 11...
11
 
11
 
12
/* to align the pointer to the (next) page boundary */
12
/* to align the pointer to the (next) page boundary */
Line -... Line 13...
-
 
13
#define PAGE_ALIGN(addr) ALIGN(addr, PAGE_SIZE)
-
 
14
 
-
 
15
/*
-
 
16
 * These are the virtual MM functions - opening of an area, closing and
-
 
17
 * unmapping it (needed to keep files on disk up-to-date etc), pointer
-
 
18
 * to the functions called when a no-page or a wp-page exception occurs. 
-
 
19
 */
-
 
20
struct vm_operations_struct {
-
 
21
	void (*open)(struct vm_area_struct * area);
-
 
22
	void (*close)(struct vm_area_struct * area);
-
 
23
	int (*fault)(struct vm_area_struct *vma, struct vm_fault *vmf);
-
 
24
 
-
 
25
	/* notification that a previously read-only page is about to become
-
 
26
	 * writable, if an error is returned it will cause a SIGBUS */
-
 
27
	int (*page_mkwrite)(struct vm_area_struct *vma, struct vm_fault *vmf);
-
 
28
 
-
 
29
	/* called by access_process_vm when get_user_pages() fails, typically
-
 
30
	 * for use by special VMAs that can switch between memory and hardware
-
 
31
	 */
-
 
32
	int (*access)(struct vm_area_struct *vma, unsigned long addr,
-
 
33
		      void *buf, int len, int write);
-
 
34
#ifdef CONFIG_NUMA
-
 
35
	/*
-
 
36
	 * set_policy() op must add a reference to any non-NULL @new mempolicy
-
 
37
	 * to hold the policy upon return.  Caller should pass NULL @new to
-
 
38
	 * remove a policy and fall back to surrounding context--i.e. do not
-
 
39
	 * install a MPOL_DEFAULT policy, nor the task or system default
-
 
40
	 * mempolicy.
-
 
41
	 */
-
 
42
	int (*set_policy)(struct vm_area_struct *vma, struct mempolicy *new);
-
 
43
 
-
 
44
	/*
-
 
45
	 * get_policy() op must add reference [mpol_get()] to any policy at
-
 
46
	 * (vma,addr) marked as MPOL_SHARED.  The shared policy infrastructure
-
 
47
	 * in mm/mempolicy.c will do this automatically.
-
 
48
	 * get_policy() must NOT add a ref if the policy at (vma,addr) is not
-
 
49
	 * marked as MPOL_SHARED. vma policies are protected by the mmap_sem.
-
 
50
	 * If no [shared/vma] mempolicy exists at the addr, get_policy() op
-
 
51
	 * must return NULL--i.e., do not "fallback" to task or system default
-
 
52
	 * policy.
-
 
53
	 */
-
 
54
	struct mempolicy *(*get_policy)(struct vm_area_struct *vma,
-
 
55
					unsigned long addr);
-
 
56
	int (*migrate)(struct vm_area_struct *vma, const nodemask_t *from,
-
 
57
		const nodemask_t *to, unsigned long flags);
-
 
58
#endif
-
 
59
	/* called by sys_remap_file_pages() to populate non-linear mapping */
-
 
60
	int (*remap_pages)(struct vm_area_struct *vma, unsigned long addr,
13
#define PAGE_ALIGN(addr) ALIGN(addr, PAGE_SIZE)
61
			   unsigned long size, pgoff_t pgoff);
Line 14... Line 62...
14
 
62
};