diff options
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 15 | ||||
-rw-r--r-- | linuxthreads/Makefile | 3 | ||||
-rw-r--r-- | linuxthreads/internals.h | 6 | ||||
-rw-r--r-- | linuxthreads/manager.c | 8 | ||||
-rw-r--r-- | linuxthreads/ptclock_gettime.c (renamed from linuxthreads/sysdeps/i386/i586/ptclock_gettime.c) | 11 | ||||
-rw-r--r-- | linuxthreads/ptclock_settime.c (renamed from linuxthreads/sysdeps/i386/i586/ptclock_settime.c) | 7 | ||||
-rw-r--r-- | linuxthreads/pthread.c | 6 | ||||
-rw-r--r-- | linuxthreads/sysdeps/i386/i586/Makefile | 3 |
8 files changed, 37 insertions, 22 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 0e9c9fb73b..553219fa98 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -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. diff --git a/linuxthreads/Makefile b/linuxthreads/Makefile index d6d0a118d6..3fde2c909b 100644 --- a/linuxthreads/Makefile +++ b/linuxthreads/Makefile @@ -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 diff --git a/linuxthreads/internals.h b/linuxthreads/internals.h index 27d4789cc8..f9bb36fd46 100644 --- a/linuxthreads/internals.h +++ b/linuxthreads/internals.h @@ -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 diff --git a/linuxthreads/manager.c b/linuxthreads/manager.c index 3d24218307..d436b08f16 100644 --- a/linuxthreads/manager.c +++ b/linuxthreads/manager.c @@ -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 diff --git a/linuxthreads/sysdeps/i386/i586/ptclock_gettime.c b/linuxthreads/ptclock_gettime.c index 818251074e..3323edbcd2 100644 --- a/linuxthreads/sysdeps/i386/i586/ptclock_gettime.c +++ b/linuxthreads/ptclock_gettime.c @@ -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 diff --git a/linuxthreads/sysdeps/i386/i586/ptclock_settime.c b/linuxthreads/ptclock_settime.c index 3026528cc2..e293e0dfb0 100644 --- a/linuxthreads/sysdeps/i386/i586/ptclock_settime.c +++ b/linuxthreads/ptclock_settime.c @@ -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 diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c index 73a7acb9c9..4340a7cc65 100644 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -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 } diff --git a/linuxthreads/sysdeps/i386/i586/Makefile b/linuxthreads/sysdeps/i386/i586/Makefile deleted file mode 100644 index 96c195f6e5..0000000000 --- a/linuxthreads/sysdeps/i386/i586/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -ifeq ($(subdir),linuxthreads) -libpthread-sysdep_routines += ptclock_gettime ptclock_settime -endif |