home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / IncPOS.lzx / pExec / Sema.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-18  |  1.6 KB  |  62 lines

  1. #ifndef __INC_POS_PEXEC_SEMA_H
  2. #define __INC_POS_PEXEC_SEMA_H
  3. /*******************************************************************
  4.  Includes Release 24
  5.  (C) Copyright 1995-1997 proDAD
  6.      All Rights Reserved
  7.  
  8.  $AUT Holger Burkarth
  9.  $DAT >>Sema.h<<   29 Sep 1996    11:02:54 - (C) ProDAD
  10. *******************************************************************/
  11. #ifndef __INC_POS_PEXEC_NODE_H
  12. #include <pExec/Node.h>
  13. #endif
  14.  
  15. /*\
  16. *** WICHTIG !
  17. ***
  18. *** pOS_ProcureSemaphore,pOS_AttemptProcureSemaphore,ss_QueueReply
  19. *** Immer wenn eine Message vom Semaphore-Manager replyed wird, befindet
  20. *** sich in msg->mn_Node.ln_Name der Zeiger auf die Semaphore.
  21. \*/
  22.  
  23.  
  24. /*----------------------------------
  25. -----------------------------------*/
  26. struct pOS_SemaphoreRequest
  27. {
  28.   struct pOS_ExNode  sr_Link;
  29.   struct pOS_Task   *sr_Waiter;
  30. };
  31.  
  32.  
  33. /*----------------------------------
  34.  Semaphore data structure
  35. -----------------------------------*/
  36. struct pOS_Semaphore
  37. {
  38.   struct pOS_ExNode           ss_Link;
  39.   UWORD                       ss_NestCount;
  40.   struct pOS_ExList           ss_WaitQueue;
  41.   struct pOS_SemaphoreRequest ss_MultipleLink;
  42.   struct pOS_Task*            ss_Owner;
  43.   UWORD                       ss_QueueCount;
  44.   struct pOS_Message         *ss_QueueReply; /* wird bei ss_QueueCount++ zurückgesendet (pOS_ReplyMsg) */
  45.   struct pOS_ExList           ss_ShList;
  46.   UBYTE                       ss_Flags;      /* (enum pOS_SemaphoreFlags) */
  47.   UBYTE                       ss_Reserved[19];
  48. };
  49.  
  50.  
  51.  
  52. enum pOS_SemaphoreFlags
  53. {
  54.   SEMF_TPEnqueue= 0x01, /* Enqueue Request like Task-Priority */
  55.  
  56.   SEMF_Shared   = 0x80, /* pOS-private (never set this bit) */
  57. };
  58.  
  59.  
  60.  
  61. #endif
  62.