![Benjamin Herrenschmidt](/assets/img/avatar_default.png)
This patch moves the vdso's to arch/powerpc, adds support for the 32 bits vdso to the 32 bits kernel, rename systemcfg (finally !), and adds some new (still untested) routines to both vdso's: clock_gettime() with support for CLOCK_REALTIME and CLOCK_MONOTONIC, clock_getres() (same clocks) and get_tbfreq() for glibc to retreive the timebase frequency. Tom,Steve: The implementation of get_tbfreq() I've done for 32 bits returns a long long (r3, r4) not a long. This is such that if we ever add support for >4Ghz timebases on ppc32, the userland interface won't have to change. I have tested gettimeofday() using some glibc patches in both ppc32 and ppc64 kernels using 32 bits userland (I haven't had a chance to test a 64 bits userland yet, but the implementation didn't change and was tested earlier). I haven't tested yet the new functions. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
26 lines
739 B
ArmAsm
26 lines
739 B
ArmAsm
/*
|
|
* This supplies .note.* sections to go into the PT_NOTE inside the vDSO text.
|
|
* Here we can supply some information useful to userland.
|
|
*/
|
|
|
|
#include <linux/uts.h>
|
|
#include <linux/version.h>
|
|
|
|
#define ASM_ELF_NOTE_BEGIN(name, flags, vendor, type) \
|
|
.section name, flags; \
|
|
.balign 4; \
|
|
.long 1f - 0f; /* name length */ \
|
|
.long 3f - 2f; /* data length */ \
|
|
.long type; /* note type */ \
|
|
0: .asciz vendor; /* vendor name */ \
|
|
1: .balign 4; \
|
|
2:
|
|
|
|
#define ASM_ELF_NOTE_END \
|
|
3: .balign 4; /* pad out section */ \
|
|
.previous
|
|
|
|
ASM_ELF_NOTE_BEGIN(".note.kernel-version", "a", UTS_SYSNAME, 0)
|
|
.long LINUX_VERSION_CODE
|
|
ASM_ELF_NOTE_END
|