github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/linux/pagemap_ioctl.txt (about)

     1  # Copyright 2023 syzkaller project authors. All rights reserved.
     2  # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
     3  
     4  include <uapi/linux/fs.h>
     5  
     6  resource fd_pagemap[fd]
     7  
     8  syz_open_procfs$pagemap(pid pid, file ptr[in, string["pagemap"]]) fd_pagemap
     9  
    10  ioctl$PAGEMAP_SCAN(fd fd_pagemap, cmd const[PAGEMAP_SCAN], arg ptr[inout, pagemap_arg])
    11  
    12  page_region {
    13  	start		int64
    14  	end		int64
    15  	categories	int64
    16  }
    17  
    18  pagemap_arg {
    19  	size			bytesize[pagemap_arg, int64]
    20  	flags			flags[pm_flags, int64]
    21  	start			vma64
    22  	end			vma64
    23  	walk_end		int64
    24  	vec			ptr64[in, array[page_region]]
    25  	vec_len			len[vec, int64]
    26  	max_pages		int64
    27  	category_inverted	flags[categories, int64]
    28  	category_mask		flags[categories, int64]
    29  	category_anyof_mask	flags[categories, int64]
    30  	return_mask		flags[categories, int64]
    31  }
    32  
    33  pm_flags = PM_SCAN_WP_MATCHING, PM_SCAN_CHECK_WPASYNC
    34  categories = PAGE_IS_WPALLOWED, PAGE_IS_WRITTEN, PAGE_IS_FILE, PAGE_IS_PRESENT, PAGE_IS_SWAPPED, PAGE_IS_PFNZERO, PAGE_IS_HUGE