Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getitimer(2) — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sigvec(2)

gettimeofday(2)



GETITIMER(2)        RISC/os Reference Manual         GETITIMER(2)



NAME
     getitimer, setitimer - get/set value of interval timer

SYNOPSIS
   Headers
     For -systype svr3:

     #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 svr3 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 11/19/92                   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 svr3 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 svr3, they are not resolved by libc.a.  See
     intro(3) for more information.










 Page 2                 Printed 11/19/92



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026