#ifndef EXEC_SEMAPHORES_H
#define EXEC_SEMAPHORES_H

/*******************************************************************
 pOS / Amiga adapt
*******************************************************************/

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef __INC_POS_PEXEC_SEMA_H
#include <pExec/Sema.h>
#endif
#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 Node  sr_Link;
  struct Task *sr_Waiter;
};



struct SignalSemaphore
{
  struct Node           ss_Link;
  UWORD                 ss_NestCount;
  struct List           ss_WaitQueue;
  struct SemaphoreRequest ss_MultipleLink;
  struct Task          *ss_Owner;
  UWORD                 ss_QueueCount;
  struct Message       *ss_QueueReply;
  struct List           ss_ShList;
  UBYTE                 ss_Flags;
  UBYTE                 ss_Reserved[19];
};


#endif  /* EXEC_SEMAPHORES_H */
