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

  1. @DATABASE "pExec/Task.h"
  2. @MASTER   "Work2:AD/IInc/pExec/Task.h"
  3. @REMARK   This file was created by ADtoHT 2.0 on 11-Mär-97  13:34:32
  4. @REMARK   Do not edit
  5. @REMARK   ADtoHT is © 1993-1995 Christian Stieber
  6.  
  7. @NODE MAIN "pExec/Task.h"
  8. @TOC "__pOS_Dev.guide/MAIN"
  9.  
  10. @{"pExec/Task.h" LINK File}
  11.  
  12.  
  13. @{b}Structures@{ub}
  14.  
  15. @{"pOS_StackSwapData" LINK "pExec/Task.h/File" 87}  @{"pOS_Task" LINK "pExec/Task.h/File" 18}
  16.  
  17. @ENDNODE
  18. @NODE File "pExec/Task.h"
  19. #ifndef __INC_POS_PEXEC_TASK_H
  20. #define __INC_POS_PEXEC_TASK_H
  21. /*******************************************************************
  22.  Includes Release 24
  23.  (C) Copyright 1995-1997 proDAD
  24.      All Rights Reserved
  25.  
  26.  $AUT Holger Burkarth
  27.  $DAT >>Task.h<<   13 Feb 1997    09:53:18 - (C) ProDAD
  28. *******************************************************************/
  29. #ifndef __INC_POS_PEXEC_NODE_H
  30. #include <@{"pExec/Node.h" LINK "pExec/Node.h/File"}>
  31. #endif
  32.  
  33.  
  34. /*----------------------------------
  35. -----------------------------------*/
  36. struct pOS_Task
  37. {
  38.   @{"struct pOS_ExNode" LINK "pExec/List.h/File" 37} tc_Node;
  39.   @{"UBYTE" LINK "pExec/Types.h/File" 95}             tc_Flags;
  40.   @{"UBYTE" LINK "pExec/Types.h/File" 95}             tc_State;          /* (enum pOS_TaskStates) */
  41.   @{"SBYTE" LINK "pExec/Types.h/File" 94}             tc_IDNestCnt;      /* intr disabled nesting*/
  42.   @{"SBYTE" LINK "pExec/Types.h/File" 94}             tc_TDNestCnt;      /* task disabled nesting*/
  43.   @{"ULONG" LINK "pExec/Types.h/File" 91}             tc_SigAlloc;       /* sigs allocated */
  44.   @{"ULONG" LINK "pExec/Types.h/File" 91}             tc_SigWait;        /* sigs we are waiting for */
  45.   @{"ULONG" LINK "pExec/Types.h/File" 91}             tc_SigRecvd;       /* sigs we have received */
  46.   @{"ULONG" LINK "pExec/Types.h/File" 91}             tc_SigExcept;      /* sigs we will take excepts for */
  47.   @{"UWORD" LINK "pExec/Types.h/File" 93}             tc_TrapAlloc;      /* traps allocated */
  48.   @{"UWORD" LINK "pExec/Types.h/File" 93}             tc_TrapAble;       /* traps enabled */
  49.   @{"APTR" LINK "pExec/Types.h/File" 87}              tc_ExceptData;     /* points to except data */
  50.   @{"APTR" LINK "pExec/Types.h/File" 87}              tc_ExceptCode;     /* points to except code */
  51.   @{"APTR" LINK "pExec/Types.h/File" 87}              tc_TrapData;       /* points to trap data */
  52.   @{"APTR" LINK "pExec/Types.h/File" 87}              tc_TrapCode;       /* points to trap code */
  53.   @{"APTR" LINK "pExec/Types.h/File" 87}              tc_SPReg;          /* stack pointer        */
  54.   @{"APTR" LINK "pExec/Types.h/File" 87}              tc_SPLower;        /* stack lower bound    */
  55.   @{"APTR" LINK "pExec/Types.h/File" 87}              tc_SPUpper;        /* stack upper bound + 2*/
  56.   @{"VOID" LINK "pExec/Types.h/File" 83}            (*tc_Switch)(@{"VOID" LINK "pExec/Types.h/File" 83});  /* task losing CPU    */
  57.   @{"VOID" LINK "pExec/Types.h/File" 83}            (*tc_Launch)(@{"VOID" LINK "pExec/Types.h/File" 83});  /* task getting CPU  */
  58.   @{"struct pOS_ExList" LINK "pExec/List.h/File" 50} tc_MemEntry;       /* Allocated memory. Freed by RemTask() */
  59.   @{"UWORD" LINK "pExec/Types.h/File" 93}             tc_NestSemCnt;     /* Semaphore nesting */
  60.   @{"SBYTE" LINK "pExec/Types.h/File" 94}             tc_SysTcPri;
  61.   @{"UBYTE" LINK "pExec/Types.h/File" 95}             tc_Pad;
  62.   @{"UBYTE" LINK "pExec/Types.h/File" 95} tc_Reserved[20];
  63.  
  64.   struct pOS_TaskInfo    *tc_Info;
  65.   struct pOS_TaskControl *tc_Control;
  66.   struct pOS_Task        *tc_FriendTask;  /* For friend talk (will be set in @{"pOS_CreateTask()" LINK "pExecD/pOS_CreateTask"} */
  67.   @{"ULONG" LINK "pExec/Types.h/File" 91}                   tc_UserData[2]; /* For use by the task; no restrictions! */
  68. };
  69.  
  70.  
  71.  
  72. enum pOS_TaskStates
  73. {
  74.   TKSTA_INVALID=0,
  75.   TKSTA_ADDED,
  76.   TKSTA_RUN,
  77.   TKSTA_READY,
  78.   TKSTA_WAIT,
  79.   TKSTA_EXCEPT,
  80.   TKSTA_REMOVED,
  81. };
  82.  
  83.  
  84. enum pOS_TaskSignal
  85. {
  86.   SIGB_AllocAny=-1,  /* @{"pOS_AllocSignal" LINK "pExecD/pOS_AllocSignal"}(,SIGB_AllocAny) => nächstes freies Signal */
  87.   SIGB_NoSignal=-1,  /* return from @{"pOS_AllocSignal()" LINK "pExecD/pOS_AllocSignal"} => kein freies Signal gefunden */
  88.  
  89.   SIGB_Semaphore = 4,
  90.   SIGB_Internal  = 4, /** Achtung: wie Semaphore **/
  91.   SIGB_Signal    = 5,
  92.   SIGB_Dos       = 8,
  93.  
  94.   SIGF_Semaphore = 0x0010,
  95.   SIGF_Internal  = 0x0010,
  96.   SIGF_Signal    = 0x0020, /* Public-User - Signal, system do not use this */
  97.   SIGF_Dos       = 0x0100,
  98. };
  99.  
  100.  
  101.  
  102.  
  103. /*----------------------------------
  104. -----------------------------------*/
  105. struct pOS_StackSwapData
  106. {
  107.   @{"APTR" LINK "pExec/Types.h/File" 87}  stk_Lower;    /* Lowest byte of stack */
  108.   @{"APTR" LINK "pExec/Types.h/File" 87}  stk_Upper;    /* Upper end of stack (size + Lowest) */
  109.   @{"APTR" LINK "pExec/Types.h/File" 87}  stk_Pointer;  /* Stack pointer at switch point */
  110. };
  111.  
  112.  
  113.  
  114. /** @{"pOS_SetTaskXPri()" LINK "pExecD/pOS_SetTaskXPri"} **/
  115. enum pOS_SetTaskXPriMode
  116. {
  117.   TKXPDMD_None          = 0x0000,
  118.   TKXPDMD_UseSPri       = 0x0001,       /* SysPri setzen */
  119.   TKXPDMD_IgnoreSPri    = 0x0000,
  120.  
  121.   TKXPDMD_NoSem         = 0x0080,       /* Speziallfall nur intern */
  122. };
  123.  
  124.  
  125.  
  126.  
  127. #endif
  128. @ENDNODE
  129.