summaryrefslogtreecommitdiff
path: root/arch/x86/vdso/vdsox32.S
diff options
context:
space:
mode:
authorH. J. Lu <hjl.tools@gmail.com>2012-02-19 23:38:06 +0400
committerH. Peter Anvin <hpa@zytor.com>2012-02-21 00:52:06 +0400
commit1a21d4e095ef720abf81299000afc038206d571b (patch)
tree8d64feea71f41f785521f66fecbd29c16b0cf63a /arch/x86/vdso/vdsox32.S
parent5fd92e65a68b813667bc8739f5fa463e5bfcd66d (diff)
downloadlinux-1a21d4e095ef720abf81299000afc038206d571b.tar.xz
x32: Add x32 VDSO support
Add support for the x32 VDSO. The x32 VDSO takes advantage of the similarity between the x86-64 and the x32 ABIs to contain the same content, only the container is different, as the x32 VDSO obviously is an x32 shared object. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/vdso/vdsox32.S')
-rw-r--r--arch/x86/vdso/vdsox32.S22
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/x86/vdso/vdsox32.S b/arch/x86/vdso/vdsox32.S
new file mode 100644
index 000000000000..d6b9a7f42a8a
--- /dev/null
+++ b/arch/x86/vdso/vdsox32.S
@@ -0,0 +1,22 @@
+#include <asm/page_types.h>
+#include <linux/linkage.h>
+#include <linux/init.h>
+
+__PAGE_ALIGNED_DATA
+
+ .globl vdsox32_start, vdsox32_end
+ .align PAGE_SIZE
+vdsox32_start:
+ .incbin "arch/x86/vdso/vdsox32.so"
+vdsox32_end:
+ .align PAGE_SIZE /* extra data here leaks to userspace. */
+
+.previous
+
+ .globl vdsox32_pages
+ .bss
+ .align 8
+ .type vdsox32_pages, @object
+vdsox32_pages:
+ .zero (vdsox32_end - vdsox32_start + PAGE_SIZE - 1) / PAGE_SIZE * 8
+ .size vdsox32_pages, .-vdsox32_pages