#ifndef EXEC_SEMAPHORES_H #define EXEC_SEMAPHORES_H /* Copyright © 1995-2001, The AROS Development Team. All rights reserved. $Id: semaphores.h 12757 2001-12-08 22:23:57Z chodorowski $ Desc: Semaphore handling Lang: english */ #ifndef EXEC_LISTS_H # include #endif #ifndef EXEC_NODES_H # include #endif #ifndef EXEC_PORTS_H # include #endif #ifndef EXEC_TASKS_H # include #endif /* Signal Semaphores */ /* Private structure for use in ObtainSemaphore */ struct SemaphoreRequest { struct MinNode sr_Link; struct Task * sr_Waiter; }; struct SignalSemaphore { struct Node ss_Link; WORD ss_NestCount; struct MinList ss_WaitQueue; struct SemaphoreRequest ss_MultipleLink; struct Task * ss_Owner; WORD ss_QueueCount; }; /* For use in Procure()/Vacate() */ struct SemaphoreMessage { struct Message ssm_Message; struct SignalSemaphore * ssm_Semaphore; }; #define SM_EXCLUSIVE (0L) #define SM_SHARED (1L) #endif /* EXEC_SEMAPHORES_H */