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

#ifndef ulmTimers__h
#define ulmTimers__h

#include "SYSTEM.h"
#include "ulmClocks.h"
#include "ulmEvents.h"
#include "ulmObjects.h"
#include "ulmTimes.h"

typedef
	struct ulmTimers_ErrorEventRec *ulmTimers_ErrorEvent;

typedef
	struct ulmTimers_ErrorEventRec { /* ulmEvents_EventRec */
		ulmEvents_EventType type;
		ulmEvents_Message message;
		char _prvt0[8];
		INT8 errorcode;
	} ulmTimers_ErrorEventRec;

typedef
	struct ulmTimers_TimerRec *ulmTimers_Timer;

typedef
	struct ulmTimers_TimerRec { /* ulmObjects_ObjectRec */
		INT64 _prvt0;
		char _prvt1[40];
	} ulmTimers_TimerRec;


import ulmEvents_Message ulmTimers_errormsg[3];
import ulmEvents_EventType ulmTimers_error;

import ADDRESS *ulmTimers_TimerRec__typ;
import ADDRESS *ulmTimers_ErrorEventRec__typ;

import void ulmTimers_Add (ulmClocks_Clock clock, ulmTimes_Time time, ulmEvents_Event event, ulmTimers_Timer *timer);
import BOOLEAN ulmTimers_NextEvent (ulmClocks_Clock clock, ulmTimes_Time *time);
import void ulmTimers_Remove (ulmTimers_Timer timer);
import void ulmTimers_Schedule (ulmClocks_Clock clock, ulmTimes_Time time, ulmEvents_Event event);
import void *ulmTimers__init(void);


#endif // ulmTimers
