home *** CD-ROM | disk | FTP | other *** search
- {$if not def EXEC_SEMAPHORES_H} CONST EXEC_SEMAPHORES_H=0;
-
- { *******************************************************************
- ** KickPascal-Include-Datei "exec/semaphores.h" zu Kickstart 3.0 **
- ******************************************************************* }
-
- TYPE p_SemaphoreRequest = ^SemaphoreRequest;
- TYPE p_SignalSemaphore = ^SignalSemaphore;
- TYPE p_SemaphoreMessage = ^SemaphoreMessage;
- TYPE p_Semaphore = ^Semaphore;
-
-
- {$if not def EXEC_NODES_H;incl "exec/nodes.h";endif}
- {$if not def EXEC_LISTS_H;incl "exec/lists.h";endif}
- {$if not def EXEC_PORTS_H;incl "exec/ports.h";endif}
- {$if not def EXEC_TASKS_H;incl "exec/tasks.h";endif}
-
- TYPE SemaphoreRequest = RECORD
- sr_Link : MinNode;
- sr_Waiter : p_Task;
- END;
-
- TYPE SignalSemaphore = RECORD
- ss_Link : Node;
- ss_NestCount : Integer;
- ss_WaitQueue : MinList;
- ss_MultipleLink : SemaphoreRequest;
- ss_Owner : p_Task;
- ss_QueueCount : Integer;
- END;
-
- TYPE SemaphoreMessage = RECORD
- ssm_Message : Message;
- ssm_Semaphore : p_SignalSemaphore;
- END;
-
- CONST
- SM_SHARED = 1;
- SM_EXCLUSIVE = 0;
-
-
- TYPE Semaphore = RECORD
- sm_MsgPort : MsgPort;
- sm_Bids : Integer;
- END;
-
- {
- ** Zur Information
- ** sm_LockMsg = mp_SigTask
- }
-
- {$endif}
-