blob: ff0a64073ebccc7b9fb400372a7f46bfe0d19dda [file] [log] [blame]
Christoph Lameterb20a3502006-03-22 00:09:12 -08001#ifndef _LINUX_MIGRATE_H
2#define _LINUX_MIGRATE_H
3
4#include <linux/config.h>
5#include <linux/mm.h>
6
7#ifdef CONFIG_MIGRATION
8extern int isolate_lru_page(struct page *p, struct list_head *pagelist);
9extern int putback_lru_pages(struct list_head *l);
10extern int migrate_page(struct page *, struct page *);
11extern void migrate_page_copy(struct page *, struct page *);
12extern int migrate_page_remove_references(struct page *, struct page *, int);
13extern int migrate_pages(struct list_head *l, struct list_head *t,
14 struct list_head *moved, struct list_head *failed);
Christoph Lameter9bf9e892006-03-31 02:29:56 -080015extern int migrate_pages_to(struct list_head *pagelist,
Christoph Lameterb20a3502006-03-22 00:09:12 -080016 struct vm_area_struct *vma, int dest);
17extern int fail_migrate_page(struct page *, struct page *);
18
19extern int migrate_prep(void);
20
21#else
22
23static inline int isolate_lru_page(struct page *p, struct list_head *list)
24 { return -ENOSYS; }
25static inline int putback_lru_pages(struct list_head *l) { return 0; }
26static inline int migrate_pages(struct list_head *l, struct list_head *t,
27 struct list_head *moved, struct list_head *failed) { return -ENOSYS; }
28
Christoph Lameter9bf9e892006-03-31 02:29:56 -080029static inline int migrate_pages_to(struct list_head *pagelist,
30 struct vm_area_struct *vma, int dest) { return 0; }
31
Christoph Lameterb20a3502006-03-22 00:09:12 -080032static inline int migrate_prep(void) { return -ENOSYS; }
33
34/* Possible settings for the migrate_page() method in address_operations */
35#define migrate_page NULL
36#define fail_migrate_page NULL
37
38#endif /* CONFIG_MIGRATION */
39#endif /* _LINUX_MIGRATE_H */