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