#ifndef EXEC_SEMAPHORES_H
#define EXEC_SEMAPHORES_H
/*
** $Filename: exec/semaphores.h $
** $Release: 2.04 Includes, V37.4 $
** $Revision: 36.6 $
** $Date: 90/05/10 $
**
** Definitions for locking functions.
**
** (C) Copyright 1986-1991 Commodore-Amiga, Inc.
** All Rights Reserved
*/

#ifndef EXEC_NODES_H
#include "exec/nodes.h"
#endif 

#ifndef EXEC_LISTS_H
#include "exec/lists.h"
#endif 

#ifndef EXEC_PORTS_H
#include "exec/ports.h"
#endif 

#ifndef EXEC_TASKS_H
#include "exec/tasks.h"
#endif 





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;
};





struct Semaphore {
 struct MsgPort sm_MsgPort;
 WORD sm_Bids;
};

#define sm_LockMsg mp_SigTask


#endif 
