LCOV - code coverage report
Current view: top level - mm - swap.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 3 0.0 %
Date: 2023-03-27 20:00:47 Functions: 0 0 -

          Line data    Source code
       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 */
       9             : int sio_pool_init(void);
      10             : struct swap_iocb;
      11             : void swap_readpage(struct page *page, bool do_poll, struct swap_iocb **plug);
      12             : void __swap_read_unplug(struct swap_iocb *plug);
      13             : static inline void swap_read_unplug(struct swap_iocb *plug)
      14             : {
      15           0 :         if (unlikely(plug))
      16           0 :                 __swap_read_unplug(plug);
      17             : }
      18             : void swap_write_unplug(struct swap_iocb *sio);
      19             : int swap_writepage(struct page *page, struct writeback_control *wbc);
      20             : void __swap_writepage(struct page *page, struct writeback_control *wbc);
      21             : 
      22             : /* linux/mm/swap_state.c */
      23             : /* One swap address space for each 64M swap space */
      24             : #define SWAP_ADDRESS_SPACE_SHIFT        14
      25             : #define SWAP_ADDRESS_SPACE_PAGES        (1 << SWAP_ADDRESS_SPACE_SHIFT)
      26             : extern struct address_space *swapper_spaces[];
      27             : #define swap_address_space(entry)                           \
      28             :         (&swapper_spaces[swp_type(entry)][swp_offset(entry) \
      29             :                 >> SWAP_ADDRESS_SPACE_SHIFT])
      30             : 
      31             : void show_swap_cache_info(void);
      32             : bool add_to_swap(struct folio *folio);
      33             : void *get_shadow_from_swap_cache(swp_entry_t entry);
      34             : int add_to_swap_cache(struct folio *folio, swp_entry_t entry,
      35             :                       gfp_t gfp, void **shadowp);
      36             : void __delete_from_swap_cache(struct folio *folio,
      37             :                               swp_entry_t entry, void *shadow);
      38             : void delete_from_swap_cache(struct folio *folio);
      39             : void clear_shadow_from_swap_cache(int type, unsigned long begin,
      40             :                                   unsigned long end);
      41             : struct folio *swap_cache_get_folio(swp_entry_t entry,
      42             :                 struct vm_area_struct *vma, unsigned long addr);
      43             : struct folio *filemap_get_incore_folio(struct address_space *mapping,
      44             :                 pgoff_t index);
      45             : 
      46             : struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
      47             :                                    struct vm_area_struct *vma,
      48             :                                    unsigned long addr,
      49             :                                    bool do_poll,
      50             :                                    struct swap_iocb **plug);
      51             : struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
      52             :                                      struct vm_area_struct *vma,
      53             :                                      unsigned long addr,
      54             :                                      bool *new_page_allocated);
      55             : struct page *swap_cluster_readahead(swp_entry_t entry, gfp_t flag,
      56             :                                     struct vm_fault *vmf);
      57             : struct page *swapin_readahead(swp_entry_t entry, gfp_t flag,
      58             :                               struct vm_fault *vmf);
      59             : 
      60             : static inline unsigned int folio_swap_flags(struct folio *folio)
      61             : {
      62           0 :         return page_swap_info(&folio->page)->flags;
      63             : }
      64             : #else /* CONFIG_SWAP */
      65             : struct swap_iocb;
      66             : static inline void swap_readpage(struct page *page, bool do_poll,
      67             :                 struct swap_iocb **plug)
      68             : {
      69             : }
      70             : static inline void swap_write_unplug(struct swap_iocb *sio)
      71             : {
      72             : }
      73             : 
      74             : static inline struct address_space *swap_address_space(swp_entry_t entry)
      75             : {
      76             :         return NULL;
      77             : }
      78             : 
      79             : static inline void show_swap_cache_info(void)
      80             : {
      81             : }
      82             : 
      83             : static inline struct page *swap_cluster_readahead(swp_entry_t entry,
      84             :                                 gfp_t gfp_mask, struct vm_fault *vmf)
      85             : {
      86             :         return NULL;
      87             : }
      88             : 
      89             : static inline struct page *swapin_readahead(swp_entry_t swp, gfp_t gfp_mask,
      90             :                         struct vm_fault *vmf)
      91             : {
      92             :         return NULL;
      93             : }
      94             : 
      95             : static inline int swap_writepage(struct page *p, struct writeback_control *wbc)
      96             : {
      97             :         return 0;
      98             : }
      99             : 
     100             : static inline struct folio *swap_cache_get_folio(swp_entry_t entry,
     101             :                 struct vm_area_struct *vma, unsigned long addr)
     102             : {
     103             :         return NULL;
     104             : }
     105             : 
     106             : static inline
     107             : struct folio *filemap_get_incore_folio(struct address_space *mapping,
     108             :                 pgoff_t index)
     109             : {
     110             :         return filemap_get_folio(mapping, index);
     111             : }
     112             : 
     113             : static inline bool add_to_swap(struct folio *folio)
     114             : {
     115             :         return false;
     116             : }
     117             : 
     118             : static inline void *get_shadow_from_swap_cache(swp_entry_t entry)
     119             : {
     120             :         return NULL;
     121             : }
     122             : 
     123             : static inline int add_to_swap_cache(struct folio *folio, swp_entry_t entry,
     124             :                                         gfp_t gfp_mask, void **shadowp)
     125             : {
     126             :         return -1;
     127             : }
     128             : 
     129             : static inline void __delete_from_swap_cache(struct folio *folio,
     130             :                                         swp_entry_t entry, void *shadow)
     131             : {
     132             : }
     133             : 
     134             : static inline void delete_from_swap_cache(struct folio *folio)
     135             : {
     136             : }
     137             : 
     138             : static inline void clear_shadow_from_swap_cache(int type, unsigned long begin,
     139             :                                 unsigned long end)
     140             : {
     141             : }
     142             : 
     143             : static inline unsigned int folio_swap_flags(struct folio *folio)
     144             : {
     145             :         return 0;
     146             : }
     147             : #endif /* CONFIG_SWAP */
     148             : #endif /* _MM_SWAP_H */

Generated by: LCOV version 1.14