xref: /OK3568_Linux_fs/kernel/include/linux/version_compat_defs.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /*
3  *
4  * (C) COPYRIGHT 2022-2023 ARM Limited. All rights reserved.
5  *
6  * This program is free software and is provided to you under the terms of the
7  * GNU General Public License version 2 as published by the Free Software
8  * Foundation, and any use by you of this program is subject to the terms
9  * of such GNU license.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, you can access it online at
18  * http://www.gnu.org/licenses/gpl-2.0.html.
19  *
20  */
21 
22 #ifndef _VERSION_COMPAT_DEFS_H_
23 #define _VERSION_COMPAT_DEFS_H_
24 
25 #include <linux/version.h>
26 
27 #if KERNEL_VERSION(4, 16, 0) > LINUX_VERSION_CODE
28 typedef unsigned int __poll_t;
29 #endif
30 
31 #if KERNEL_VERSION(4, 9, 78) >= LINUX_VERSION_CODE
32 
33 #ifndef EPOLLHUP
34 #define EPOLLHUP POLLHUP
35 #endif
36 
37 #ifndef EPOLLERR
38 #define EPOLLERR POLLERR
39 #endif
40 
41 #ifndef EPOLLIN
42 #define EPOLLIN POLLIN
43 #endif
44 
45 #ifndef EPOLLRDNORM
46 #define EPOLLRDNORM POLLRDNORM
47 #endif
48 
49 #endif
50 
51 #if KERNEL_VERSION(6, 1, 0) <= LINUX_VERSION_CODE
52 /* This is defined inside kbase for matching the default to kernel's
53  * mmap_min_addr, used inside file mali_kbase_mmap.c.
54  * Note: the value is set at compile time, matching a kernel's configuration
55  * value. It would not be able to track any runtime update of mmap_min_addr.
56  */
57 #ifdef CONFIG_MMU
58 #define kbase_mmap_min_addr CONFIG_DEFAULT_MMAP_MIN_ADDR
59 
60 #ifdef CONFIG_LSM_MMAP_MIN_ADDR
61 #if (CONFIG_LSM_MMAP_MIN_ADDR > CONFIG_DEFAULT_MMAP_MIN_ADDR)
62 /* Replace the default definition with CONFIG_LSM_MMAP_MIN_ADDR */
63 #undef kbase_mmap_min_addr
64 #define kbase_mmap_min_addr CONFIG_LSM_MMAP_MIN_ADDR
65 #pragma message "kbase_mmap_min_addr compiled to CONFIG_LSM_MMAP_MIN_ADDR, no runtime update!"
66 #endif /* (CONFIG_LSM_MMAP_MIN_ADDR > CONFIG_DEFAULT_MMAP_MIN_ADDR) */
67 #endif /* CONFIG_LSM_MMAP_MIN_ADDR */
68 
69 #if (kbase_mmap_min_addr == CONFIG_DEFAULT_MMAP_MIN_ADDR)
70 #pragma message "kbase_mmap_min_addr compiled to CONFIG_DEFAULT_MMAP_MIN_ADDR, no runtime update!"
71 #endif
72 
73 #else /* CONFIG_MMU */
74 #define kbase_mmap_min_addr (0UL)
75 #pragma message "kbase_mmap_min_addr compiled to (0UL), no runtime update!"
76 #endif /* CONFIG_MMU */
77 #endif /* KERNEL_VERSION(6, 1, 0) <= LINUX_VERSION_CODE */
78 
79 #endif /* _VERSION_COMPAT_DEFS_H_ */
80