#include <@{"pExec/Node.h" LINK "pExec/Node.h/File"}>
#endif
/*\\
*** WICHTIG !
***
*** @{"pOS_ProcureSemaphore" LINK "pExecD/pOS_ProcureSemaphore"},@{"pOS_AttemptProcureSemaphore" LINK "pExecD/pOS_AttemptProcureSemaphore"},ss_QueueReply
*** Immer wenn eine Message vom Semaphore-Manager replyed wird, befindet
*** sich in msg->mn_Node.ln_Name der Zeiger auf die Semaphore.
\\*/
/*----------------------------------
-----------------------------------*/
struct pOS_SemaphoreRequest
{
@{"struct pOS_ExNode" LINK "pExec/List.h/File" 37} sr_Link;
@{"struct pOS_Task" LINK "pExec/Task.h/File" 18} *sr_Waiter;
};
/*----------------------------------
Semaphore data structure
-----------------------------------*/
struct pOS_Semaphore
{
@{"struct pOS_ExNode" LINK "pExec/List.h/File" 37} ss_Link;
@{"UWORD" LINK "pExec/Types.h/File" 93} ss_NestCount;
@{"struct pOS_ExList" LINK "pExec/List.h/File" 50} ss_WaitQueue;
@{"struct pOS_SemaphoreRequest" LINK File 26} ss_MultipleLink;
@{"struct pOS_Task" LINK "pExec/Task.h/File" 18}* ss_Owner;
@{"UWORD" LINK "pExec/Types.h/File" 93} ss_QueueCount;
@{"struct pOS_Message" LINK "pExec/MsgPort.h/File" 41} *ss_QueueReply; /* wird bei ss_QueueCount++ zurückgesendet (@{"pOS_ReplyMsg" LINK "pExecD/pOS_ReplyMsg"}) */
@{"struct pOS_ExList" LINK "pExec/List.h/File" 50} ss_ShList;
@{"UBYTE" LINK "pExec/Types.h/File" 95} ss_Flags; /* (enum pOS_SemaphoreFlags) */
@{"UBYTE" LINK "pExec/Types.h/File" 95} ss_Reserved[19];
};
enum pOS_SemaphoreFlags
{
SEMF_TPEnqueue= 0x01, /* Enqueue Request like Task-Priority */
SEMF_Shared = 0x80, /* pOS-private (never set this bit) */