summaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-04-23 19:01:10 +0000
committerUlrich Drepper <drepper@redhat.com>2001-04-23 19:01:10 +0000
commit3b5c1b57d3a2de7955eed21f01cb80e663473491 (patch)
tree3adc1685dfb18a5b08067aaa4b4143f31c2d84e7 /linuxthreads
parentbc183edc4e9fb3bd3bf68a99592e5b9e6a850d79 (diff)
Update.
* 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.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog15
-rw-r--r--linuxthreads/Makefile3
-rw-r--r--linuxthreads/internals.h6
-rw-r--r--linuxthreads/manager.c8
-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.c6
-rw-r--r--linuxthreads/sysdeps/i386/i586/Makefile3
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