]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - include/os/linux/kernel/linux/page_compat.h
Update vendor openzfs to fd20a8
[FreeBSD/FreeBSD.git] / include / os / linux / kernel / linux / page_compat.h
1 #ifndef _ZFS_PAGE_COMPAT_H
2 #define _ZFS_PAGE_COMPAT_H
3
4 /*
5  * We have various enum members moving between two separate enum types,
6  * and accessed by different functions at various times. Centralise the
7  * insanity.
8  *
9  * < v4.8: all enums in zone_stat_item, via global_page_state()
10  * v4.8: some enums moved to node_stat_item, global_node_page_state() introduced
11  * v4.13: some enums moved from zone_stat_item to node_state_item
12  * v4.14: global_page_state() rename to global_zone_page_state()
13  *
14  * The defines used here are created by config/kernel-global_page_state.m4
15  */
16
17 /*
18  * Create our own accessor functions to follow the Linux API changes
19  */
20 #if     defined(ZFS_GLOBAL_ZONE_PAGE_STATE)
21
22 /* global_zone_page_state() introduced */
23 #if     defined(ZFS_ENUM_NODE_STAT_ITEM_NR_FILE_PAGES)
24 #define nr_file_pages() global_node_page_state(NR_FILE_PAGES)
25 #else
26 #define nr_file_pages() global_zone_page_state(NR_FILE_PAGES)
27 #endif
28 #if     defined(ZFS_ENUM_NODE_STAT_ITEM_NR_INACTIVE_ANON)
29 #define nr_inactive_anon_pages() global_node_page_state(NR_INACTIVE_ANON)
30 #else
31 #define nr_inactive_anon_pages() global_zone_page_state(NR_INACTIVE_ANON)
32 #endif
33 #if     defined(ZFS_ENUM_NODE_STAT_ITEM_NR_INACTIVE_FILE)
34 #define nr_inactive_file_pages() global_node_page_state(NR_INACTIVE_FILE)
35 #else
36 #define nr_inactive_file_pages() global_zone_page_state(NR_INACTIVE_FILE)
37 #endif
38
39 #elif   defined(ZFS_GLOBAL_NODE_PAGE_STATE)
40
41 /* global_node_page_state() introduced */
42 #if     defined(ZFS_ENUM_NODE_STAT_ITEM_NR_FILE_PAGES)
43 #define nr_file_pages() global_node_page_state(NR_FILE_PAGES)
44 #else
45 #define nr_file_pages() global_page_state(NR_FILE_PAGES)
46 #endif
47 #if     defined(ZFS_ENUM_NODE_STAT_ITEM_NR_INACTIVE_ANON)
48 #define nr_inactive_anon_pages() global_node_page_state(NR_INACTIVE_ANON)
49 #else
50 #define nr_inactive_anon_pages() global_page_state(NR_INACTIVE_ANON)
51 #endif
52 #if     defined(ZFS_ENUM_NODE_STAT_ITEM_NR_INACTIVE_FILE)
53 #define nr_inactive_file_pages() global_node_page_state(NR_INACTIVE_FILE)
54 #else
55 #define nr_inactive_file_pages() global_page_state(NR_INACTIVE_FILE)
56 #endif
57
58 #else
59
60 /* global_page_state() only */
61 #define nr_file_pages()                 global_page_state(NR_FILE_PAGES)
62 #define nr_inactive_anon_pages()        global_page_state(NR_INACTIVE_ANON)
63 #define nr_inactive_file_pages()        global_page_state(NR_INACTIVE_FILE)
64
65 #endif /* ZFS_GLOBAL_ZONE_PAGE_STATE */
66
67 #endif /* _ZFS_PAGE_COMPAT_H */