]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blob - arch/x86/include/asm/vdso.h
d0a2c909c72d6af36859cf520ba1cb7d27722b42
[mirror_ubuntu-hirsute-kernel.git] / arch / x86 / include / asm / vdso.h
1 #ifndef _ASM_X86_VDSO_H
2 #define _ASM_X86_VDSO_H
3
4 #include <asm/page_types.h>
5 #include <linux/linkage.h>
6 #include <linux/init.h>
7
8 #ifndef __ASSEMBLER__
9
10 struct vdso_image {
11 void *data;
12 unsigned long size; /* Always a multiple of PAGE_SIZE */
13 struct page **pages; /* Big enough for data/size page pointers */
14
15 unsigned long alt, alt_len;
16
17 unsigned long sym_end_mapping; /* Total size of the mapping */
18
19 unsigned long sym_vvar_page;
20 unsigned long sym_hpet_page;
21 unsigned long sym_VDSO32_NOTE_MASK;
22 unsigned long sym___kernel_sigreturn;
23 unsigned long sym___kernel_rt_sigreturn;
24 unsigned long sym___kernel_vsyscall;
25 unsigned long sym_VDSO32_SYSENTER_RETURN;
26 };
27
28 #ifdef CONFIG_X86_64
29 extern const struct vdso_image vdso_image_64;
30 #endif
31
32 #ifdef CONFIG_X86_X32
33 extern const struct vdso_image vdso_image_x32;
34 #endif
35
36 #if defined CONFIG_X86_32 || defined CONFIG_COMPAT
37 extern const struct vdso_image vdso_image_32_int80;
38 #ifdef CONFIG_COMPAT
39 extern const struct vdso_image vdso_image_32_syscall;
40 #endif
41 extern const struct vdso_image vdso_image_32_sysenter;
42
43 extern const struct vdso_image *selected_vdso32;
44 #endif
45
46 extern void __init init_vdso_image(const struct vdso_image *image);
47
48 #endif /* __ASSEMBLER__ */
49
50 #endif /* _ASM_X86_VDSO_H */