/* voc 2.1.0 [2025/05/18] for gcc LP64 on slackware xtspaF */

#ifndef oocTime__h
#define oocTime__h

#include "SYSTEM.h"

typedef
	struct oocTime_Interval {
		INT32 dayInt, msecInt;
	} oocTime_Interval;

import void oocTime_Interval_Add (oocTime_Interval *a, ADDRESS *a__typ, oocTime_Interval b);
import INT8 oocTime_Interval_Cmp (oocTime_Interval *a, ADDRESS *a__typ, oocTime_Interval b);
import LONGREAL oocTime_Interval_Fraction (oocTime_Interval *a, ADDRESS *a__typ, oocTime_Interval b);
import void oocTime_Interval_Scale (oocTime_Interval *a, ADDRESS *a__typ, LONGREAL b);
import void oocTime_Interval_Sub (oocTime_Interval *a, ADDRESS *a__typ, oocTime_Interval b);
#define __oocTime_Interval_Add(a, a__typ, b) __SEND(a__typ, 0, void(*)(oocTime_Interval*, ADDRESS *, oocTime_Interval), (a, a__typ, b))
#define __oocTime_Interval_Cmp(a, a__typ, b) __SEND(a__typ, 1, INT8(*)(oocTime_Interval*, ADDRESS *, oocTime_Interval), (a, a__typ, b))
#define __oocTime_Interval_Fraction(a, a__typ, b) __SEND(a__typ, 2, LONGREAL(*)(oocTime_Interval*, ADDRESS *, oocTime_Interval), (a, a__typ, b))
#define __oocTime_Interval_Scale(a, a__typ, b) __SEND(a__typ, 3, void(*)(oocTime_Interval*, ADDRESS *, LONGREAL), (a, a__typ, b))
#define __oocTime_Interval_Sub(a, a__typ, b) __SEND(a__typ, 4, void(*)(oocTime_Interval*, ADDRESS *, oocTime_Interval), (a, a__typ, b))

typedef
	struct oocTime_TimeStamp {
		INT32 days, msecs;
	} oocTime_TimeStamp;

import void oocTime_TimeStamp_Add (oocTime_TimeStamp *a, ADDRESS *a__typ, oocTime_Interval b);
import INT8 oocTime_TimeStamp_Cmp (oocTime_TimeStamp *a, ADDRESS *a__typ, oocTime_TimeStamp b);
import void oocTime_TimeStamp_Delta (oocTime_TimeStamp *a, ADDRESS *a__typ, oocTime_TimeStamp b, oocTime_Interval *c, ADDRESS *c__typ);
import void oocTime_TimeStamp_Sub (oocTime_TimeStamp *a, ADDRESS *a__typ, oocTime_Interval b);
#define __oocTime_TimeStamp_Add(a, a__typ, b) __SEND(a__typ, 0, void(*)(oocTime_TimeStamp*, ADDRESS *, oocTime_Interval), (a, a__typ, b))
#define __oocTime_TimeStamp_Cmp(a, a__typ, b) __SEND(a__typ, 1, INT8(*)(oocTime_TimeStamp*, ADDRESS *, oocTime_TimeStamp), (a, a__typ, b))
#define __oocTime_TimeStamp_Delta(a, a__typ, b, c, c__typ) __SEND(a__typ, 2, void(*)(oocTime_TimeStamp*, ADDRESS *, oocTime_TimeStamp, oocTime_Interval*, ADDRESS *), (a, a__typ, b, c, c__typ))
#define __oocTime_TimeStamp_Sub(a, a__typ, b) __SEND(a__typ, 3, void(*)(oocTime_TimeStamp*, ADDRESS *, oocTime_Interval), (a, a__typ, b))



import ADDRESS *oocTime_TimeStamp__typ;
import ADDRESS *oocTime_Interval__typ;

import void oocTime_GetTime (oocTime_TimeStamp *t, ADDRESS *t__typ);
import void oocTime_InitInterval (oocTime_Interval *int_, ADDRESS *int___typ, INT32 days, INT32 msecs);
import void oocTime_InitTimeStamp (oocTime_TimeStamp *t, ADDRESS *t__typ, INT32 days, INT32 msecs);
import void *oocTime__init(void);


#endif // oocTime
