home *** CD-ROM | disk | FTP | other *** search
- #ifndef __INC_POS_PEXEC_SEMA_H
- #define __INC_POS_PEXEC_SEMA_H
- /*******************************************************************
- Includes Release 24
- (C) Copyright 1995-1997 proDAD
- All Rights Reserved
-
- $AUT Holger Burkarth
- $DAT >>Sema.h<< 29 Sep 1996 11:02:54 - (C) ProDAD
- *******************************************************************/
- #ifndef __INC_POS_PEXEC_NODE_H
- #include <pExec/Node.h>
- #endif
-
- /*\
- *** WICHTIG !
- ***
- *** pOS_ProcureSemaphore,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 sr_Link;
- struct pOS_Task *sr_Waiter;
- };
-
-
- /*----------------------------------
- Semaphore data structure
- -----------------------------------*/
- struct pOS_Semaphore
- {
- struct pOS_ExNode ss_Link;
- UWORD ss_NestCount;
- struct pOS_ExList ss_WaitQueue;
- struct pOS_SemaphoreRequest ss_MultipleLink;
- struct pOS_Task* ss_Owner;
- UWORD ss_QueueCount;
- struct pOS_Message *ss_QueueReply; /* wird bei ss_QueueCount++ zurückgesendet (pOS_ReplyMsg) */
- struct pOS_ExList ss_ShList;
- UBYTE ss_Flags; /* (enum pOS_SemaphoreFlags) */
- UBYTE ss_Reserved[19];
- };
-
-
-
- enum pOS_SemaphoreFlags
- {
- SEMF_TPEnqueue= 0x01, /* Enqueue Request like Task-Priority */
-
- SEMF_Shared = 0x80, /* pOS-private (never set this bit) */
- };
-
-
-
- #endif
-