about summary refs log tree commit diff
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)
downloadglibc-3b5c1b57d3a2de7955eed21f01cb80e663473491.tar.gz
glibc-3b5c1b57d3a2de7955eed21f01cb80e663473491.tar.xz
glibc-3b5c1b57d3a2de7955eed21f01cb80e663473491.zip
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