H. Peter Anvin | 1965aae | 2008-10-22 22:26:29 -0700 | [diff] [blame] | 1 | #ifndef _ASM_X86_VDSO_H |
| 2 | #define _ASM_X86_VDSO_H |
Roland McGrath | 7f3646a | 2008-01-30 13:30:41 +0100 | [diff] [blame] | 3 | |
Andy Lutomirski | 9e6f450 | 2014-03-20 18:57:18 -0700 | [diff] [blame] | 4 | #include <asm/page_types.h> |
| 5 | #include <linux/linkage.h> |
Andy Lutomirski | 6f121e5 | 2014-05-05 12:19:34 -0700 | [diff] [blame] | 6 | #include <linux/init.h> |
Andy Lutomirski | 9e6f450 | 2014-03-20 18:57:18 -0700 | [diff] [blame] | 7 | |
Andy Lutomirski | 6f121e5 | 2014-05-05 12:19:34 -0700 | [diff] [blame] | 8 | #ifndef __ASSEMBLER__ |
Andy Lutomirski | 9e6f450 | 2014-03-20 18:57:18 -0700 | [diff] [blame] | 9 | |
Andy Lutomirski | a62c34b | 2014-05-19 15:58:33 -0700 | [diff] [blame] | 10 | #include <linux/mm_types.h> |
| 11 | |
Andy Lutomirski | 6f121e5 | 2014-05-05 12:19:34 -0700 | [diff] [blame] | 12 | struct vdso_image { |
| 13 | void *data; |
| 14 | unsigned long size; /* Always a multiple of PAGE_SIZE */ |
Andy Lutomirski | a62c34b | 2014-05-19 15:58:33 -0700 | [diff] [blame] | 15 | |
| 16 | /* text_mapping.pages is big enough for data/size page pointers */ |
| 17 | struct vm_special_mapping text_mapping; |
Andy Lutomirski | 9e6f450 | 2014-03-20 18:57:18 -0700 | [diff] [blame] | 18 | |
Andy Lutomirski | 6f121e5 | 2014-05-05 12:19:34 -0700 | [diff] [blame] | 19 | unsigned long alt, alt_len; |
Andy Lutomirski | 9e6f450 | 2014-03-20 18:57:18 -0700 | [diff] [blame] | 20 | |
Andy Lutomirski | e6577a7 | 2014-07-10 18:13:15 -0700 | [diff] [blame] | 21 | long sym_vvar_start; /* Negative offset to the vvar area */ |
Andy Lutomirski | 18d0a6f | 2014-05-05 12:19:35 -0700 | [diff] [blame] | 22 | |
Andy Lutomirski | e6577a7 | 2014-07-10 18:13:15 -0700 | [diff] [blame] | 23 | long sym_vvar_page; |
| 24 | long sym_hpet_page; |
Andy Lutomirski | dac16fb | 2015-12-10 19:20:20 -0800 | [diff] [blame^] | 25 | long sym_pvclock_page; |
Andy Lutomirski | e6577a7 | 2014-07-10 18:13:15 -0700 | [diff] [blame] | 26 | long sym_VDSO32_NOTE_MASK; |
| 27 | long sym___kernel_sigreturn; |
| 28 | long sym___kernel_rt_sigreturn; |
| 29 | long sym___kernel_vsyscall; |
Andy Lutomirski | 8242c6c | 2015-10-05 17:48:01 -0700 | [diff] [blame] | 30 | long sym_int80_landing_pad; |
Andy Lutomirski | 6f121e5 | 2014-05-05 12:19:34 -0700 | [diff] [blame] | 31 | }; |
| 32 | |
| 33 | #ifdef CONFIG_X86_64 |
| 34 | extern const struct vdso_image vdso_image_64; |
| 35 | #endif |
| 36 | |
| 37 | #ifdef CONFIG_X86_X32 |
| 38 | extern const struct vdso_image vdso_image_x32; |
| 39 | #endif |
Andy Lutomirski | 9e6f450 | 2014-03-20 18:57:18 -0700 | [diff] [blame] | 40 | |
Roland McGrath | 6c3652e | 2008-01-30 13:30:42 +0100 | [diff] [blame] | 41 | #if defined CONFIG_X86_32 || defined CONFIG_COMPAT |
Andy Lutomirski | 0a6d1fa | 2015-10-05 17:47:56 -0700 | [diff] [blame] | 42 | extern const struct vdso_image vdso_image_32; |
Roland McGrath | 6c3652e | 2008-01-30 13:30:42 +0100 | [diff] [blame] | 43 | #endif |
Roland McGrath | 7f3646a | 2008-01-30 13:30:41 +0100 | [diff] [blame] | 44 | |
Andy Lutomirski | 6f121e5 | 2014-05-05 12:19:34 -0700 | [diff] [blame] | 45 | extern void __init init_vdso_image(const struct vdso_image *image); |
Andy Lutomirski | b4b541a | 2014-03-17 23:22:08 +0100 | [diff] [blame] | 46 | |
Andy Lutomirski | 9e6f450 | 2014-03-20 18:57:18 -0700 | [diff] [blame] | 47 | #endif /* __ASSEMBLER__ */ |
| 48 | |
H. Peter Anvin | 1965aae | 2008-10-22 22:26:29 -0700 | [diff] [blame] | 49 | #endif /* _ASM_X86_VDSO_H */ |