<<>> <> <> <> Process: CEDAR DEFINITIONS = BEGIN <> ConditionPointer: TYPE = POINTER TO Condition; Condition: TYPE = CONDITION; -- The builtin Cedar type; Structure is opaque. MonitorPointer: TYPE = POINTER TO Monitor; Monitor: TYPE = MONITORLOCK; -- The builtin Cedar type; Structure is opaque. InitializeMonitor: UNSAFE PROC [monitor: MonitorPointer]; InitializeCondition: UNSAFE PROC [condition: ConditionPointer, ticks: Ticks]; <> Ticks: TYPE = CARD32; Milliseconds: TYPE = CARD32; Seconds: TYPE = CARD32; MsecToTicks: PROC [Milliseconds] RETURNS [Ticks]; SecondsToTicks: PROC [Seconds] RETURNS [Ticks]; TicksToMsec: PROC [Ticks] RETURNS [Milliseconds]; <> SetTimeout: UNSAFE PROC [condition: ConditionPointer, ticks: Ticks]; DisableTimeout: UNSAFE PROC [condition: ConditionPointer]; <> Detach: PROC [PROCESS]; <> GetCurrent: PROC RETURNS [PROCESS]; <> Priority: TYPE = CARD32; priorityIdleProcess: Priority = 0; priorityBackground, priorityClient0: Priority = 1; priorityNormal, priorityClient1: Priority = 2; priorityForeground, priorityClient2: Priority = 3; priorityClient3: Priority = 4; priorityFaultHandlers: Priority = 5; priorityRealTime: Priority = 6; prioritySwatWatcher: Priority = 7; priorityLast: Priority = 7; SetPriority: PROC [p: Priority]; GetPriority: PROC RETURNS [Priority]; <> Abort: PROC [PROCESS]; <> CancelAbort: PROC [PROCESS]; <> <<>> AbortPending: PROC [] RETURNS [abortPending: BOOLEAN]; <> CheckForAbort: PROC; <> DisableAborts: UNSAFE PROC [pCondition: ConditionPointer]; EnableAborts: UNSAFE PROC [pCondition: ConditionPointer]; <> Pause: PROC [ticks: Ticks]; PauseMsec: PROC [ms: Milliseconds]; Yield: PROC; <> ValidateProcess: PROC [PROCESS]; InvalidProcess: READONLY ERROR [process: PROCESS]; END. <> <> <<>>