From be1dd9498ba15988055e8de83bf5b67a0d0a6543 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 27 Jul 1999 00:24:04 +0000 Subject: Update. 1999-07-26 Ulrich Drepper * sysdeps/generic/clock_getres.c: New file. * sysdeps/generic/clock_gettime.c: New file. * sysdeps/generic/clock_settime.c: New file. * sysdeps/generic/timer_create.c: New file. * sysdeps/generic/timer_delete.c: New file. * sysdeps/generic/timer_getoverr.c: New file. * sysdeps/generic/timer_gettime.c: New file. * sysdeps/generic/timer_settime.c: New file. * sysdeps/generic/bits/time.h: Define __clockid_t, __timer_t, CLOCK_REALTIME, and TIMER_ABSTIME. * sysdeps/mach/hurd/bits/time.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/time.h: Likewise. * sysdeps/unix/sysv/linux/bits/time.h: Likewise. * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_TIMERS. * sysdeps/unix/sysv/linux/bits/siginfo.h: Define si_timer1 and si_timer2. * sysdeps/unix/sysv/linux/syscalls.list: Add clock and timer syscalls. * time/Makefile (routines): Add clock_getres, clock_gettime, clock_setres, timer_create, timer_delete, timer_getoverr, timer_gettime, and timer_settime. * time/time.h: Define clockid_t, timer_t, and struct itimerspec for POSIX.1b. Add prototypes for clock and timer functions. --- time/Makefile | 5 ++++- time/time.h | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 2 deletions(-) (limited to 'time') diff --git a/time/Makefile b/time/Makefile index c0cbb91a1d..8986e96bef 100644 --- a/time/Makefile +++ b/time/Makefile @@ -28,7 +28,10 @@ routines := offtime asctime clock ctime ctime_r difftime \ gettimeofday settimeofday adjtime tzset \ tzfile getitimer setitimer \ stime dysize timegm ftime \ - strptime getdate wcsftime + strptime getdate wcsftime \ + clock_getres clock_gettime clock_setres \ + timer_create timer_delete timer_getoverr \ + timer_gettime timer_settime tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime diff --git a/time/time.h b/time/time.h index 0871561f18..7479e8fa6b 100644 --- a/time/time.h +++ b/time/time.h @@ -78,7 +78,7 @@ typedef __time_t time_t; ((defined _TIME_H && defined __USE_POSIX199309) || defined __need_timespec) # define __timespec_defined 1 -/* POSIX.4 structure for a time value. This is like a `struct timeval' but +/* POSIX.1b structure for a time value. This is like a `struct timeval' but has nanoseconds instead of microseconds. */ struct timespec { @@ -114,6 +114,22 @@ struct tm }; +#ifdef __USE_POSIX199309 +/* Clock ID used in clock and timer functions. */ +typedef __clockid_t clockid_t; + +/* Timer ID returned by `timer_create'. */ +typedef __timer_t timer_t; + +/* POSIX.1b structure for timer start values and intervals. */ +struct itimerspec + { + struct timespec it_interval; + struct timespec it_value; + }; +#endif /* POSIX.1b */ + + /* Time used by the program so far (user time + system time). The result / CLOCKS_PER_SECOND is program time in seconds. */ extern clock_t clock __P ((void)); @@ -239,6 +255,36 @@ extern int dysize __P ((int __year)); /* Pause execution for a number of nanoseconds. */ extern int nanosleep __P ((__const struct timespec *__requested_time, struct timespec *__remaining)); + + +/* Get resolution of clock CLOCK_ID. */ +extern int clock_getres __P ((clockid_t __clock_id, struct timespec *__res)); + +/* Get current value of clock CLOCK_ID and store it in TP. */ +extern int clock_gettime __P ((clockid_t __clock_id, struct timespec *__tp)); + +/* Set clock CLOCK_ID to value TP. */ +extern int clock_settime __P ((clockid_t __clock_id, + __const struct timespec *__tp)); + + +/* Create new per-process timer using CLOCK_ID. */ +extern int timer_create __P ((clockid_t __clock_id, struct sigevent *__evp, + timer_t *__timerid)); + +/* Delete timer TIMERID. */ +extern int timer_delete __P ((timer_t __timerid)); + +/* Set timer TIMERID to VALUE, returning old value in OVLAUE. */ +extern int timer_settime __P ((timer_t __timerid, int __flags, + __const struct itimerspec *__value, + struct itimerspec *__ovalue)); + +/* Get current value of timer TIMERID and store it in VLAUE. */ +extern int timer_gettime __P ((timer_t __timerid, struct itimerspec *__value)); + +/* Get expiration overrun for timer TIMERID. */ +extern int timer_getoverrun __P ((timer_t __timerid)); # endif -- cgit 1.4.1