x86: Load the 32-bit vdso in place, just like the 64-bit vdsos
[pandora-kernel.git] / arch / x86 / vdso / vdso_image.h
1 #ifndef _VDSO_IMAGE_H
2 #define _VDSO_IMAGE_H
3
4 #include <asm/page_types.h>
5 #include <linux/linkage.h>
6
7 #define DEFINE_VDSO_IMAGE(symname, filename)                            \
8 __PAGE_ALIGNED_DATA ;                                                   \
9         .globl symname##_start, symname##_end ;                         \
10         .align PAGE_SIZE ;                                              \
11         symname##_start: ;                                              \
12         .incbin filename ;                                              \
13         symname##_end: ;                                                \
14         .align PAGE_SIZE /* extra data here leaks to userspace. */ ;    \
15                                                                         \
16 .previous ;                                                             \
17                                                                         \
18         .globl symname##_pages ;                                        \
19         .bss ;                                                          \
20         .align 8 ;                                                      \
21         .type symname##_pages, @object ;                                \
22         symname##_pages: ;                                              \
23         .zero (symname##_end - symname##_start + PAGE_SIZE - 1) / PAGE_SIZE * (BITS_PER_LONG / 8) ; \
24         .size symname##_pages, .-symname##_pages
25
26 #define DECLARE_VDSO_IMAGE(symname)                             \
27         extern char symname##_start[], symname##_end[];         \
28         extern struct page *symname##_pages[]
29
30 #endif /* _VDSO_IMAGE_H */