mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
2005-12-08 Steven Munroe <sjmunroe@us.ibm.com>
Tom Gall <tom_gall@vnet.ibm.com> * elf/rtld.c (dl_main): Initialize l_local_scope for sysinfo_map. * sysdeps/powerpc/elf/libc-start.c: Move this... * sysdeps/unix/sysv/linux/powerpc/libc-start.c: ...to here. * sysdeps/powerpc/powerpc32/dl-start.S: Add _dl_main_dispatch label. * sysdeps/powerpc/powerpc32/hp-timing.h: New file. * sysdeps/unix/sysv/linux/powerpc/Versions: New file. * sysdeps/unix/sysv/linux/clock_getres.c: If HAVE_CLOCK_GETRES_VSYSCALL is not defined, redefine INTERNAL_VSYSCALL and INLINE_VSYSCALL to INTERNAL_SYSCALL and INLINE_SYSCALL respectively. Otherwise include <bits/libc-vdso.h>. Use INLINE_VSYSCALL and INTERNAL_SYSCALL instead of the normal versions throughout the code. * sysdeps/unix/sysv/linux/clock_gettime.c: Likewise if HAVE_CLOCK_GETTIME_VSYSCALL is defined. * sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h: New file. * sysdeps/unix/sysv/linux/powerpc/dl-vdso.c: New file. * sysdeps/unix/sysv/linux/powerpc/dl-vdso.h: New file. * sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c: Use vDSO. * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c: New file. * sysdeps/unix/sysv/linux/powerpc/Makefile: Add dl-vdso to routines. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Define INLINE_VSYSCALL, INTERNAL_VSYSCALL, INTERNAL_SYSCALL_NCS, INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK, HAVE_CLOCK_GETRES_VSYSCALL, and HAVE_CLOCK_GETTIME_VSYSCALL. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise.
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/* clock_gettime -- Get current time from a POSIX clockid_t. Linux version.
|
||||
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -23,9 +23,17 @@
|
||||
#include "kernel-posix-cpu-timers.h"
|
||||
#include "kernel-features.h"
|
||||
|
||||
#ifndef HAVE_CLOCK_GETTIME_VSYSCALL
|
||||
# undef INTERNAL_VSYSCALL
|
||||
# define INTERNAL_VSYSCALL INTERNAL_SYSCALL
|
||||
# undef INLINE_VSYSCALL
|
||||
# define INLINE_VSYSCALL INLINE_SYSCALL
|
||||
#else
|
||||
# include <bits/libc-vdso.h>
|
||||
#endif
|
||||
|
||||
#define SYSCALL_GETTIME \
|
||||
retval = INLINE_SYSCALL (clock_gettime, 2, clock_id, tp); \
|
||||
retval = INLINE_VSYSCALL (clock_gettime, 2, clock_id, tp); \
|
||||
break
|
||||
|
||||
#ifdef __ASSUME_POSIX_TIMERS
|
||||
@ -51,7 +59,7 @@ maybe_syscall_gettime (clockid_t clock_id, struct timespec *tp)
|
||||
if (!__libc_missing_posix_timers)
|
||||
{
|
||||
INTERNAL_SYSCALL_DECL (err);
|
||||
int r = INTERNAL_SYSCALL (clock_gettime, err, 2, clock_id, tp);
|
||||
int r = INTERNAL_VSYSCALL (clock_gettime, err, 2, clock_id, tp);
|
||||
if (!INTERNAL_SYSCALL_ERROR_P (r, err))
|
||||
return 0;
|
||||
|
||||
@ -108,7 +116,7 @@ maybe_syscall_gettime_cpu (clockid_t clock_id, struct timespec *tp)
|
||||
if (!__libc_missing_posix_cpu_timers)
|
||||
{
|
||||
INTERNAL_SYSCALL_DECL (err);
|
||||
int r = INTERNAL_SYSCALL (clock_gettime, err, 2, clock_id, tp);
|
||||
int r = INTERNAL_VSYSCALL (clock_gettime, err, 2, clock_id, tp);
|
||||
if (!INTERNAL_SYSCALL_ERROR_P (r, err))
|
||||
return 0;
|
||||
|
||||
@ -127,7 +135,7 @@ maybe_syscall_gettime_cpu (clockid_t clock_id, struct timespec *tp)
|
||||
{
|
||||
/* Check whether the kernel supports CPU clocks at all.
|
||||
If not, record it for the future. */
|
||||
r = INTERNAL_SYSCALL (clock_getres, err, 2,
|
||||
r = INTERNAL_VSYSCALL (clock_getres, err, 2,
|
||||
MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED),
|
||||
NULL);
|
||||
if (INTERNAL_SYSCALL_ERROR_P (r, err))
|
||||
|
Reference in New Issue
Block a user