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 | }; |