]> git.proxmox.com Git - mirror_ubuntu-kernels.git/blame - mm/swap.h
doc: update documentation for swap_activate and swap_rw
[mirror_ubuntu-kernels.git] / mm / swap.h
CommitLineData
014bb1de
N
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _MM_SWAP_H
3#define _MM_SWAP_H
4
5#ifdef CONFIG_SWAP
6#include <linux/blk_types.h> /* for bio_end_io_t */
7
8/* linux/mm/page_io.c */
e1209d3a 9int sio_pool_init(void);
014bb1de
N
10int swap_readpage(struct page *page, bool do_poll);
11int swap_writepage(struct page *page, struct writeback_control *wbc);
12void end_swap_bio_write(struct bio *bio);
13int __swap_writepage(struct page *page, struct writeback_control *wbc,
14 bio_end_io_t end_write_func);
15
16/* linux/mm/swap_state.c */
17/* One swap address space for each 64M swap space */
18#define SWAP_ADDRESS_SPACE_SHIFT 14
19#define SWAP_ADDRESS_SPACE_PAGES (1 << SWAP_ADDRESS_SPACE_SHIFT)
20extern struct address_space *swapper_spaces[];
21#define swap_address_space(entry) \
22 (&swapper_spaces[swp_type(entry)][swp_offset(entry) \
23 >> SWAP_ADDRESS_SPACE_SHIFT])
24
25void show_swap_cache_info(void);
26int add_to_swap(struct page *page);
27void *get_shadow_from_swap_cache(swp_entry_t entry);
28int add_to_swap_cache(struct page *page, swp_entry_t entry,
29 gfp_t gfp, void **shadowp);
30void __delete_from_swap_cache(struct page *page,
31 swp_entry_t entry, void *shadow);
32void delete_from_swap_cache(struct page *page);
33void clear_shadow_from_swap_cache(int type, unsigned long begin,
34 unsigned long end);
35void free_swap_cache(struct page *page);
36struct page *lookup_swap_cache(swp_entry_t entry,
37 struct vm_area_struct *vma,
38 unsigned long addr);
39struct page *find_get_incore_page(struct address_space *mapping, pgoff_t index);
40
41struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
42 struct vm_area_struct *vma,
43 unsigned long addr,
44 bool do_poll);
45struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
46 struct vm_area_struct *vma,
47 unsigned long addr,
48 bool *new_page_allocated);
49struct page *swap_cluster_readahead(swp_entry_t entry, gfp_t flag,
50 struct vm_fault *vmf);
51struct page *swapin_readahead(swp_entry_t entry, gfp_t flag,
52 struct vm_fault *vmf);
53
d791ea67
N
54static inline unsigned int page_swap_flags(struct page *page)
55{
56 return page_swap_info(page)->flags;
57}
014bb1de
N
58#else /* CONFIG_SWAP */
59static inline int swap_readpage(struct page *page, bool do_poll)
60{
61 return 0;
62}
63
64static inline struct address_space *swap_address_space(swp_entry_t entry)
65{
66 return NULL;
67}
68
69static inline void free_swap_cache(struct page *page)
70{
71}
72
73static inline void show_swap_cache_info(void)
74{
75}
76
77static inline struct page *swap_cluster_readahead(swp_entry_t entry,
78 gfp_t gfp_mask, struct vm_fault *vmf)
79{
80 return NULL;
81}
82
83static inline struct page *swapin_readahead(swp_entry_t swp, gfp_t gfp_mask,
84 struct vm_fault *vmf)
85{
86 return NULL;
87}
88
89static inline int swap_writepage(struct page *p, struct writeback_control *wbc)
90{
91 return 0;
92}
93
94static inline struct page *lookup_swap_cache(swp_entry_t swp,
95 struct vm_area_struct *vma,
96 unsigned long addr)
97{
98 return NULL;
99}
100
101static inline
102struct page *find_get_incore_page(struct address_space *mapping, pgoff_t index)
103{
104 return find_get_page(mapping, index);
105}
106
107static inline int add_to_swap(struct page *page)
108{
109 return 0;
110}
111
112static inline void *get_shadow_from_swap_cache(swp_entry_t entry)
113{
114 return NULL;
115}
116
117static inline int add_to_swap_cache(struct page *page, swp_entry_t entry,
118 gfp_t gfp_mask, void **shadowp)
119{
120 return -1;
121}
122
123static inline void __delete_from_swap_cache(struct page *page,
124 swp_entry_t entry, void *shadow)
125{
126}
127
128static inline void delete_from_swap_cache(struct page *page)
129{
130}
131
132static inline void clear_shadow_from_swap_cache(int type, unsigned long begin,
133 unsigned long end)
134{
135}
136
d791ea67
N
137static inline unsigned int page_swap_flags(struct page *page)
138{
139 return 0;
140}
014bb1de
N
141#endif /* CONFIG_SWAP */
142#endif /* _MM_SWAP_H */