1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 21965aae3SH. Peter Anvin #ifndef _ASM_X86_VSYSCALL_H 31965aae3SH. Peter Anvin #define _ASM_X86_VSYSCALL_H 4bb898558SAl Viro 5bb898558SAl Viro #include <linux/seqlock.h> 6af170c50SDavid Howells #include <uapi/asm/vsyscall.h> 7bb898558SAl Viro 81ad83c85SAndy Lutomirski #ifdef CONFIG_X86_VSYSCALL_EMULATION 9bb898558SAl Viro extern void map_vsyscall(void); 1085900ea5SAndy Lutomirski extern void set_vsyscall_pgtable_user_bits(pgd_t *root); 11bb898558SAl Viro 123ae36655SAndy Lutomirski /* 133ae36655SAndy Lutomirski * Called on instruction fetch fault in vsyscall page. 143ae36655SAndy Lutomirski * Returns true if handled. 153ae36655SAndy Lutomirski */ 16*918ce325SAndy Lutomirski extern bool emulate_vsyscall(unsigned long error_code, 17*918ce325SAndy Lutomirski struct pt_regs *regs, unsigned long address); 181ad83c85SAndy Lutomirski #else 191ad83c85SAndy Lutomirski static inline void map_vsyscall(void) {} 20*918ce325SAndy Lutomirski static inline bool emulate_vsyscall(unsigned long error_code, 21*918ce325SAndy Lutomirski struct pt_regs *regs, unsigned long address) 221ad83c85SAndy Lutomirski { 231ad83c85SAndy Lutomirski return false; 241ad83c85SAndy Lutomirski } 251ad83c85SAndy Lutomirski #endif 263ae36655SAndy Lutomirski 271965aae3SH. Peter Anvin #endif /* _ASM_X86_VSYSCALL_H */ 28