16 Nov, 2005

1 commit

  • The vDSO functions should have the same calling convention as a syscall.
    Unfortunately, they currently don't set the cr0.so bit which is used to
    indicate an error. This patch makes them clear this bit unconditionally
    since all functions currently succeed. The syscall fallback done by some
    of them will eventually override this if the syscall fails.

    This also changes the symbol version of all vdso exports to make sure
    glibc can differenciate between old and fixed calls for existing ones
    like __kernel_gettimeofday.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     

11 Nov, 2005

1 commit

  • 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
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt