gm2-libs-iso/wraptime
DEFINITION MODULE wraptime ;
(*
Description: provides an interface to various time related
entities on the underlying host operating system.
It provides access to the glibc/libc functions:
gettimeofday, settimeofday and localtime_r.
*)
FROM SYSTEM IMPORT ADDRESS ;
TYPE
timeval = ADDRESS ;
timezone = ADDRESS ;
tm = ADDRESS ;
(*
InitTimeval - returns a newly created opaque type.
*)
PROCEDURE InitTimeval () : timeval ;
(*
KillTimeval - deallocates the memory associated with an
opaque type.
*)
PROCEDURE KillTimeval (tv: timeval) : timeval ;
(*
InitTimezone - returns a newly created opaque type.
*)
PROCEDURE InitTimezone () : timezone ;
(*
KillTimezone - deallocates the memory associated with an
opaque type.
*)
PROCEDURE KillTimezone (tv: timezone) : timezone ;
(*
InitTM - returns a newly created opaque type.
*)
PROCEDURE InitTM () : tm ;
(*
KillTM - deallocates the memory associated with an
opaque type.
*)
PROCEDURE KillTM (tv: tm) : tm ;
(*
gettimeofday - calls gettimeofday(2) with the same parameters, tv,
and, tz. It returns 0 on success.
*)
PROCEDURE gettimeofday (tv: timeval; tz: timezone) : INTEGER ;
(*
settimeofday - calls settimeofday(2) with the same parameters, tv,
and, tz. It returns 0 on success.
*)
PROCEDURE settimeofday (tv: timeval; tz: timezone) : INTEGER ;
(*
GetFractions - returns the tv_usec field inside the timeval structure
as a CARDINAL.
*)
PROCEDURE GetFractions (tv: timeval) : CARDINAL ;
(*
localtime_r - returns the tm parameter, m, after it has been assigned with
appropriate contents determined by, tv. Notice that
this procedure function expects, timeval, as its first
parameter and not a time_t (as expected by the posix
equivalent). This avoids having to expose a time_t
system dependant definition.
*)
PROCEDURE localtime_r (tv: timeval; m: tm) : tm ;
(*
GetYear - returns the year from the structure, m.
*)
PROCEDURE GetYear (m: tm) : CARDINAL ;
(*
GetMonth - returns the month from the structure, m.
*)
PROCEDURE GetMonth (m: tm) : CARDINAL ;
(*
GetDay - returns the day of the month from the structure, m.
*)
PROCEDURE GetDay (m: tm) : CARDINAL ;
(*
GetHour - returns the hour of the day from the structure, m.
*)
PROCEDURE GetHour (m: tm) : CARDINAL ;
(*
GetMinute - returns the minute within the hour from the structure, m.
*)
PROCEDURE GetMinute (m: tm) : CARDINAL ;
(*
GetSecond - returns the seconds in the minute from the structure, m.
The return value will always be in the range 0..59.
A leap minute of value 60 will be truncated to 59.
*)
PROCEDURE GetSecond (m: tm) : CARDINAL ;
(*
GetSummerTime - returns a boolean indicating whether summer time is
set.
*)
PROCEDURE GetSummerTime (tz: timezone) : BOOLEAN ;
(*
GetDST - returns the number of minutes west of GMT.
*)
PROCEDURE GetDST (tz: timezone) : INTEGER ;
(*
SetTimeval - sets the fields in timeval, tv, with:
second, minute, hour, day, month, year, fractions.
*)
PROCEDURE SetTimeval (tv: timeval;
second, minute, hour, day,
month, year, yday, wday, isdst: CARDINAL) ;
(*
SetTimezone - set the timezone field inside timeval, tv.
*)
PROCEDURE SetTimezone (tv: timeval;
zone: CARDINAL; minuteswest: INTEGER) ;
END wraptime.