NAME | SYNOPSIS | API RESTRICTIONS | FEATURES | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO
#include <date/chDate.h>int univTime(KnTimeVal * curtime);
The function or functions documented here may not be used safely in all application contexts with all APIs provided in the ChorusOS 5.0 product.
See API(5FEA) for details.
DATE
The microkernel maintains a Universal Time (time-of-day) variable using a KnTimeVal structure whose members are defined in sysTime(2K).
If not initialized from a hardware time-of-day chip during system initialization, this variable will hold an invalid value until univTimeSet is called.
The univTime function returns the time of day in Universal Time to curtime . If the time of day is not yet set, curtime will be set to an invalid value ( tmSec = 0, tmNSec = K_INVALID_NSEC ).
The univTimeSet and univTimeAdjust functions allow you to get and/or set the microkernel time-of-day value, or to request a progressive adjustment of that value.
The univTimeGetRes function obtains the resolution of the Universal Time system calls. The time value returned in resolution represents the smallest possible difference between two distinct values of the universal time.
All the univTime arguments are pointers to KnTimeVal structures. The input arguments are newtime and newdelta . The output arguments sasre curtime, oldtime, olddelta and resolution . If newtime is not 0, the microkernel variable is assigned with the contents of the structure pointed to by newtime. If oldtime is not 0, the current value of the microkernel variable is given in the structure pointed to by oldtime (if newtime is not 0, the returned value corresponds to the value of the microkernel variable before its modification). If newdelta is not 0, the microkernel will add (if the structure pointed to by newdelta represents a positive value) or substract (if newdelta represents a negative value) the number of (seconds, nanoseconds) represented by newdelta. This adjustment is done progressively: a small portion of the adjustment which is a fraction of the system clock resolution is performed at each clock interrupt until the full adjustment is made. The time value always increases. If olddelta is not 0, the value of the remaining adjustment is given in the structure pointed to by olddelta.
Only SUPERVISOR threads (see threadCreate (2K)) or threads belonging to SYSTEM actors (see actorCreate (2K)) are allowed to set the time-of-day or to request an adjustment.
Upon successful completion, the Universal Time system calls return zero. Otherwise, a negative error code is returned.
Some of the data provided are outside the current actor's address space.
The time value referenced by newtime or newdelta is invalid.
The current thread is neither a supervisor thread nor a thread of a system actor.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | API RESTRICTIONS | FEATURES | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO