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

#ifndef ulmProcess__h
#define ulmProcess__h

#include "SYSTEM.h"
#include "ulmEvents.h"

typedef
	void (*ulmProcess_AbortProc)(void);

typedef
	struct ulmProcess_ExitEventRec *ulmProcess_ExitEvent;

typedef
	struct ulmProcess_ExitEventRec { /* ulmEvents_EventRec */
		ulmEvents_EventType type;
		ulmEvents_Message message;
		char _prvt0[8];
		INT32 exitcode;
	} ulmProcess_ExitEventRec;

typedef
	void (*ulmProcess_ExitProc)(INT32);

typedef
	struct ulmProcess_InterfaceRec *ulmProcess_Interface;

typedef
	void (*ulmProcess_PauseProc)(void);

typedef
	struct ulmProcess_InterfaceRec {
		ulmProcess_ExitProc exit;
		ulmProcess_AbortProc abort;
		ulmProcess_PauseProc pause;
	} ulmProcess_InterfaceRec;

typedef
	CHAR ulmProcess_Name[128];


import ulmProcess_Name ulmProcess_name, ulmProcess_id, ulmProcess_host;
import INT32 ulmProcess_indicateSuccess, ulmProcess_indicateFailure;
import ulmEvents_EventType ulmProcess_softTermination, ulmProcess_termination, ulmProcess_abort, ulmProcess_startOfGarbageCollection;

import ADDRESS *ulmProcess_ExitEventRec__typ;
import ADDRESS *ulmProcess_InterfaceRec__typ;

import void ulmProcess_Abort (void);
import void ulmProcess_Exit (INT32 code);
import void ulmProcess_Pause (void);
import void ulmProcess_SetHandlers (ulmProcess_Interface if_);
import void ulmProcess_Terminate (void);
import void ulmProcess_TerminateSoftly (void);
import void *ulmProcess__init(void);


#endif // ulmProcess
