xref: /openbmc/linux/arch/x86/include/asm/vsyscall.h (revision 918ce325098a4eef99daad7b6796da33cebaf03a)
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