1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00
* sysdeps/unix/i386/i586/clock_getres.c: Removed.
	* sysdeps/unix/i386/i586/clock_gettime.c: Removed.
	* sysdeps/unix/i386/i586/clock_nanosleep.c: Removed.
	* sysdeps/unix/i386/i586/clock_settime.c: Removed.
	* sysdeps/unix/i386/i586/cpuclock-init.h: Removed.
	* sysdeps/generic/cpuclock-init.h: Removed.
	* sysdeps/unix/i386/i686/Implies: Removed.
	* sysdeps/unix/i386/i686/tempname.c: Removed.
	* sysdeps/i386/i686/Versions: New file.
	* sysdeps/unix/i386/i586/Versions: Removed.

	* sysdeps/posix/clock_getres.c: If HP_TIMING_AVAIL is nonzero handle
	CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
	* sysdeps/unix/clock_gettime.c: Likewise.
	* sysdeps/unix/clock_nanosleep.c: Likewise.
	* sysdeps/unix/clock_settime.c: Likewise.
	* sysdeps/posix/tempname.c: Is HP_TIMING_AVAIL is nonzero define
	RANDOM_BITS use CPU clock.

	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/bits/time.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9b/bits/time.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/time.h: New file.
	* sysdeps/sparc/Versions: New file.

	* elf/dl-support.c: Don't use cpuclock-init.h definitions, use
	hp-timing.h definitions.
	* sysdeps/generic/dl-sysdep.c: Likewise.

	* include/libc-internal.h: Include hp-timing.h.  Use hp_timing_t in
	__get_clockfreq prototype.

	* sysdeps/unix/sysv/linux/i386/get_clockfreq.c (__get_clockfreq):
	Use hp_timing_t type.

	* sysdeps/unix/sysv/linux/ia64/get_clockfreq.c: New file.
This commit is contained in:
Ulrich Drepper
2001-04-23 19:01:10 +00:00
parent bc183edc4e
commit 3b5c1b57d3
32 changed files with 578 additions and 398 deletions

View File

@ -1,3 +1,18 @@
2001-04-23 Ulrich Drepper <drepper@redhat.com>
* Makefile (libpthread-routines): Add ptclock_gettime and
ptclock_settime.
* internals.h: Don't use cpuclock-init.h definitions, use
hp-timing.h definitions.
* pthread.c: Likewise.
* manager.c: Likewise.
* ptclock_gettime.c: New file.
* ptclock_settime.c: New file.
* sysdeps/i386/i586/ptclock_gettime.c: Removed.
* sysdeps/i386/i586/ptclock_settime.c: Removed.
* sysdeps/i386/i586/Makefile: Removed.
2001-04-22 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_ASYNCH_IO.

View File

@ -35,7 +35,8 @@ extra-libs-others := $(extra-libs)
libpthread-routines := attr cancel condvar join manager mutex ptfork \
ptlongjmp pthread signals specific errno lockfile \
semaphore spinlock wrapsyscall rwlock pt-machine \
oldsemaphore events getcpuclockid pspinlock barrier
oldsemaphore events getcpuclockid pspinlock barrier \
ptclock_gettime ptclock_settime
nodelete-yes = -Wl,--enable-new-dtags,-z,nodelete
initfirst-yes = -Wl,--enable-new-dtags,-z,initfirst

View File

@ -33,7 +33,7 @@ extern int __compare_and_swap (long int *p, long int oldval, long int newval);
#include "pt-machine.h"
#include "semaphore.h"
#include "../linuxthreads_db/thread_dbP.h"
#include <cpuclock-init.h>
#include <hp-timing.h>
#ifndef THREAD_GETMEM
# define THREAD_GETMEM(descr, member) descr->member
@ -180,8 +180,8 @@ struct _pthread_descr_struct {
struct __res_state *p_resp; /* Pointer to resolver state */
struct __res_state p_res; /* per-thread resolver state */
int p_inheritsched; /* copied from the thread attribute */
#ifdef CPUCLOCK_VARDEF
CPUCLOCK_VARDEF (p_cpuclock_offset); /* Initial CPU clock for thread. */
#if HP_TIMING_AVAIL
hp_timing_t p_cpuclock_offset; /* Initial CPU clock for thread. */
#endif
/* New elements must be added at the end. */
} __attribute__ ((aligned(32))); /* We need to align the structure so that

View File

@ -230,15 +230,15 @@ pthread_start_thread(void *arg)
pthread_descr self = (pthread_descr) arg;
struct pthread_request request;
void * outcome;
#ifdef CPUCLOCK_VARDEF
CPUCLOCK_VARDEF (tmpclock);
#if HP_TIMING_AVAIL
hp_timing_t tmpclock;
#endif
/* Initialize special thread_self processing, if any. */
#ifdef INIT_THREAD_SELF
INIT_THREAD_SELF(self, self->p_nr);
#endif
#ifdef CPUCLOCK_INIT
CPUCLOCK_INIT (tmpclock);
#if HP_TIMING_AVAIL
HP_TIMING_NOW (tmpclock);
THREAD_SETMEM (self, p_cpuclock_offset, tmpclock);
#endif
/* Make sure our pid field is initialized, just in case we get there

View File

@ -18,18 +18,18 @@
#include <time.h>
#include <libc-internal.h>
#include "../../../internals.h"
#include "internals.h"
#if HP_TIMING_AVAIL
int
__pthread_clock_gettime (unsigned long long int freq, struct timespec *tp)
__pthread_clock_gettime (hp_timing_t freq, struct timespec *tp)
{
unsigned long long int tsc;
hp_timing_t tsc;
pthread_descr self = thread_self ();
/* Get the current counter. */
asm volatile ("rdtsc" : "=A" (tsc));
HP_TIMING_NOW (tsc);
/* Compute the offset since the start time of the process. */
tsc -= THREAD_GETMEM (self, p_cpuclock_offset);
@ -43,3 +43,4 @@ __pthread_clock_gettime (unsigned long long int freq, struct timespec *tp)
return 0;
}
#endif

View File

@ -18,15 +18,16 @@
#include <time.h>
#include <libc-internal.h>
#include "../../../internals.h"
#include "internals.h"
#if HP_TIMING_AVAIL
void
__pthread_clock_settime (unsigned long long int offset)
__pthread_clock_settime (hp_timing_t offset)
{
pthread_descr self = thread_self ();
/* Compute the offset since the start time of the process. */
THREAD_SETMEM (self, p_cpuclock_offset, offset);
}
#endif

View File

@ -226,8 +226,8 @@ static void pthread_handle_sigrestart(int sig);
static void pthread_handle_sigdebug(int sig);
/* CPU clock handling. */
#ifdef CPUCLOCK_VARDECL
CPUCLOCK_VARDECL (_dl_cpuclock_offset);
#if HP_TIMING_AVAIL
extern hp_timing_t _dl_cpuclock_offset;
#endif
/* Signal numbers used for the communication.
@ -395,7 +395,7 @@ __pthread_initialize_minimal(void)
#ifdef INIT_THREAD_SELF
INIT_THREAD_SELF(&__pthread_initial_thread, 0);
#endif
#ifdef CPUCLOCK_INIT
#if HP_TIMING_AVAIL
__pthread_initial_thread.p_cpuclock_offset = _dl_cpuclock_offset;
#endif
}

View File

@ -1,3 +0,0 @@
ifeq ($(subdir),linuxthreads)
libpthread-sysdep_routines += ptclock_gettime ptclock_settime
endif