1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _ELF_RANDOMIZE_H 3*4882a593Smuzhiyun #define _ELF_RANDOMIZE_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun struct mm_struct; 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #ifndef CONFIG_ARCH_HAS_ELF_RANDOMIZE arch_mmap_rnd(void)8*4882a593Smuzhiyunstatic inline unsigned long arch_mmap_rnd(void) { return 0; } 9*4882a593Smuzhiyun # if defined(arch_randomize_brk) && defined(CONFIG_COMPAT_BRK) 10*4882a593Smuzhiyun # define compat_brk_randomized 11*4882a593Smuzhiyun # endif 12*4882a593Smuzhiyun # ifndef arch_randomize_brk 13*4882a593Smuzhiyun # define arch_randomize_brk(mm) (mm->brk) 14*4882a593Smuzhiyun # endif 15*4882a593Smuzhiyun #else 16*4882a593Smuzhiyun extern unsigned long arch_mmap_rnd(void); 17*4882a593Smuzhiyun extern unsigned long arch_randomize_brk(struct mm_struct *mm); 18*4882a593Smuzhiyun # ifdef CONFIG_COMPAT_BRK 19*4882a593Smuzhiyun # define compat_brk_randomized 20*4882a593Smuzhiyun # endif 21*4882a593Smuzhiyun #endif 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #endif 24