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

  1. #ifndef __INC_POS_PROTO_PEXEC2_H
  2. #define __INC_POS_PROTO_PEXEC2_H
  3. /*******************************************************************
  4.  Includes Release 24
  5.  (C) Copyright 1995-1997 proDAD
  6.      All Rights Reserved
  7.  
  8.  $AUT Holger Burkarth
  9.  $DAT >>pExec2.h<<   08 Mar 1997    08:38:57 - (C) ProDAD
  10. *******************************************************************/
  11. #ifndef __INC_POS_PEXEC_LIST_H
  12. #include <pExec/List.h>
  13. #endif
  14.  
  15.  
  16.  
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20.  
  21. /*------ execbase -----------------------------------------------------*/
  22. VOID pOS_ColdReboot(VOID);
  23. VOID pOS_WriteDebug(_R_A0 const VOID*,_R_D0 size_t,_R_D1 ULONG type);
  24. VOID pOS_LockSemaphoreList(VOID);
  25. VOID pOS_UnlockSemaphoreList(VOID);
  26. VOID pOS_LockMsgPortList(VOID);
  27. VOID pOS_UnlockMsgPortList(VOID);
  28. VOID pOS_LockClassList(VOID);
  29. VOID pOS_UnlockClassList(VOID);
  30. VOID pOS_LockLibraryList(VOID);
  31. VOID pOS_UnlockLibraryList(VOID);
  32. VOID pOS_LockDeviceList(VOID);
  33. VOID pOS_UnlockDeviceList(VOID);
  34. VOID pOS_LockTaskList(VOID);
  35. VOID pOS_UnlockTaskList(VOID);
  36.  
  37.  
  38. /*------ tasks --------------------------------------------------------*/
  39. APTR  pOS_AddTask(_R_A0 struct pOS_Task*,_R_A1 APTR initPC,_R_A2 APTR finalPC);
  40. VOID  pOS_RemTask(_R_A0 __ARID__ struct pOS_Task*);
  41. struct pOS_Task *pOS_FindTask(_R_A0 const CHAR*);
  42. SBYTE pOS_SetTaskPriority(_R_A0 struct pOS_Task*,_R_D0 SLONG priority);
  43. ULONG pOS_SetSignal(_R_D0 ULONG newSignals,_R_D1 ULONG signalSet);
  44. ULONG pOS_WaitSignal(_R_D0 ULONG signalSet);
  45. VOID  pOS_SendSignal(_R_A0 struct pOS_Task*,_R_D0 ULONG signalSet);
  46. __ARID__ ULONG pOS_AllocSignal(_R_D0 ULONG signalNum);
  47. VOID  pOS_FreeSignal(_R_D0 __ARID__ ULONG signalNum);
  48. __ARID__ ULONG pOS_AllocTrap(_R_D0 ULONG trapNum);
  49. VOID  pOS_FreeTrap(_R_D0 __ARID__ ULONG trapNum);
  50. VOID  pOS_ForbidSchedul(VOID);
  51. VOID  pOS_PermitSchedul(VOID);
  52. struct pOS_Task* pOS_CreateTask(_R_A0 const CHAR* name,_R_D0 SLONG pri,
  53.           _R_A1 APTR func,_R_D1 size_t stackSize,_R_D2 size_t taskSize,
  54.           _R_D3 ULONG userData0,_R_A2 struct pOS_TaskControl*);
  55. VOID  pOS_CacheClearE(_R_A0 APTR,_R_D0 size_t,_R_D1 ULONG);
  56. VOID  pOS_CacheClearU(VOID);
  57. ULONG pOS_CacheControl(_R_D0 ULONG,_R_D1 ULONG);
  58. VOID  pOS_StackSwap(_R_A0 struct pOS_StackSwapData*);
  59. VOID  pOS_ForbidIRQ(VOID);
  60. VOID  pOS_PermitIRQ(VOID);
  61. ULONG pOS_WaitTimeSignal(_R_D0 ULONG signalSet,_R_D1 ULONG micros);
  62. VOID  pOS_DeleteTask(_R_A0 __ARID__ struct pOS_Task*,_R_A1 struct pOS_Task* sigTask,_R_D0 ULONG signalSet);
  63. SBYTE pOS_SetTaskXPri(_R_A0 struct pOS_Task*,_R_D0 SLONG runPri,_R_D1 SLONG sysPri,_R_D2 ULONG mode);
  64. ULONG pOS_Supervisor(_R_A0 ULONG(*func)(VOID) );
  65.  
  66.  
  67.  
  68. /*------ messages -----------------------------------------------------*/
  69. VOID  pOS_AddPort(_R_A0 struct pOS_MsgPort*);
  70. VOID  pOS_RemPort(_R_A0 struct pOS_MsgPort*);
  71. VOID  pOS_PutMsg(_R_A0 struct pOS_MsgPort*,_R_A1 __ARID__ struct pOS_Message*);
  72. __ARID__ struct pOS_Message *pOS_GetMsg(_R_A0 struct pOS_MsgPort*);
  73. VOID pOS_ReplyMsg(_R_A0 __ARID__ struct pOS_Message*);
  74. __ARID__ struct pOS_Message *pOS_WaitPort(_R_A0 struct pOS_MsgPort*);
  75. struct pOS_MsgPort *pOS_FindPort(_R_A0 const CHAR *name);
  76. __ARID__ struct pOS_MsgPort *pOS_CreatePort(_R_A0 const CHAR*,_R_D0 SLONG pri);
  77. VOID  pOS_DeletePort(_R_A0 __ARID__ struct pOS_MsgPort*);
  78. struct pOS_MsgPort *pOS_ConstructMsgPort(_R_A0 struct pOS_MsgPort*);
  79. VOID  pOS_DestructMsgPort(_R_A0 struct pOS_MsgPort*);
  80. struct pOS_MsgPort *pOS_ConstructSigPort(_R_A0 struct pOS_MsgPort*,_R_D0 ULONG sigBit);
  81. struct pOS_Message *pOS_WaitTimePort(_R_A0 struct pOS_MsgPort*,_R_D0 ULONG micros);
  82.  
  83.  
  84.  
  85.  
  86. /*------ libraries ----------------------------------------------------*/
  87. VOID  pOS_AddLibrary(_R_A0 struct pOS_Library*);
  88. VOID  pOS_RemLibrary(_R_A0 struct pOS_Library*);
  89. __ARID__ struct pOS_Library* pOS_OpenLibrary(_R_A0 const CHAR*,_R_D0 ULONG version);
  90. VOID  pOS_CloseLibrary(_R_A0 __ARID__ struct pOS_Library*);
  91. VOID  pOS_SumLibrary(_R_A0 struct pOS_Library*);
  92. size_t pOS_MakeFunctions(_R_A0 struct pOS_LibraryFunction*,
  93.                          _R_A1 const ULONG**,_R_A2 ULONG*,_R_D0 size_t);
  94. __ARID__ struct pOS_Library *pOS_MakeLibrary(_R_A0 const ULONG**,_R_A1 APTR,
  95.                              _R_A2 BOOL (*initFunc)(_R_LB struct pOS_ExecBase*,_R_A0 struct pOS_Library*),
  96.                              _R_D0 size_t posSize,_R_A3 struct pOS_SegmentLst*);
  97. struct pOS_LibraryFunction* pOS_SetLibFunction(_R_A0 struct pOS_Library*,
  98.                           _R_D0 SLONG funcIndex,_R_A1 const struct pOS_LibraryFunction* newFunc,
  99.                           _R_A2 struct pOS_LibraryFunction* oldFunc);
  100.  
  101.  
  102.  
  103. /*------ memory allocation --------------------------------------------*/
  104. __ARID__ APTR pOS_Allocate(_R_A0 struct pOS_MemHeader*,_R_D0 size_t byteSize );
  105. VOID  pOS_Deallocate(_R_A0 struct pOS_MemHeader*,_R_A1 __ARID__ APTR memoryBlock,_R_D0 size_t byteSize);
  106. __ARID__ APTR pOS_AllocMem(_R_D0 size_t byteSize,_R_D1 ULONG requirements);
  107. __ARID__ APTR pOS_AllocAbs(_R_D0 size_t byteSize,_R_A0 APTR location);
  108. VOID  pOS_FreeMem(_R_A0 __ARID__ APTR memoryBlock,_R_D0 size_t byteSize);
  109. size_t pOS_AvailMem(_R_D0 ULONG requirements);
  110. __ARID__ struct pOS_MemList *pOS_AllocEntry(_R_A0 struct pOS_MemPool*,_R_A1 struct pOS_MemList*);
  111. VOID  pOS_FreeEntry(_R_A0 struct pOS_MemPool*,_R_A1 __ARID__ struct pOS_MemList*);
  112. VOID  pOS_AddMemList(_R_D0 size_t,_R_D1 ULONG attr,_R_D2 SLONG pri,_R_A0 APTR adr,_R_A1 const CHAR* name);
  113. __ARID__ APTR pOS_AllocVec(_R_D0 size_t,_R_D1 ULONG attr);
  114. VOID  pOS_FreeVec(_R_A0 __ARID__ APTR);
  115. VOID  pOS_InitMemPool(_R_A0 struct pOS_MemPool*,_R_D0 size_t segmSize,_R_D1 ULONG semgMEMF);
  116. __ARID__ APTR pOS_AllocPoolMem(_R_A0 struct pOS_MemPool*,_R_D0 size_t size,_R_D1 ULONG memf);
  117. VOID  pOS_FreePoolMem(_R_A0 struct pOS_MemPool*,_R_A1 __ARID__ APTR,_R_D0 size_t size);
  118. VOID  pOS_FreePoolAll(_R_A0 struct pOS_MemPool*);
  119. __ARID__ APTR pOS_AllocPoolVec(_R_A0 struct pOS_MemPool*,_R_D0 size_t size,_R_D1 ULONG memf);
  120. VOID  pOS_FreePoolVec(_R_A0 struct pOS_MemPool*,_R_A1 __ARID__ APTR);
  121. VOID pOS_CopyMem(_R_A0 const VOID*,_R_A1 VOID*,_R_D0 size_t);
  122. VOID pOS_AddMemHandler(_R_A0 struct pOS_Callback*);
  123. VOID pOS_RemMemHandler(_R_A0 struct pOS_Callback*);
  124. size_t pOS_AvailPoolMem(_R_A0 const struct pOS_MemPool*,_R_D0 ULONG requirements);
  125. ULONG pOS_TypeOfMem(_R_A0 const VOID*,_R_D0 ULONG mode);
  126. BOOL pOS_IsPoolMem(_R_A0 const struct pOS_MemPool*,_R_A1 const VOID*);
  127. __ARID__ APTR pOS_AllocAlignment(_R_A0 struct pOS_MemPool*,_R_D0 size_t byteSize,
  128.                                  _R_D1 ULONG requirements,_R_D2 ULONG lg2);
  129.  
  130.  
  131.  
  132.  
  133. /*------ signal semaphores (note funny registers)----------------------*/
  134. VOID  pOS_InitSemaphore(_R_A0 struct pOS_Semaphore*);
  135. VOID  pOS_ObtainSemaphore(_R_A0 struct pOS_Semaphore*);
  136. VOID  pOS_ReleaseSemaphore(_R_A0 struct pOS_Semaphore*);
  137. BOOL  pOS_AttemptSemaphore(_R_A0 struct pOS_Semaphore*);
  138. VOID  pOS_ObtainSemaphoreList(_R_A0 struct pOS_ExList*);
  139. VOID  pOS_ReleaseSemaphoreList(_R_A0 struct pOS_ExList*);
  140. struct pOS_Semaphore *pOS_FindSemaphore(_R_A0 const CHAR*);
  141. VOID  pOS_AddSemaphore(_R_A0 struct pOS_Semaphore*);
  142. VOID  pOS_RemSemaphore(_R_A0 struct pOS_Semaphore*);
  143. VOID  pOS_ProcureSemaphore(_R_A0 struct pOS_Semaphore*,_R_A1 struct pOS_Message*);
  144. VOID  pOS_VacateSemaphore(_R_A0 struct pOS_Semaphore*,_R_A1 struct pOS_Message*);
  145. BOOL  pOS_AttemptProcureSemaphore(_R_A0 struct pOS_Semaphore*,_R_A1 struct pOS_Message*);
  146. VOID  pOS_ObtainSemaphoreShared(_R_A0 struct pOS_Semaphore*);
  147. BOOL  pOS_AttemptTimeSemaphore(_R_A0 struct pOS_Semaphore*,_R_D0 ULONG micros);
  148. VOID  pOS_AddSemaphoreQR(_R_A0 struct pOS_Semaphore*,_R_A1 struct pOS_Message*);
  149. VOID  pOS_RemSemaphoreQR(_R_A0 struct pOS_Semaphore*,_R_A1 struct pOS_Message*);
  150. BOOL  pOS_IsObtainSemaphore(_R_A0 struct pOS_Semaphore*);
  151.  
  152.  
  153.  
  154. /*------ diagnostics --------------------------------------------------*/
  155. VOID  pOS_DisplayAlert(_R_D0 ULONG alertNum);
  156. BOOL  pOS_ExecCheckA(_R_A0 const struct pOS_TagItem*);
  157. VOID pOS_KPutChar(_R_D0 ULONG ch);
  158. VOID pOS_VKPrintf(_R_A0 const CHAR* fmt,_R_A1 const ULONG* argv);
  159.  
  160.  
  161.  
  162. /*------ devices ------------------------------------------------------*/
  163. VOID  pOS_AddDevice(_R_A0 struct pOS_Device*);
  164. VOID  pOS_RemDevice(_R_A0 struct pOS_Device*);
  165. SBYTE pOS_OpenDevice(_R_A0 const CHAR*,_R_D0 ULONG unit,
  166.                      _R_A1 struct pOS_IORequest*,_R_D1 ULONG flags,_R_D2 ULONG version);
  167. VOID  pOS_CloseDevice(_R_A0 struct pOS_IORequest*);
  168. SBYTE pOS_DoIO(_R_A0 struct pOS_IORequest*);
  169. VOID  pOS_SendIO(_R_A0 __ARID__ struct pOS_IORequest*);
  170. struct pOS_IORequest *pOS_CheckIO(_R_A0 const struct pOS_IORequest*);
  171. SBYTE pOS_WaitIO(_R_A0 struct pOS_IORequest*);
  172. VOID  pOS_AbortIO(_R_A0 struct pOS_IORequest*);
  173. VOID  pOS_BeginIO(_R_A0 __ARID__ struct pOS_IORequest*);
  174. __ARID__ struct pOS_IORequest *pOS_CreateIORequest(_R_A0 struct pOS_MsgPort*,_R_D0 size_t);
  175. VOID  pOS_DeleteIORequest(_R_A0 __ARID__ struct pOS_IORequest*);
  176.  
  177.  
  178. /*------ resources ----------------------------------------------------*/
  179. VOID  pOS_AddResource(_R_A0 struct pOS_Resource*);
  180. VOID  pOS_RemResource(_R_A0 struct pOS_Resource*);
  181. __ARID__ struct pOS_Resource* pOS_OpenResource(_R_A0 const CHAR*);
  182. VOID  pOS_CloseResource(_R_A0 __ARID__ struct pOS_Resource*);
  183.  
  184.  
  185. /*------ resident ----------------------------------------------------*/
  186. struct pOS_Resident *pOS_FindResident(_R_A0 const CHAR*);
  187. APTR pOS_InitResident(_R_A0 const struct pOS_Resident*,_R_A1 struct pOS_SegmentLst*);
  188.  
  189.  
  190.  
  191. /*------ RawDoFmt ----------------------------------------------------*/
  192. VOID  pOS_RawDoFmt(_R_A0 struct pOS_RawDoFmtData*);
  193. const CHAR* pOS_ReadAsciiFmt(_R_A0 struct pOS_AsciiFmtData*,_R_A1 const CHAR*);
  194. CHAR* pOS_WriteAsciiFmt(_R_A0 const struct pOS_AsciiFmtData*,_R_A1 CHAR*,_R_D0 size_t);
  195.  
  196.  
  197. /*------ Class --------------------------------------------------------*/
  198. VOID  pOS_AddClass(_R_A0 struct pOS_NClass*);
  199. VOID  pOS_AddLinkClass(_R_A0 const struct pOS_NClass*,_R_A1 struct pOS_NClass*);
  200. VOID  pOS_SubClass(_R_A0 struct pOS_NClass*);
  201. APTR  pOS_CreateObject(_R_A0 struct pOS_NClass*,_R_A1 const CHAR*,
  202.                        _R_D0 ULONG,_R_A4 struct pOS_Method*);
  203. VOID  pOS_DeleteObject(_R_A0 APTR);
  204. ULONG pOS_DoIMethodA(_R_A0 APTR,_R_A4 struct pOS_Method*);
  205. ULONG pOS_DoMMethodA(_R_A0 const struct pOS_Class*,_R_D0 ULONG idx,
  206.                      _R_A1 APTR,_R_A4 struct pOS_Method*);
  207. ULONG pOS_DoVirMethodA(_R_A0 const struct pOS_Class*,_R_A1 APTR,_R_A4 struct pOS_Method*);
  208. ULONG pOS_DoAbsMethodA(_R_A0 const struct pOS_Class*,_R_A1 APTR,_R_A4 struct pOS_Method*);
  209. struct pOS_NClass* pOS_OpenClass(_R_A0 const CHAR*,_R_D0 ULONG ver);
  210. VOID  pOS_CloseClass(_R_A0 struct pOS_NClass*);
  211. APTR  pOS_GetMemberAdr(_R_A0 const struct pOS_Class*,
  212.                        _R_D0 ULONG idx,_R_A1 APTR);
  213. BOOL  pOS_MoveUpClassPtr(_R_A0 const struct pOS_Class*,_R_A1 APTR object,
  214.                          _R_A2 struct pOS_Class** newCl,_R_A3 APTR* newObject);
  215. BOOL  pOS_MoveDownClassPtr(_R_A0 const struct pOS_Class*,_R_A1 APTR object,
  216.                          _R_A2 struct pOS_Class** newCl,_R_A3 APTR* newObject);
  217. APTR pOS_GetUpObjectAdr(_R_A0 const struct pOS_Class*,_R_A1 APTR,
  218.                         _R_D0 ULONG num);
  219. struct pOS_NClass* pOS_GetNClass(_R_A0 const struct pOS_Class*);
  220. APTR pOS_GetIMemberAdr(_R_D0 ULONG memberIdx,_R_A0 APTR);
  221. APTR pOS_GetObjectRootAdr(_R_A0 const struct pOS_Class*,_R_A1 APTR object);
  222. __ARID__ struct pOS_NClass *pOS_CreateClass(_R_A0 const CHAR* className,
  223.                           _R_A1 const CHAR* supClName,_R_A2 const struct pOS_NClass* supCl,
  224.                           _R_A3 APTR dispFunc,_R_D0 size_t objSize,_R_D1 ULONG supClVer);
  225. VOID pOS_DeleteClass(__ARID__ _R_A0 struct pOS_NClass*);
  226. BOOL pOS_DebugClassI(_R_A0 const VOID* obj,
  227.                      _R_A1 const CHAR* clName,_R_A2 const struct pOS_NClass* cl,_R_D0 BOOL print);
  228. BOOL pOS_DebugClassAbs(_R_A0 const VOID* obj,
  229.                        _R_A1 const struct pOS_Class* mcl,_R_A2 const CHAR* clName,
  230.                        _R_A3 const struct pOS_NClass* cl,_R_D0 BOOL print);
  231.  
  232.  
  233.  
  234. ULONG pOS_DoIMethod(_R_A0 APTR,ULONG methode,...);
  235. ULONG pOS_DoVirMethod(_R_A0 const struct pOS_Class*,_R_A1 APTR,ULONG methode,...);
  236. ULONG pOS_DoAbsMethod(_R_A0 const struct pOS_Class*,_R_A1 APTR,ULONG methode,...);
  237. BOOL  pOS_ExecCheck(ULONG tag,...);
  238.  
  239.  
  240. #ifdef __cplusplus
  241. }
  242. #endif
  243.  
  244. #endif
  245.