aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/kernel/entry.S
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2013-08-07 15:33:32 -0400
committerChris Metcalf <cmetcalf@tilera.com>2013-08-13 16:26:21 -0400
commit4a556f4f56da3110b27e265b79f0e7582115445c (patch)
treef5af0b865c867160855e4722b49d7e850dddf944 /arch/tile/kernel/entry.S
parent0c1d1917c547c8e787fb58e20e2de577453c980c (diff)
tile: implement gettimeofday() via vDSO
This change creates the framework for vDSO calls, makes the existing rt_sigreturn() mechanism use it, and adds a fast gettimeofday(). Now that we need to expose the vDSO address to userspace, we add AT_SYSINFO_EHDR to the set of aux entries provided to userspace. (You can disable any extra vDSO support by booting with vdso=0, but the rt_sigreturn vDSO page will still be provided.) Note that glibc has supported the tile vDSO since release 2.17. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch/tile/kernel/entry.S')
-rw-r--r--arch/tile/kernel/entry.S16
1 files changed, 0 insertions, 16 deletions
diff --git a/arch/tile/kernel/entry.S b/arch/tile/kernel/entry.S
index f116cb0bce20..3d9175992a20 100644
--- a/arch/tile/kernel/entry.S
+++ b/arch/tile/kernel/entry.S
@@ -27,22 +27,6 @@ STD_ENTRY(current_text_addr)
27 { move r0, lr; jrp lr } 27 { move r0, lr; jrp lr }
28 STD_ENDPROC(current_text_addr) 28 STD_ENDPROC(current_text_addr)
29 29
30/*
31 * We don't run this function directly, but instead copy it to a page
32 * we map into every user process. See vdso_setup().
33 *
34 * Note that libc has a copy of this function that it uses to compare
35 * against the PC when a stack backtrace ends, so if this code is
36 * changed, the libc implementation(s) should also be updated.
37 */
38 .pushsection .data
39ENTRY(__rt_sigreturn)
40 moveli TREG_SYSCALL_NR_NAME,__NR_rt_sigreturn
41 swint1
42 ENDPROC(__rt_sigreturn)
43 ENTRY(__rt_sigreturn_end)
44 .popsection
45
46STD_ENTRY(dump_stack) 30STD_ENTRY(dump_stack)
47 { move r2, lr; lnk r1 } 31 { move r2, lr; lnk r1 }
48 { move r4, r52; addli r1, r1, dump_stack - . } 32 { move r4, r52; addli r1, r1, dump_stack - . }