GETITIMER(2) RISC/os Reference Manual GETITIMER(2)
NAME
getitimer, setitimer - get/set value of interval timer
SYNOPSIS
Headers
For -systype sysv:
#include <bsd/sys/time.h>
For -systype bsd43:
#include <sys/time.h>
Declarations
#define ITIMERREAL 0 /* real time intervals */
#define ITIMERVIRTUAL 1 /* virtual time intervals */
#define ITIMERPROF 2 /* user and system virtual time */
getitimer(which, value)
int which;
struct itimerval *value;
setitimer(which, value, ovalue)
int which;
struct itimerval *value, *ovalue;
DESCRIPTION
The system provides each process with three interval timers,
defined in <bsd/sys/time.h> for -systype sysv and
<sys/time.h> for -systype bsd43. The getitimer call returns
the current value for the timer specified in which in the
structure at value. The setitimer call sets a timer to the
specified value (returning the previous value of the timer
if ovalue is nonzero).
A timer value is defined by the itimerval structure:
struct itimerval {
struct timeval it_interval; /* timer interval */
struct timeval it_value; /* current value */
};
If it_value is non-zero, it indicates the time to the next
timer expiration. If it_interval is non-zero, it specifies a
value to be used in reloading it_value when the timer
expires. Setting it_value to 0 disables a timer. Setting
it_interval to 0 causes a timer to be disabled after its
next expiration (assuming it_value is non-zero).
Time values smaller than the resolution of the system clock
are rounded up to this resolution.
Printed 1/15/91 Page 1
GETITIMER(2) RISC/os Reference Manual GETITIMER(2)
The ITIMER_REAL timer decrements in real time. A SIGALRM
signal is delivered when this timer expires.
The ITIMER_VIRTUAL timer decrements in process virtual time.
It runs only when the process is executing. A SIGVTALRM
signal is delivered when it expires.
The ITIMER_PROF timer decrements both in process virtual
time and when the system is running on behalf of the pro-
cess. It is designed to be used by interpreters in statist-
ically profiling the execution of interpreted programs.
Each time the ITIMER_PROF timer expires, the SIGPROF signal
is delivered. Because this signal may interrupt in-progress
system calls, programs using this timer must be prepared to
restart interrupted system calls.
NOTES
Three macros for manipulating time values are defined in
<bsd/sys/time.h> for -systype sysv and <sys/time.h> for
-systype bsd43. timerclear sets a time value to zero,
timerisset tests if a time value is non-zero, and timercmp
compares two time values (beware that >= and <= do not work
with this macro).
RETURN VALUE
If the calls succeed, a value of 0 is returned. If an error
occurs, the value -1 is returned, and a more precise error
code is placed in the global variable errno.
ERRORS
The possible errors are:
[EFAULT] The value parameter specified a bad
address.
[EINVAL] A value parameter specified a time was
too large to be handled.
SEE ALSO
sigvec(2), gettimeofday(2).
NOTE
When these routines are used in a program which is compiled
in -systype sysv, they are not resolved by libc.a. See
intro(3-SysV) for more information.
Page 2 Printed 1/15/91