home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / pOS_RKRM.lzx / pOS_RKRM / _Docs / pExec.doc < prev    next >
Encoding:
Text File  |  1997-03-18  |  103.6 KB  |  4,719 lines

  1. TABLE OF CONTENTS
  2.  
  3. pexec.library/ExecAllgemeines
  4. pexec.library/pOS_AbortIO
  5. pexec.library/pOS_AddClass
  6. pexec.library/pOS_AddDevice
  7. pexec.library/pOS_AddLibrary
  8. pexec.library/pOS_AddLinkClass
  9. pexec.library/pOS_AddMemHandler
  10. pexec.library/pOS_AddMemList
  11. pexec.library/pOS_AddPort
  12. pexec.library/pOS_AddResource
  13. pexec.library/pOS_AddSemaphore
  14. pexec.library/pOS_AddSemaphoreQR
  15. pexec.library/pOS_AddTask
  16. pexec.library/pOS_AllocAbs
  17. pexec.library/pOS_Allocate
  18. pexec.library/pOS_AllocEntry
  19. pexec.library/pOS_AllocMem
  20. pexec.library/pOS_AllocPoolMem
  21. pexec.library/pOS_AllocPoolVec
  22. pexec.library/pOS_AllocSignal
  23. pexec.library/pOS_AllocTrap
  24. pexec.library/pOS_AllocVec
  25. pexec.library/pOS_AttemptProcureSemaphore
  26. pexec.library/pOS_AttemptSemaphore
  27. pexec.library/pOS_AttemptSemaphoreShared
  28. pexec.library/pOS_AttemptTimeSemaphore
  29. pexec.library/pOS_AttemptTimeSemaphoreShared
  30. pexec.library/pOS_AvailMem
  31. pexec.library/pOS_BeginIO
  32. pexec.library/pOS_CacheClearE
  33. pexec.library/pOS_CacheClearU
  34. pexec.library/pOS_CacheControl
  35. pexec.library/pOS_CheckIO
  36. pexec.library/pOS_CloseClass
  37. pexec.library/pOS_CloseDevice
  38. pexec.library/pOS_CloseLibrary
  39. pexec.library/pOS_CloseResource
  40. pexec.library/pOS_ColdReboot
  41. pexec.library/pOS_ConstructMsgPort
  42. pexec.library/pOS_ConstructSigPort
  43. pexec.library/pOS_CopyMem
  44. pexec.library/pOS_CreateClass
  45. pexec.library/pOS_CreateClassGrp
  46. pexec.library/pOS_CreateIORequest
  47. pexec.library/pOS_CreateObject
  48. pexec.library/pOS_CreatePort
  49. pexec.library/pOS_CreateTask
  50. pexec.library/pOS_Deallocate
  51. pexec.library/pOS_DebugClassAbs
  52. pexec.library/pOS_DebugClassI
  53. pexec.library/pOS_DeleteClass
  54. pexec.library/pOS_DeleteClassGrp
  55. pexec.library/pOS_DeleteIORequest
  56. pexec.library/pOS_DeleteObject
  57. pexec.library/pOS_DeletePort
  58. pexec.library/pOS_DeleteTask
  59. pexec.library/pOS_DestructMsgPort
  60. pexec.library/pOS_DisplayAlert
  61. pexec.library/pOS_DoAbsMethodA
  62. pexec.library/pOS_DoIMethodA
  63. pexec.library/pOS_DoIO
  64. pexec.library/pOS_DoMMethodA
  65. pexec.library/pOS_DoVirMethodA
  66. pexec.library/pOS_ExecCheckA
  67. pexec.library/pOS_FindPort
  68. pexec.library/pOS_FindResident
  69. pexec.library/pOS_FindSemaphore
  70. pexec.library/pOS_FindTask
  71. pexec.library/pOS_ForbidIRQ
  72. pexec.library/pOS_ForbidSchedul
  73. pexec.library/pOS_FreeEntry
  74. pexec.library/pOS_FreeMem
  75. pexec.library/pOS_FreePoolAll
  76. pexec.library/pOS_FreePoolMem
  77. pexec.library/pOS_FreePoolVec
  78. pexec.library/pOS_FreeSignal
  79. pexec.library/pOS_FreeTrap
  80. pexec.library/pOS_FreeVec
  81. pexec.library/pOS_GetIMemberAdr
  82. pexec.library/pOS_GetMemberAdr
  83. pexec.library/pOS_GetMsg
  84. pexec.library/pOS_GetNClass
  85. pexec.library/pOS_GetObjectRootAdr
  86. pexec.library/pOS_GetUpObjectAdr
  87. pexec.library/pOS_InitMemPool
  88. pexec.library/pOS_InitResident
  89. pexec.library/pOS_InitSemaphore
  90. pexec.library/pOS_IsObtainSemaphore
  91. pexec.library/pOS_MakeFunctions
  92. pexec.library/pOS_MakeLibrary
  93. pexec.library/pOS_MoveDownClassPtr
  94. pexec.library/pOS_MoveUpClassPtr
  95. pexec.library/pOS_ObtainSemaphore
  96. pexec.library/pOS_ObtainSemaphoreList
  97. pexec.library/pOS_ObtainSemaphoreShared
  98. pexec.library/pOS_OpenClass
  99. pexec.library/pOS_OpenDevice
  100. pexec.library/pOS_OpenLibrary
  101. pexec.library/pOS_OpenResource
  102. pexec.library/pOS_PermitIRQ
  103. pexec.library/pOS_PermitSchedul
  104. pexec.library/pOS_ProcureSemaphore
  105. pexec.library/pOS_ProcureSemaphoreShared
  106. pexec.library/pOS_PutMsg
  107. pexec.library/pOS_RawDoFmt
  108. pexec.library/pOS_ReadAsciiFmt
  109. pexec.library/pOS_ReleaseSemaphore
  110. pexec.library/pOS_ReleaseSemaphoreList
  111. pexec.library/pOS_RemDevice
  112. pexec.library/pOS_RemLibrary
  113. pexec.library/pOS_RemMemHandler
  114. pexec.library/pOS_RemPort
  115. pexec.library/pOS_RemResource
  116. pexec.library/pOS_RemSemaphore
  117. pexec.library/pOS_RemSemaphoreQR
  118. pexec.library/pOS_RemTask
  119. pexec.library/pOS_ReplyMsg
  120. pexec.library/pOS_SendIO
  121. pexec.library/pOS_SendSignal
  122. pexec.library/pOS_SetExcept
  123. pexec.library/pOS_SetLibFunction
  124. pexec.library/pOS_SetSignal
  125. pexec.library/pOS_SetTaskPriority
  126. pexec.library/pOS_SetTaskXPri
  127. pexec.library/pOS_StackSwap
  128. pexec.library/pOS_SubClass
  129. pexec.library/pOS_SumLibrary
  130. pexec.library/pOS_VacateSemaphore
  131. pexec.library/pOS_WaitIO
  132. pexec.library/pOS_WaitPort
  133. pexec.library/pOS_WaitSignal
  134. pexec.library/pOS_WaitTimeSignal
  135. pexec.library/pOS_WriteAsciiFmt
  136. pexec.library/pOS_WriteDebug
  137.  
  138. pexec.library/ExecAllgemeines
  139.  
  140.  STRUCTURS
  141.  
  142.  struct pOS_AsciiFmtData
  143.  struct pOS_Callback
  144.  struct pOS_Class
  145.  struct pOS_ClassGrp
  146.  struct pOS_Device
  147.  struct pOS_ExecBase
  148.  struct pOS_ExList
  149.  struct pOS_ExNode
  150.  struct pOS_Interrupt
  151.  struct pOS_IORequest
  152.  struct pOS_IOStdReq
  153.  struct pOS_LibDescribe
  154.  struct pOS_Library
  155.  struct pOS_LibraryFunction
  156.  struct pOS_List
  157.  struct pOS_Member
  158.  struct pOS_MemChunk
  159.  struct pOS_MemEntry
  160.  struct pOS_MemHeader
  161.  struct pOS_MemList
  162.  struct pOS_MemPool
  163.  struct pOS_Message
  164.  struct pOS_Method
  165.  struct pOS_MsgPort
  166.  struct pOS_NClass
  167.  struct pOS_Node
  168.  struct pOS_Object
  169.  struct pOS_RamLibMessage
  170.  struct pOS_RawDoFmtData
  171.  struct pOS_Resident
  172.  struct pOS_ResidentLibInit
  173.  struct pOS_Resource
  174.  struct pOS_SemaphoreRequest
  175.  struct pOS_Semaphore
  176.  struct pOS_StackSwapData
  177.  struct pOS_StdDeviceFunction
  178.  struct pOS_StdLibraryFunction
  179.  struct pOS_TagItem;
  180.  struct pOS_Task
  181.  struct pOS_Unit
  182.  
  183.  ENUMS
  184.  
  185.  enum pOS_Alerts
  186.  enum pOS_ExNodeType
  187.  enum pOS_IOReqCommands
  188.  enum pOS_IOReqErrors
  189.  enum pOS_IOReqFlags
  190.  enum pOS_LibraryFlags
  191.  enum pOS_LibraryFuncID
  192.  enum pOS_MemoryFlag
  193.  enum pOS_MsgPortFlag
  194.  enum pOS_RamLibMessageCom
  195.  enum pOS_RawDoFmtFlags
  196.  enum pOS_ResidentFlags
  197.  enum pOS_SemaphoreFlags
  198.  enum pOS_TaskSignal
  199.  enum pOS_TaskStates
  200.  enum pOS_UnitFlags
  201.  
  202.  DEFINES
  203.  
  204.  RTC_MATCHWORD
  205.  pOS_CLASSERR
  206.  
  207.  INCLUDES
  208.  
  209.  pExec/CallBack.h
  210.  pExec/Class.h
  211.  pExec/Device.h
  212.  pExec/Diagnos.h
  213.  pExec/ExecBase.h
  214.  pExec/Interupt.h
  215.  pExec/Library.h
  216.  pExec/List.cpp
  217.  pExec/List.h
  218.  pExec/Macros.h
  219.  pExec/Memory.h
  220.  pExec/MsgPort.h
  221.  pExec/Node.h
  222.  pExec/RamLib.h
  223.  pExec/RawDoFmt.h
  224.  pExec/Resident.h
  225.  pExec/Resource.h
  226.  pExec/Sema.h
  227.  pExec/Task.h
  228.  pExec/Types.h
  229.  proto/pExec.h
  230.  
  231.  
  232.  
  233. pexec.library/pOS_ColdReboot
  234.  
  235.   SYNOPSIS
  236.     VOID pOS_ColdReboot
  237.       (
  238.         pOS_ExecBase *execbase
  239.       );
  240.  
  241.   FUNCTION
  242.     Ausführen eines Kaltstarts (Rechnerneustart)
  243.  
  244.   INPUT
  245.     execbase (_R_LB)
  246.       Zeiger auf pExec-Library
  247.  
  248.   AMIGA FUNCTION
  249.     VOID ColdReboot(VOID);
  250.  
  251.  
  252. pexec.library/pOS_WriteDebug
  253.  
  254. ### wird noch erweitert ###
  255.  
  256.   SYNOPSIS
  257.     VOID pOS_WriteDebug
  258.       (
  259.         pOS_ExecBase *execbase,
  260.         const VOID *data,
  261.         size_t size,
  262.         ULONG type
  263.       );
  264.  
  265.   FUNCTION
  266.     Ausgeben von Debug-Informationen
  267.  
  268.   INPUT
  269.     execbase (_R_LB)
  270.       Zeiger auf pExec-Library
  271.     data (_R_A0)
  272.     size (_R_D0)
  273.     type (_R_D1)
  274.  
  275.   AMIGA FUNCTION
  276.     VOID kprintf(const char *,...);
  277.  
  278.  
  279. pexec.library/pOS_AddTask
  280.  
  281.   SYNOPSIS
  282.     APTR res = pOS_AddTask
  283.       (
  284.         pOS_ExecBase *execbase,
  285.         pOS_Task *task,
  286.         APTR initialpc,
  287.         APTR finalpc
  288.       );
  289.  
  290.   FUNCTION
  291.     Hinzufügen eines Tasks in die Systemliste.
  292.  
  293.   INPUT
  294.     execbase (_R_LB)
  295.       Zeiger auf pExec-Library
  296.     task (_R_A0)
  297.       Zeiger auf die installierte Task-Struktur. Die nicht
  298.       vorbelegten Felder müssen auf 0 gesetzt werden.
  299.     initialpc (_R_A1)
  300.       Zeiger auf die Startadresse des Tasks
  301.     finalpc (_R_A2)
  302.       Zeiger auf die Rücksprungadresse des Tasks oder NULL
  303.  
  304.   RESULT
  305.     res (_R_D0)
  306.       Übergebene Adresse der Task-Struktur,
  307.       oder NULL im Fehlerfall.
  308.  
  309.   NOTE
  310.     Mittels pOS_CreateTask() kann normalerweise auf diese low-level
  311.     Funktion verzichtet werden.
  312.  
  313.     Nach dem hinzufügen des Tasks wird ein Scheduling ausgelöst.
  314.     Der Task mit der höchsten Priorität läuft danach. Je nach
  315.     Priorität kann das der eigene oder ein anderer Task sein!
  316.  
  317.     Da es im Task-Umfeld keine Process-Struktur gibt, sind auch
  318.     die meisten pDos-Funktionen nicht benutzbar.
  319.     Es funktioniert pOS_CreateProc() und CreateProcessA() zum Erzeugen
  320.     des Processes, sowie die Funktionen für ReadArgs.
  321.     Der erzeugte Process bietet nur eine minimale Dos-Umgebung.
  322.     CurrentDir zeigt auf SYS:, In/Out/Error-Kanäle zeigen auf NIL:
  323.  
  324.   SEE ALSO
  325.     pOS_RemTask(), pOS_FindTask(), pOS_CreateTask()
  326.  
  327.   AMIGA FUNCTION
  328.     struct Task *AddTask(struct Task *task, APTR initialpc, APTR finalpc);
  329.  
  330.  
  331. pexec.library/pOS_RemTask
  332.  
  333.   SYNOPSIS
  334.     VOID pOS_RemTask
  335.       (
  336.         pOS_ExecBase *execbase,
  337.         pOS_Task *task
  338.       );
  339.  
  340.   FUNCTION
  341.     Entfernen eines Tasks aus der Systemliste und freigeben
  342.     der vom System angelegten Resourcen
  343.  
  344.   INPUT
  345.     execbase (_R_LB)
  346.       Zeiger auf pExec-Library
  347.     task (_R_A0)
  348.       Zeiger auf den zu entfernenden Task,
  349.       NULL wenn der eigene Task ausgehängt werden soll
  350.  
  351.   NOTE
  352.     Das Entfernen von fremden Task ist nicht ungefährlich,
  353.     deshalb sollte sich jeder Task selber mittels pOS_RemTask(NULL)
  354.     entfernen.
  355.     Zum Entfernen von fremden Task sollte die Funktion pOS_DeleteTask()
  356.     verwendet werden.
  357.     Nach dieser Funktion läuft höchstens noch die finalpc-Routine
  358.     (wenn bei pOS_AddTask() angegeben).
  359.  
  360.   SEE ALSO
  361.     pOS_AddTask(), pOS_FindTask(), pOS_DeleteTask()
  362.  
  363.   AMIGA FUNCTION
  364.     VOID RemTask(struct Task *task);
  365.  
  366.  
  367. pexec.library/pOS_FindTask
  368.  
  369.   SYNOPSIS
  370.     pOS_Task *res = pOS_FindTask
  371.       (
  372.         pOS_ExecBase *execbase,
  373.         const CHAR *name
  374.       );
  375.  
  376.   FUNCTION
  377.     Suchen eines Tasks über seinen Namen. Dabei wird zwischen
  378.     Groß- und Kleinschreibung unterschieden.
  379.  
  380.   INPUT
  381.     execbase (_R_LB)
  382.       Zeiger auf pExec-Library
  383.     name (_R_A0)
  384.       Name des zu suchenden Tasks
  385.       oder NULL für den eigenen Task
  386.  
  387.   RESULT
  388.     res (_R_D0)
  389.       Zeiger auf den gefunden Task,
  390.       oder NULL wenn kein entsprechender Task gefunden wurde
  391.  
  392.   SEE ALSO
  393.     pOS_AddTask(), pOS_RemTask(), pOS_CreateTask()
  394.  
  395.   AMIGA FUNCTION
  396.     struct Task *FindTask(STRPTR name);
  397.  
  398.  
  399. pexec.library/pOS_SetTaskPriority
  400.  
  401.   SYNOPSIS
  402.     SBYTE res = pOS_SetTaskPriority
  403.       (
  404.         pOS_ExecBase *execbase,
  405.         pOS_Task *task,
  406.         SLONG priority
  407.       );
  408.  
  409.   FUNCTION
  410.     Setzen der Priorität eines Tasks
  411.  
  412.   INPUT
  413.     execbase (_R_LB)
  414.       Zeiger auf pExec-Library
  415.     task (_R_A0)
  416.       Adresse des Tasks, dessen Priorität geändert werden soll
  417.     priority (_R_D0)
  418.       neue Priorität im Bereich von -128 (niedrigste Priorität)
  419.       bis +127 (höchste Priorität)
  420.  
  421.   RESULT
  422.     res (_R_D0)
  423.       bisheriger Prioritätswert
  424.  
  425.   SEE ALSO
  426.     pOS_FindTask()
  427.  
  428.   AMIGA FUNCTION
  429.     LONG SetTaskPri(struct Task *task, LONG priority);
  430.  
  431.  
  432. pexec.library/pOS_SetSignal
  433.  
  434.   SYNOPSIS
  435.     ULONG res = pOS_SetSignal
  436.       (
  437.         pOS_ExecBase *execbase,
  438.         ULONG newsignals,
  439.         ULONG signalmask
  440.       );
  441.  
  442.   FUNCTION
  443.     Auslesen und Verändern der Signal-Bits des aktuellen Tasks.
  444.  
  445.   INPUT
  446.     execbase (_R_LB)
  447.       Zeiger auf pExec-Library
  448.     newsignals (_R_D0)
  449.       Bitmaske mit den neuen Signalwerten; vordefiniert sind
  450.         DOSSIGF_CTRL_C : normalerweise Befehl abbrechen
  451.         DOSSIGF_CTRL_D : normalerweise Script abbrechen
  452.         DOSSIGF_CTRL_E : Programmspezifisch
  453.         DOSSIGF_CTRL_F : Programmspezifisch
  454.     signalmask (_R_D1)
  455.       Bitmaske die definiert, welche Bits von der Operaton betroffen
  456.       sein sollen; vordefiniert sind
  457.         DOSSIGF_CTRL_C : normalerweise Befehl abbrechen
  458.         DOSSIGF_CTRL_D : normalerweise Script abbrechen
  459.         DOSSIGF_CTRL_E : Programmspezifisch
  460.         DOSSIGF_CTRL_F : Programmspezifisch
  461.  
  462.   RESULT
  463.     res (_R_D0)
  464.       Bitmaske mit den bisherigen Signalwerten
  465.  
  466.   EXAMPLE
  467.     Ermitteln der aktuellen Task-Signale:
  468.       pOS_SetSignal(0,0);
  469.     Löschen des CTRL-C-Signals:
  470.       pOS_SetSignal(0,DOSSIGF_CTRL_C);
  471.     Feststellen, ob CTRL-C gedrückt (empfangen) wurde
  472.     danach wird das Signal automatisch gelöscht
  473.       if(pOS_SetSignal(0,DOSSIGF_CTRL_C) & DOSSIGF_CTRL_C)
  474.         printf("CTRL-C gedrückt!\n");
  475.  
  476.   SEE ALSO
  477.     pOS_WaitSignal()
  478.  
  479.   AMIGA FUNCTION
  480.     ULONG SetSignal(ULONG newsignals, ULONG signalmask);
  481.  
  482.  
  483. pexec.library/pOS_SetExcept
  484.  
  485. ### wird noch erweitert ###
  486.  
  487.   SYNOPSIS
  488.     ULONG res = pOS_SetExcept
  489.       (
  490.         pOS_ExecBase *execbase,
  491.         ULONG newsignals,
  492.         ULONG signalmask
  493.       );
  494.  
  495.   FUNCTION
  496.     Signalwerte für das Auslösen einer Exception definieren
  497.  
  498.   INPUT
  499.     execbase (_R_LB)
  500.       Zeiger auf pExec-Library
  501.     newsignals (_R_D0)
  502.       Bitmaske mit den neuen Signalen
  503.     signalmask (_R_D1)
  504.       Bitmaske für die Definition der betroffenen Signale
  505.  
  506.   RESULT
  507.     res (_R_D0)
  508.       Bitmaske der bisherigen Signale
  509.  
  510.   SEE ALSO
  511.     pOS_SendSignal(), pOS_SetSignal()
  512.  
  513.   AMIGA FUNCTION
  514.     ULONG SetExcept(ULONG newsignals, ULONG signalmask);
  515.  
  516.  
  517. pexec.library/pOS_WaitSignal
  518.  
  519.   SYNOPSIS
  520.     ULONG res = pOS_WaitSignal
  521.       (
  522.         pOS_ExecBase *execbase,
  523.         ULONG signalmask
  524.       );
  525.  
  526.   FUNCTION
  527.     Warten auf Signale
  528.  
  529.   INPUT
  530.     execbase (_R_LB)
  531.       Zeiger auf pExec-Library
  532.     signalmask (_R_D0)
  533.       Maske der Signale, auf die gewartet werden soll oder 0
  534.       Trifft keines dieser Signale ein, so wartet die Funktion
  535.       endlos! Vordefiniert sind
  536.         DOSSIGF_CTRL_C : normalerweise Befehl abbrechen
  537.         DOSSIGF_CTRL_D : normalerweise Script abbrechen
  538.         DOSSIGF_CTRL_E : Programmspezifisch
  539.         DOSSIGF_CTRL_F : Programmspezifisch
  540.       TIP: Verwechseln Sie keine Signalsbits (z.B. DOSSIGB_CTRL_C = 0xC)
  541.            mit der Signalmaske (z.B. DOSSIGF_CTRL_C = 0x1000)
  542.  
  543.   RESULT
  544.     res (_R_D0)
  545.       Aufgetretene Signale. Es können mehrere der in signalmask
  546.       gesetzten Signale eingetroffen sein!
  547.  
  548.   NOTE
  549.     Geben Sie bei der signalmask 0 an, wartet der Task ewig.
  550.     Damit ist aber ein definierter Stand geschaffen, damit der
  551.     Task mit pOS_RemTask() gelöscht werden kann.
  552.  
  553.   EXAMPLE
  554.     Warten bis CTRL-C oder CTRL-D gedrückt wird
  555.       ULONG sigs=pOS_WaitSignal(DOSSIGF_CTRL_C | DOSSIGF_CTRL_D)
  556.       if(sigs & DOSSIGF_CTRL_C)
  557.         printf("CTRL-C gedrückt!\n");
  558.       if(sigs & DOSSIGF_CTRL_D)
  559.         printf("CTRL-D gedrückt!\n");
  560.  
  561.   SEE ALSO
  562.     pOS_AllocSignal(), pOS_SendSignal(), pOS_WaitPort()
  563.  
  564.   AMIGA FUNCTION
  565.     ULONG Wait(ULONG signalmask);
  566.  
  567.  
  568. pexec.library/pOS_SendSignal
  569.  
  570.   SYNOPSIS
  571.     VOID pOS_SendSignal
  572.       (
  573.         pOS_ExecBase *execbase,
  574.         pOS_Task *task,
  575.         ULONG signalmask
  576.       );
  577.  
  578.   FUNCTION
  579.     Senden von Signalen an einen Task
  580.  
  581.   INPUT
  582.     execbase (_R_LB)
  583.       Zeiger auf pExec-Library
  584.     task (_R_A0)
  585.       Task an den die Signale geschickt werden sollen
  586.     signalmask (_R_D0)
  587.       Bitmaske mit den Signalen; vordefiniert sind
  588.         DOSSIGF_CTRL_C : normalerweise Befehl abbrechen
  589.         DOSSIGF_CTRL_D : normalerweise Script abbrechen
  590.         DOSSIGF_CTRL_E : Programmspezifisch
  591.         DOSSIGF_CTRL_F : Programmspezifisch
  592.  
  593.   SEE ALSO
  594.     pOS_AllocSignal(), pOS_PutMsg()
  595.  
  596.   AMIGA FUNCTION
  597.     VOID Signal(struct Task *task, ULONG signalmask);
  598.  
  599.  
  600. pexec.library/pOS_AllocSignal
  601.  
  602.   SYNOPSIS
  603.     __ARID__ ULONG res = pOS_AllocSignal
  604.       (
  605.         pOS_ExecBase *execbase,
  606.         ULONG signalnummer
  607.       );
  608.  
  609.   FUNCTION
  610.     Reservieren eines Signalbits
  611.  
  612.   INPUT
  613.     execbase (_R_LB)
  614.       Zeiger auf pExec-Library
  615.     signalnummer (_R_D0)
  616.       gewünschte Signalnummer im Bereich von 0 bis 31
  617.       oder SIGB_AllocAny für das nächste freie Signal-Bit
  618.       (vom Betriebsystem werden z.Z. die Bits 4, 8, 12, 13,
  619.        14, 15 benutzt und können daher nicht reserviert werden)
  620.  
  621.   RESULT
  622.     res (_R_D0)
  623.       reserviertes Signal-Bit, das mittels pOS_FreeSignal()
  624.       wieder freigegeben werden muß,
  625.       oder SIGB_NoSignal wenn kein Signal mehr frei ist
  626.  
  627.   SEE ALSO
  628.     pOS_FreeSignal(), pOS_WaitSignal()
  629.  
  630.   AMIGA FUNCTION
  631.     ULONG AllocSignal(ULONG signalnummer);
  632.  
  633.  
  634. pexec.library/pOS_FreeSignal
  635.  
  636.   SYNOPSIS
  637.     VOID pOS_FreeSignal
  638.       (
  639.         pOS_ExecBase *execbase,
  640.         __ARID__ ULONG signalnummer
  641.       );
  642.  
  643.   FUNCTION
  644.     Freigeben eines Signal-Bits
  645.  
  646.   INPUT
  647.     execbase (_R_LB)
  648.       Zeiger auf pExec-Library
  649.     signalnummer (_R_D0)
  650.       Nummer des freizugebenden Signal-Bits, das mittels
  651.       pOS_AllocSignal() reserviert wurde
  652.       ACHTUNG: Nach der Funktion darf das Signal-Bit nicht
  653.                mehr verwendet werden!
  654.  
  655.   SEE ALSO
  656.     pOS_AllocSignal()
  657.  
  658.   AMIGA FUNCTION
  659.     VOID FreeSignal(ULONG signalnummer);
  660.  
  661.  
  662. pexec.library/pOS_AllocTrap
  663.  
  664.   SYNOPSIS
  665.     __ARID__ ULONG res = pOS_AllocTrap
  666.       (
  667.         pOS_ExecBase *execbase,
  668.         ULONG trapnummer
  669.       );
  670.  
  671.   FUNCTION
  672.     Reservieren eines Prozessor-Trap-Vektors
  673.  
  674.   INPUT
  675.     execbase (_R_LB)
  676.       Zeiger auf pExec-Library
  677.     trapnummer (_R_D0)
  678.       Nummer des gewünschten Traps im Bereich von 0 bis 15
  679. >>>      TRAPB_AllocAny für die nächste freie Trap-Nummer
  680.  
  681.   RESULT
  682.     res (_R_D0)
  683.       Nummer des tatsächlich reservierten Trap-Vektors.
  684.       Dieser muß mittels pOS_FreeTrap() wieder freigegeben werden.
  685. >>>      TRAPB_NoTrap falls kein Trap mehr zur Verfügung steht.
  686.  
  687.   SEE ALSO
  688.     pOS_FreeTrap()
  689.  
  690.   AMIGA FUNCTION
  691.     LONG AllocTrap(LONG trapnummer);
  692.  
  693.  
  694. pexec.library/pOS_FreeTrap
  695.  
  696.   SYNOPSIS
  697.     VOID pOS_FreeTrap
  698.       (
  699.         pOS_ExecBase *execbase,
  700.         __ARID__ ULONG trapnummer
  701.       );
  702.  
  703.   FUNCTION
  704.     Freigeben eines Prozessor-Trap-Vektors
  705.  
  706.   INPUT
  707.     execbase (_R_LB)
  708.       Zeiger auf pExec-Library
  709.     trapnummer (_R_D0)
  710.       Nummer des Traps, der freigegeben werden soll und mittels
  711.       pOS_AllocTrap() reserviert wurde.
  712.       ACHTUNG: Nach der Funktion darf die Trap-Nummer nicht
  713.                mehr benutzt werden.
  714.  
  715.   SEE ALSO
  716.     pOS_AllocTrap()
  717.  
  718.   AMIGA FUNCTION
  719.     VOID FreeTrap(LONG trapnummer);
  720.  
  721.  
  722. pexec.library/pOS_ForbidSchedul
  723.  
  724.   SYNOPSIS
  725.     VOID pOS_ForbidSchedul
  726.       (
  727.         pOS_ExecBase *execbase
  728.       );
  729.  
  730.   FUNCTION
  731.     Unterbinden des Task-Switchings
  732.  
  733.   INPUT
  734.     execbase (_R_LB)
  735.       Zeiger auf pExec-Library
  736.  
  737.   NOTE
  738.     Diese Funktion sollte nur verwendet werden, wenn es unumgänglich
  739.     ist (z.B. auslesen von globalen Systemlisten). Die Sperrung muß
  740.     mittels pOS_PermitSchedul() aufgehoben werden.
  741.     Interrupt müssen, bei Bedarf, mittels pOS_ForbidIRQ() unterbunden
  742.     werden.
  743.  
  744.   SEE ALSO
  745.     pOS_PermitSchedul(), pOS_ForbidIRQ()
  746.  
  747.   AMIGA FUNCTION
  748.     VOID Forbid();
  749.  
  750.  
  751. pexec.library/pOS_PermitSchedul
  752.  
  753.   SYNOPSIS
  754.     VOID pOS_PermitSchedul
  755.       (
  756.         pOS_ExecBase *execbase
  757.       );
  758.  
  759.   FUNCTION
  760.     Erlauben des Task-Switchings, das mittels pOS_ForbidSchedul()
  761.     gesperrt wurde.
  762.  
  763.   INPUT
  764.     execbase (_R_LB)
  765.       Zeiger auf pExec-Library
  766.  
  767.   SEE ALSO
  768.     pOS_ForbidSchedul(), pOS_PermitIRQ()
  769.  
  770.   AMIGA FUNCTION
  771.     VOID Permit();
  772.  
  773.  
  774. pexec.library/pOS_CreateTask
  775.  
  776.   SYNOPSIS
  777.     pOS_Task *res = pOS_CreateTask
  778.       (
  779.         pOS_ExecBase *execbase,
  780.         const CHAR *name,
  781.         SLONG priority,
  782.         APTR startfunc,
  783.         size_t stacksize,
  784.         size_t tasksize,
  785.         ULONG userdata0,
  786.         pOS_TaskControl *taskcontrol
  787.       );
  788.  
  789.   FUNCTION
  790.     Erzeugen eines neuen Tasks
  791.  
  792.   INPUT
  793.     execbase (_R_LB)
  794.       Zeiger auf pExec-Library
  795.     name (_R_A0)
  796.       Name des neuen Tasks; wird in task->tc_Node.ln_Name eingetragen
  797.     priority (_R_D0)
  798.       Priorität des neuen Tasks im Bereich von -128 bis +127;
  799.       wird in task->tc_Node.ln_Pri eingetragen
  800.     startfunc (_R_A1)
  801.       Adresse der Startfunktion des neuen Tasks die angesprungen
  802.       wird, sobald der neue Task (prioritätsmäßig) das erste mal läuft
  803.     stacksize (_R_D1)
  804.       Größe des Stackspeichers in Byte für den neuen Task
  805.     tasksize (_R_D2)
  806.       Größe der Task-Struktur, gewöhnlich sizeof(pOS_Task),
  807.       kann jedoch durch eine größere Angabe um private Elemente
  808.       erweitert werden
  809.     unserdata0 (_R_D3)
  810.       Beliebiger Beutzerwert, der in der Task-Struktur unter
  811.       task->tc_UserData[0] abgelegt wird
  812.     taskcontrol (_R_A2)
  813.       Zeiger auf einen Task-Control-Block oder NULL (default)
  814.  
  815.   RESULT
  816.     res (_R_D0)
  817.       Übergebene Adresse der Task-Struktur,
  818.       oder NULL im Fehlerfall.
  819.  
  820.   NOTE
  821.     Es gelten die selben Hinweise wie bei pOS_AddTask()
  822.  
  823.   SEE ALSO
  824.     pOS_AddTask(), pOS_RemTask(), pOS_FindTask()
  825.  
  826.   AMIGA FUNCTION
  827.     struct Task *CreateTask(STRPTR name, LONG priority, APTR startfunc, ULONG stacksize);
  828.  
  829.  
  830. pexec.library/pOS_CacheClearE
  831.  
  832.   SYNOPSIS
  833.     VOID pOS_CacheClearE
  834.       (
  835.         pOS_ExecBase *execbase,
  836.         APTR adress,
  837.         size_t size,
  838.         ULONG flags
  839.       );
  840.  
  841.   FUNCTION
  842.     Löschen des Cache-Speichers des Prozessors.
  843.  
  844.   INPUT
  845.     execbase (_R_LB)
  846.       Zeiger auf pExec-Library
  847.     adress (_R_A0)
  848.       Startadresse des Speichers
  849.     size (_R_D0)
  850.       Größe des zu löschenden Speicherbereichs
  851.       ~0 für den gesamten Cache
  852.     flags (_R_D1)
  853.       ???: Befehlscache löschen
  854.       ???: Datencache löschen
  855.  
  856.   NOTE
  857.     Diese Funktion muß benutzt werden, wenn im Speicher eine
  858.     Änderung ohne Prozessorbeteiligung stattgefunden hat
  859.     (z.B. DMA-Controller). Dabei kann der Speicherbereich
  860.     eingegrenzt werden.
  861.  
  862.   SEE ALSO
  863.     pOS_CacheControl(), pOS_CacheClearU()
  864.  
  865.   AMIGA FUNCTION
  866.     VOID CacheClearE(APTR adress, ULONG size, ULONG flags);
  867.  
  868.  
  869. pexec.library/pOS_CacheClearU
  870.  
  871.   SYNOPSIS
  872.     VOID pOS_CacheClearU
  873.       (
  874.         pOS_ExecBase *execbase
  875.       );
  876.  
  877.   FUNCTION
  878.     Löschen des gesamten Cache-Speichers des Prozessors.
  879.  
  880.   INPUT
  881.     execbase (_R_LB)
  882.       Zeiger auf pExec-Library
  883.  
  884.   SEE ALSO
  885.     pOS_CacheControl(), pOS_CacheClearE()
  886.  
  887.   AMIGA FUNCTION
  888.     VOID CacheClearU()
  889.  
  890.  
  891. pexec.library/pOS_CacheControl
  892.  
  893.   SYNOPSIS
  894.     ULONG res = pOS_CacheControl
  895.       (
  896.         pOS_ExecBase *execbase,
  897.         ULONG newbits,
  898.         ULONG bitmask
  899.       );
  900.  
  901.   FUNCTION
  902.     Kontrollieren des Cache-Speichers des Prozessors.
  903.  
  904.   INPUT
  905.     execbase (_R_LB)
  906.       Zeiger auf pExec-Library
  907.     newbits (_R_D0)
  908.       Neue Werte der Cache-Bits; definiert sind
  909.     bitmask (_R_D1)
  910.       Bitmaske, die definiert, welche Cache-Bits von der Operation
  911.       betroffen sein sollen; definiert sind
  912.  
  913.   RESULT
  914.     res (_R_D0)
  915.       Bisheriger Wert der Cache-Bits.
  916.  
  917.   SEE ALSO
  918.     pOS_CacheClearE(), pOS_CacheClearU()
  919.  
  920.   AMIGA FUNCTION
  921.     ULONG CacheControl(ULONG newbits, ULONG bitmask);
  922.  
  923.  
  924. pexec.library/pOS_StackSwap
  925.  
  926.   SYNOPSIS
  927.     VOID pOS_StackSwap
  928.       (
  929.         pOS_ExecBase *execbase,
  930.         pOS_StackSwapData *stackswapdata
  931.       );
  932.  
  933.   FUNCTION
  934.     Setzen eines neuen Stacks für den aufrufenden Task
  935.  
  936.   INPUT
  937.     execbase (_R_LB)
  938.       Zeiger auf pExec-Library
  939.     stackswapdata (_R_A0)
  940.       Adresse und Größe des neuen Stacks
  941.  
  942.   NOTE
  943.     Nach der Funktion steht in stackswapdata die alten Stackwerte.
  944.     Durch einen erneuten Aufruf von pOS_StackSwap() kann somit
  945.     wieder der Orginalzustand hergestellt werden.
  946.  
  947.   AMIGA FUNCTION
  948.     StackSwap(struct StackSwapData *stackswapdata);
  949.  
  950.  
  951. pexec.library/pOS_ForbidIRQ
  952.  
  953.   SYNOPSIS
  954.     VOID pOS_ForbidIRQ
  955.       (
  956.         pOS_ExecBase *execbase
  957.       );
  958.  
  959.   FUNCTION
  960.     Unterbinden von Interrupts.
  961.  
  962.   INPUT
  963.     execbase (_R_LB)
  964.       Zeiger auf pExec-Library
  965.  
  966.   NOTE
  967.     Diese Funktion sollte nur verwendet werden, wenn das Unterbinden
  968.     von Interrupts unumgänglich ist. Die Sperrung muß mittels
  969.     pOS_ForbidIRQ() aufgehoben werden.
  970.     Durch die Interrupt-Sperrung findet auch kein Task-Switching stand.
  971.     Dadurch ist ein Aufruf von pOS_ForbidSchedule() nicht notwendig.
  972.  
  973.   SEE ALSO
  974.     pOS_PermitIRQ(), pOS_ForbidSchedul()
  975.  
  976.   AMIGA FUNCTION
  977.     VOID Disable();
  978.  
  979.  
  980. pexec.library/pOS_PermitIRQ
  981.  
  982.   SYNOPSIS
  983.     VOID pOS_PermitIRQ
  984.       (
  985.         pOS_ExecBase *execbase
  986.       );
  987.  
  988.   FUNCTION
  989.     Erlauben von Interrupts, die mittels pOS_ForbidIRQ()
  990.     gesperrt wurden.
  991.  
  992.   INPUT
  993.     execbase (_R_LB)
  994.       Zeiger auf pExec-Library
  995.  
  996.   SEE ALSO
  997.     pOS_ForbidIRQ(), pOS_PermitSchedul()
  998.  
  999.   AMIGA FUNCTION
  1000.     VOID Enable();
  1001.  
  1002.  
  1003. pUtility.library/pOS_WaitTimeSignal
  1004.  
  1005.   SYNOPSIS
  1006.     ULONG res = pOS_WaitTimeSignal
  1007.       (
  1008.         pOS_ExecBase *execbase,
  1009.         ULONG signalmask,
  1010.         ULONG micros
  1011.       );
  1012.  
  1013.   FUNCTION
  1014.     Warten auf das Eintreffen von Signalen oder das Ablaufen des
  1015.     Timers.
  1016.  
  1017.   INPUT
  1018.     execbase (_R_LB)
  1019.       Zeiger auf pExec-Library
  1020.     signalmask (_R_D0)
  1021.       Maske der Signale, auf die gewartet werden soll oder 0
  1022.     micros (_R_D1)
  1023.       Maximale Wartezeit in Micro-Sekunden (1000000 Mikros = 1 Sekunde).
  1024.       Trift während dieser Zeit kein definiertes Signal ein,
  1025.       wird die Funktion abgebrochen.
  1026.  
  1027.   RESULT
  1028.     res (_R_D0)
  1029.       Aufgetretene Signale oder 0, wenn die Zeit abgelaufen ist.
  1030.       Es können mehrere der in signalmask gesetzten Signale ein-
  1031.       getroffen sein!
  1032.  
  1033.   NOTE
  1034.     Wenn Sie für signalmask 0 angeben, können Sie mit dieser Funktion
  1035.     nur die definierte Zeit micros warten. Das ist ähnlich der
  1036.     AMIGA FUNCTION TimeDelay().
  1037.  
  1038.   SEE ALSO
  1039.     pOS_WaitSignal()
  1040.  
  1041.   AMIGA FUNCTION
  1042.  
  1043.  
  1044. pexec.library/pOS_DeleteTask
  1045.  
  1046.   SYNOPSIS
  1047.     VOID pOS_DeleteTask
  1048.       (
  1049.         pOS_ExecBase *execbase,
  1050.         __ARID__ pOS_Task *task,
  1051.         pOS_Task *signaltask,
  1052.         ULONG signal
  1053.       );
  1054.  
  1055.   FUNCTION
  1056.     Entfernen eines Tasks aus der Task-Liste des Systems.
  1057.     Nach dem Entfernen kann einem anderen Task ein Signal
  1058.     als Bestätigung geschickt werden.
  1059.  
  1060.   INPUT
  1061.     execbase (_R_LB)
  1062.       Zeiger auf pExec-Library
  1063.     task (_R_A0)
  1064.       Zeiger auf den zu entfernenden Task
  1065.     signaltask (_R_A1)
  1066.       Zeiger auf den Task, der nach dem Entfernen das definierte
  1067.       Signal bekommt oder NULL
  1068.     signal (_R_D0)
  1069.       Signal, das an signaltask, nach dem Entfernen, geschickt werden soll.
  1070.  
  1071.   NOTE
  1072.     Sie können signaltask und signal auf 0 setzen, dann ist
  1073.     pOS_DeleteTask(execbase,task,NULL,0) gleichbedeutend mit
  1074.     pOS_RemTask(execbase,task).
  1075.  
  1076.   SEE ALSO
  1077.     pOS_RemTask(), pOS_CreateTask()
  1078.  
  1079.   AMIGA FUNCTION
  1080.     ähnlich VOID DeleteTask(struct Task *task);
  1081.  
  1082.  
  1083. pexec.library/pOS_SetTaskXPri
  1084.  
  1085. ### wird noch erweitert ###
  1086.   SYNOPSIS
  1087.     SBYTE res = pOS_SetTaskXPri
  1088.       (
  1089.         pOS_ExecBase *execbase,
  1090.         pOS_Task *task,
  1091.         SLONG runpri,
  1092.         SLONG syspri,
  1093.         ULONG mode
  1094.       );
  1095.  
  1096.   FUNCTION
  1097.     Ändern der Priorität für einen Task
  1098.  
  1099.   INPUT
  1100.     execbase (_R_LB)
  1101.       Zeiger auf pExec-Library
  1102.     task (_R_A0)
  1103.       Adresse des Tasks, dessen Priorität geändert werden soll
  1104.     runpri (_R_D0)
  1105.     syspri (_R_D1)
  1106.     mode (_R_D2) (enum pOS_SetTaskXPriMode)
  1107.       TKXPDMD_None
  1108.       TKXPDMD_IgnoreSPri
  1109.       TKXPDMD_UseSPri    : SysPri setzen
  1110.       TKXPDMD_NoSem      : Speziallfall nur intern
  1111.  
  1112.   RESULT
  1113.     res (_R_D0)
  1114.       bisheriger Prioritätswert
  1115.  
  1116.   SEE ALSO
  1117.     pOS_SetTaskPriority()
  1118.  
  1119.   AMIGA FUNCTION
  1120.  
  1121.  
  1122. pexec.library/pOS_AddPort
  1123.  
  1124.   SYNOPSIS
  1125.     VOID pOS_AddPort
  1126.       (
  1127.         pOS_ExecBase *execbase,
  1128.         pOS_MsgPort *msgport
  1129.       );
  1130.  
  1131.   FUNCTION
  1132.     Einfügen eines Message-Ports in die Systemliste
  1133.  
  1134.   INPUT
  1135.     execbase (_R_LB)
  1136.       Zeiger auf pExec-Library
  1137.     msgport (_R_A0)
  1138.       Zeiger auf die vollständig installierte Message-Port-Struktur
  1139.       Entsprechend dem Eintrag msgport->mp_Node.ln_Pri wird der
  1140.       Port eingereiht.
  1141.  
  1142.   NOTE
  1143.     Der Message-Port kann mittels pOS_RemPort() wieder aus der
  1144.     Systemliste entfernt werden.
  1145.     Die mp_MsgList wird beim Einfügen automatisch mittels pOS_ListInit()
  1146.     initialisiert.
  1147.  
  1148.   SEE ALSO
  1149.     pOS_CreatePort(), pOS_RemPort(), pOS_FindPort()
  1150.  
  1151.   AMIGA FUNCTION
  1152.     VOID AddPort(struct MsgPort *msgport);
  1153.  
  1154.  
  1155. pexec.library/pOS_RemPort
  1156.  
  1157.   SYNOPSIS
  1158.     VOID pOS_RemPort
  1159.       (
  1160.         pOS_ExecBase *execbase,
  1161.         pOS_MsgPort *msgport
  1162.       );
  1163.  
  1164.   FUNCTION
  1165.     Entfernen eines Message-Ports aus der Systemliste
  1166.  
  1167.   INPUT
  1168.     execbase (_R_LB)
  1169.       Zeiger auf pExec-Library
  1170.     msgport (_R_A0)
  1171.       Zeiger auf den zu entfernenden Message-Port, der mittels
  1172.       pOS_AddPort() oder pOS_CreatePort() in die Systemliste
  1173.       eingehängt wurde.
  1174.  
  1175.   NOTE
  1176.     Nach dem Aushängen können sich noch Nachrichten in dem
  1177.     Port befinden. Diese müssen mittels pOS_GetMsg() ausgelesen
  1178.     und mittels pOS_ReplyMsg() zurückgeschickt werden.
  1179.  
  1180.   SEE ALSO
  1181.     pOS_AddPort(), pOS_FindPort(), pOS_DeletePort()
  1182.  
  1183.   AMIGA FUNCTION
  1184.     VOID RemPort(struct MsgPort *msgport);
  1185.  
  1186.  
  1187. pexec.library/pOS_PutMsg
  1188.  
  1189.   SYNOPSIS
  1190.     VOID pOS_PutMsg
  1191.       (
  1192.         pOS_ExecBase *execbase,
  1193.         pOS_MsgPort *msgport,
  1194.         __ARID__ pOS_Message *message
  1195.       );
  1196.  
  1197.   FUNCTION
  1198.     Senden einer Message an einen Message-Port
  1199.  
  1200.   INPUT
  1201.     execbase (_R_LB)
  1202.       Zeiger auf pExec-Library
  1203.     msgport (_R_A0)
  1204.       Zeiger auf den Message-Port, an den die Nachricht geschickt
  1205.       werden soll
  1206.     message (_R_A1)
  1207.       Zeiger auf die zu versendende Nachricht
  1208.  
  1209.   NOTE
  1210.     In der Message wird der Eintrag message->mn_Node.ln_Typ auf
  1211.     NTYP_MESSAGE gesetzt. Entsprechend dem Eintrag msgport->mp_Flags
  1212.     werden zusätzliche Aktionen veranlaßt:
  1213.       MSGPORTF_Signal  : es wird ein Signal an den Empfänger geschickt
  1214.       MSGPORTF_SoftInt : es wird ein Software-Interrupt ausgelöst
  1215.       MSGPORTF_Ignore  : keine zusätzliche Aktion
  1216.     Wird zusätzlich das Flag MSGPORTF_TPEnqueue mit angegeben, wird
  1217.     die Nachricht entsprechend ihrer Priorität (TaskPri vom Nachrichtensender)
  1218.     in die Message-Port-Liste des Empfängers eingereit.
  1219.  
  1220.   SEE ALSO
  1221.     pOS_SendSignal(), pOS_AddPort(), pOS_GetMsg(), pOS_ReplyMsg()
  1222.  
  1223.   AMIGA FUNCTION
  1224.     VOID PutMsg(struct MsgPort *msgport, struct Message *message);
  1225.  
  1226.  
  1227. pexec.library/pOS_GetMsg
  1228.  
  1229.   SYNOPSIS
  1230.     __ARID__ pOS_Message *res = pOS_GetMsg
  1231.       (
  1232.         pOS_ExecBase *execbase,
  1233.         pOS_MsgPort *msgport
  1234.       );
  1235.  
  1236.   FUNCTION
  1237.     Abholen der nächsten Message von einem Message-Port
  1238.  
  1239.   INPUT
  1240.     execbase (_R_LB)
  1241.       Zeiger auf pExec-Library
  1242.     msgport (_R_A0)
  1243.       Zeiger auf den Message-Port, dessen nächste Nachricht
  1244.       ermittelt werden soll
  1245.  
  1246.   RESULT
  1247.     res (_R_D0)
  1248.      Zeiger auf die erste Message im Port,
  1249.      oder NULL wenn keine Messages vorliegen
  1250.  
  1251.   NOTE
  1252.     Auslesen aller Messages aus dem Port:
  1253.       struct pOS_MsgPort *msgport;
  1254.       struct pOS_Message *msg;
  1255.       while(msg=pOS_GetMsg(pOS_ExecBase,msgport))
  1256.       {
  1257.         /* Bearbeiten der Nachricht */
  1258.         pOS_ReplyMsg(pOS_ExecBase,msg);
  1259.         /* Auslesen von msg nicht mehr erlaubt !!! */
  1260.       }
  1261.  
  1262.   SEE ALSO
  1263.     pOS_WaitPort(), pOS_ReplyMsg(), pOS_PutMsg()
  1264.  
  1265.   AMIGA FUNCTION
  1266.     struct Message *GetMsg(struct MsgPort *msgport);
  1267.  
  1268.  
  1269. pexec.library/pOS_ReplyMsg
  1270.  
  1271.   SYNOPSIS
  1272.     VOID pOS_ReplyMsg
  1273.       (
  1274.         pOS_ExecBase *execbase,
  1275.         __ARID__ pOS_Message *message
  1276.       );
  1277.  
  1278.   FUNCTION
  1279.     Beantworten einer Message durch zurücksenden an den Absender
  1280.  
  1281.   INPUT
  1282.     execbase (_R_LB)
  1283.       Zeiger auf pExec-Library
  1284.     message (_R_A0)
  1285.       Zeiger auf die zurückzusendende Nachricht
  1286.       ACHTUNG: Nach der Funktion darf auf message nicht mehr
  1287.                zugegriffen werden.
  1288.  
  1289.   NOTE
  1290.     In der Message wird der Eintrag message->mn_Node.ln_Typ auf
  1291.     NTYP_REPLYMSG gesetzt.
  1292.     Anders als beim Amiga muß der Eintrag message->mn_ReplyPort
  1293.     immer gesetzt sein.
  1294.  
  1295.   SEE ALSO
  1296.     pOS_GetMsg(), pOS_PutMsg()
  1297.  
  1298.   AMIGA FUNCTION
  1299.     VOID ReplyMsg(struct Message *message);
  1300.  
  1301.  
  1302. pexec.library/pOS_WaitPort
  1303.  
  1304.   SYNOPSIS
  1305.     __ARID__ pOS_Message *res = pOS_WaitPort
  1306.       (
  1307.         pOS_ExecBase *execbase,
  1308.         pOS_MsgPort *msgport
  1309.       );
  1310.  
  1311.   FUNCTION
  1312.     Warten auf die nächste Message von einem Message-Port
  1313.  
  1314.   INPUT
  1315.     execbase (_R_LB)
  1316.       Zeiger auf pExec-Library
  1317.     msgport (_R_A0)
  1318.       Zeiger auf den Message-Port, auf den bis zum Eintreffen
  1319.       der nächsten Message gewartet werden soll
  1320.  
  1321.   RESULT
  1322.     res (_R_D0)
  1323.       immer Zeiger auf die erste empfangene Message im Port
  1324.       Die Nachricht muß aber mittels pOS_GetMsg() vom Port
  1325.       abgeholt werden!
  1326.  
  1327.   NOTE
  1328.     Liegt beim Funktionsaufruf bereits eine Nachricht im Port,
  1329.     kehrt die Funktion sofort zurück.
  1330.     Trifft nur ein Signal (pOS_SendSignal()) ohne einer Nachricht
  1331.     ein, kehrt die Funktion nicht zurück!
  1332.  
  1333.   SEE ALSO
  1334.     pOS_AddPort(), pOS_PutMsg(), pOS_WaitSignal(), pOS_SendSignal()
  1335.  
  1336.   AMIGA FUNCTION
  1337.     struct Message *WaitPort(struct MsgPort *msgport);
  1338.  
  1339.  
  1340. pexec.library/pOS_FindPort
  1341.  
  1342.   SYNOPSIS
  1343.     pOS_MsgPort *res = pOS_FindPort
  1344.       (
  1345.         pOS_ExecBase *execbase,
  1346.         const CHAR *name
  1347.       );
  1348.  
  1349.   FUNCTION
  1350.     Suchen eines Message-Ports über seinen Namen in der Systemliste,
  1351.     dabei wird zwischen Groß- und Kleinschreibung unterschieden.
  1352.  
  1353.   INPUT
  1354.     execbase (_R_LB)
  1355.       Zeiger auf pExec-Library
  1356.     name (_R_A0)
  1357.       Namen des Message-Ports, der gesucht werden soll
  1358.  
  1359.   RESULT
  1360.     res (_R_D0)
  1361.       Zeiger auf den gefundenen Message-Port,
  1362.       oder NULL
  1363.  
  1364.   SEE ALSO
  1365.     pOS_CreatePort(), pOS_AddPort(), pOS_WaitPort()
  1366.  
  1367.   AMIGA FUNCTION
  1368.     struct MsgPort *FindPort(STRPTR name);
  1369.  
  1370.  
  1371. pexec.library/pOS_CreatePort
  1372.  
  1373.   SYNOPSIS
  1374.     __ARID__ pOS_MsgPort *res = pOS_CreatePort
  1375.       (
  1376.         pOS_ExecBase *execbase,
  1377.         const CHAR *name,
  1378.         SLONG priority
  1379.       );
  1380.  
  1381.   FUNCTION
  1382.     Anlegen und installieren einer Message-Port-Struktur
  1383.  
  1384.   INPUT
  1385.     execbase (_R_LB)
  1386.       Zeiger auf pExec-Library
  1387.     name (_R_A0)
  1388.       Name für den öffentlichen Message-Port oder NULL für
  1389.       einen privaten Message-Port. Wird ein Name angegeben,
  1390.       wird der Message-Port selbständig mittels pOS_AddPort()
  1391.       in die Systemliste eingehängt
  1392.     priority (_R_D0)
  1393.       Priorität des Message-Ports im Bereich von -128 bis +127,
  1394.       normalerweise 0. Bestimmt die Position innerhalb der Systemliste.
  1395.  
  1396.   RESULT
  1397.     res (_R_D0)
  1398.       Zeiger auf den reservierten Message-Port, der mittels
  1399.       pOS_DeletePort() wieder freigegeben werden muß,
  1400.       oder NULL im Fehlerfall (Speichermangel/Signalbit)
  1401.  
  1402.   SEE ALSO
  1403.     pOS_DeletePort(), pOS_FindPort()
  1404.  
  1405.   AMIGA FUNCTION
  1406.     struct MsgPort *CreatePort(STRPTR name, LONG priority);
  1407.  
  1408.  
  1409. pexec.library/pOS_DeletePort
  1410.  
  1411.   SYNOPSIS
  1412.     VOID pOS_DeletePort
  1413.       (
  1414.         pOS_ExecBase *execbase,
  1415.         __ARID__ pOS_MsgPort *msgport
  1416.       );
  1417.  
  1418.   FUNCTION
  1419.     Freigeben einer Message-Port-Struktur
  1420.  
  1421.   INPUT
  1422.     execbase (_R_LB)
  1423.       Zeiger auf pExec-Library
  1424.     msgport (_R_A0)
  1425.       Zeiger auf den Message-Port, der freigegeben werden soll.
  1426.       Der Message-Port wird, falls notwendig, aus der Systemliste
  1427.       ausgehängt (mittels pOS_RemPort()) und die Signalbits freigegeben
  1428.       ACHTUNG: Nach der Funktion darf auf den Message-Port nicht
  1429.                mehr zurückgegriffen werden
  1430.  
  1431.   NOTE
  1432.     Im Message-Port dürfen keine Nachrichten mehr liegen.
  1433.     Das können Sie folgendermaßen sicherstellen:
  1434.       struct MsgPort *msgport;
  1435.       msgport=pOS_CreateMsgPort(pOS_ExecBase,"msgport",0);
  1436.       ...
  1437.       pOS_RemPort(pOS_ExecBase,msgport);
  1438.       ...
  1439.       struct pOS_Message *msg;
  1440.       while(msg=pOS_GetMsg(pOS_ExecBase,msgport))
  1441.         pOS_ReplyMsg(pOS_ExecBase,msg);
  1442.       msgport->mp_Node.ln_Name=NULL; // damit pOS_DeletePort() kein
  1443.                                         pOS_RemPort() aufruft
  1444.       pOS_DeletePort(pOS_ExecBase,msgport);
  1445.  
  1446.   SEE ALSO
  1447.     pOS_CreatePort(), pOS_FindPort()
  1448.  
  1449.   AMIGA FUNCTION
  1450.     VOID DeletePort(struct MsgPort *msgport);
  1451.  
  1452.  
  1453. pexec.library/pOS_ConstructMsgPort
  1454.  
  1455.   SYNOPSIS
  1456.     pOS_MsgPort *res = pOS_ConstructMsgPort
  1457.       (
  1458.         pOS_ExecBase *execbase,
  1459.         pOS_MsgPort *msgport
  1460.       );
  1461.  
  1462.   FUNCTION
  1463.     Installieren einer Message-Port-Struktur
  1464.  
  1465.   INPUT
  1466.     execbase (_R_LB)
  1467.       Zeiger auf pExec-Library
  1468.     msgport (_R_A0)
  1469.       Zeiger auf die Message-Port-Struktur, die installiert werden soll
  1470.       Dabei wird automatisch ein Signal-Bit reserviert
  1471.  
  1472.   RESULT
  1473.     res (_R_D0)
  1474.       Übergebener msgport wenn die Struktur installiert wurde,
  1475.       sonst NULL
  1476.  
  1477.   SEE ALSO
  1478.     pOS_ConstructSigPort(), pOS_DestructMsgPort(), pOS_AddPort()
  1479.  
  1480.   AMIGA FUNCTION
  1481.  
  1482.  
  1483. pexec.library/pOS_DestructMsgPort
  1484.  
  1485.   SYNOPSIS
  1486.     VOID pOS_DestructMsgPort
  1487.       (
  1488.         pOS_ExecBase *execbase,
  1489.         pOS_MsgPort *msgport
  1490.       );
  1491.  
  1492.   FUNCTION
  1493.     Deinstallieren einer Message-Port-Struktur
  1494.  
  1495.   INPUT
  1496.     execbase (_R_LB)
  1497.       Zeiger auf pExec-Library
  1498.     msgport (_R_A0)
  1499.       Zeiger auf die Message-Port-Struktur, die deinstalliert werden soll
  1500.       Dabei wird das Signal-Bit freigegeben
  1501.  
  1502.   SEE ALSO
  1503.     pOS_ConstructMsgPort(), pOS_RemPort()
  1504.  
  1505.   AMIGA FUNCTION
  1506.  
  1507.  
  1508. pexec.library/pOS_ConstructSigPort
  1509.  
  1510.   SYNOPSIS
  1511.     pOS_MsgPort *res = pOS_ConstructSigPort
  1512.       (
  1513.         pOS_ExecBase *execbase,
  1514.         pOS_MsgPort *msgport,
  1515.         ULONG signalbit
  1516.       );
  1517.  
  1518.   FUNCTION
  1519.     Installieren einer Message-Port-Struktur mit einem Signal-Bit
  1520.  
  1521.   INPUT
  1522.     execbase (_R_LB)
  1523.       Zeiger auf pExec-Library
  1524.     msgport (_R_A0)
  1525.       Zeiger auf die Message-Port-Struktur, die installiert werden soll
  1526.     signalbit (_R_D0)
  1527.       Signalbit, das in der Message-Port-Struktur eingetragen wird.
  1528.       Das Signal-Bit kann mittels pOS_AllocSignal() reserviert worden sein.
  1529.  
  1530.   RESULT
  1531.     res (_R_D0)
  1532.       Übergebener msgport der installierten Struktur.
  1533.  
  1534.   SEE ALSO
  1535.     pOS_ConstructMsgPort(), pOS_AddPort()
  1536.  
  1537.   AMIGA FUNCTION
  1538.  
  1539.  
  1540. pexec.library/pOS_OpenLibrary
  1541.  
  1542.   SYNOPSIS
  1543.     __ARID__ pOS_Library *res = pOS_OpenLibrary
  1544.       (
  1545.         pOS_ExecBase *execbase,
  1546.         const CHAR *name,
  1547.         ULONG version
  1548.       );
  1549.  
  1550.   FUNCTION
  1551.     Öffnen einer Library zur Benutzung der Library-Funktionen
  1552.  
  1553.     Suchvorgang:
  1554.       - interne Liste der Libraries
  1555.       - CurrentDir/libs/...
  1556.       - CurrentDir/...
  1557.       - ProgDir:libs/...
  1558.       - ProgDir:...
  1559.       - LIBS:...
  1560.  
  1561.   INPUT
  1562.     execbase (_R_LB)
  1563.       Zeiger auf pExec-Library
  1564.     name (_R_A0)
  1565.       Name der Library, die geöffnet werden soll
  1566.       Es wird nicht zwischen Groß- und Kleinschreibung unterschieden
  1567.       Bei Bedarf wird die Library automatisch von Disk nachgeladen
  1568.     version (_R_D0)
  1569.       Minimale Versionsnummer der Library; 0 für eine beliebige Version
  1570.       Die tatsächlich geöffnete Library-Version kann in res->lib_Version
  1571.       ausgelesen werden
  1572.  
  1573.   RESULT
  1574.     res (_R_D0)
  1575.       Zeiger auf die geöffnete Library, die mittels pOS_CloseLibrary()
  1576.       wieder geschlossen werden muß,
  1577.       NULL im Fehlerfall
  1578.  
  1579.   NOTE
  1580.     Es kann auch aus einer Task-Umgebung eine Library nachgeladen werden.
  1581.     Als Name kann auch eine vollständige Pfadangabe übergeben werden,
  1582.     z.B. "mydir:mylib.library".
  1583.     Ist kein vollständiger Path angegeben, so wird zuerst
  1584.             in der Library-Liste/Resident-Liste,
  1585.             im aktuellen Verzeichnis unter Libs/,
  1586.             im Programmverzeichnis unter Libs/,
  1587.             im aktuellen Verzeichnis
  1588.             im Libs:
  1589.     gesucht.
  1590.     Intern wird der Zähler res->lib_OpenCnt um eins erhöht, bevor in
  1591.     die Open-Funktion der Library gesprungen wird.
  1592.     Daraus kann auch ermittelt werden, ob andere Tasks diese Library
  1593.     benutzen (Zähler ist größer als 1).
  1594.  
  1595.   SEE ALSO
  1596.     pOS_CloseLibrary(), pOS_AddLibrary()
  1597.  
  1598.   AMIGA FUNCTION
  1599.     struct Library *OpenLibrary(STRPTR name, ULONG version);
  1600.  
  1601.  
  1602. pexec.library/pOS_CloseLibrary
  1603.  
  1604.   SYNOPSIS
  1605.     VOID pOS_CloseLibrary
  1606.       (
  1607.         pOS_ExecBase *execbase,
  1608.         __ARID__ pOS_Library *library
  1609.       );
  1610.  
  1611.   FUNCTION
  1612.     Schließen einer Library
  1613.  
  1614.   INPUT
  1615.     execbase (_R_LB)
  1616.       Zeiger auf pExec-Library
  1617.     library (_R_A0)
  1618.       Zeiger auf die von pOS_OpenLibrary() geöffnete Library
  1619.       ACHTUNG: Nach dieser Funktion darf auf library bzw. auf die
  1620.                Library-Funktionen nicht mehr zurückgegriffen werden.
  1621.  
  1622.   NOTE
  1623.     Nach Aufruf der Close-Funktion der Library wird der Zähler
  1624.     library->lib_OpenCnt um eins vermindert.
  1625.     Ist dieser Zähler 0 wird beim nächsten Flush-Durchlauf im
  1626.     System die Expunge-Funktion der Library angesprungen, damit
  1627.     diese aus dem Speicher entfernt wird.
  1628.  
  1629.   SEE ALSO
  1630.     pOS_OpenLibrary(), pOS_RemLibrary()
  1631.  
  1632.   AMIGA FUNCTION
  1633.     VOID CloseLibrary(struct Library *library);
  1634.  
  1635.  
  1636. pexec.library/pOS_SetLibFunction
  1637.  
  1638.   SYNOPSIS
  1639.     pOS_LibraryFunction *res = pOS_SetLibFunction
  1640.       (
  1641.         pOS_ExecBase *execbase,
  1642.         pOS_Library *library,
  1643.         SLONG offset,
  1644.         const pOS_LibraryFunction *newfunction,
  1645.         pOS_LibraryFunction *oldfunction
  1646.       );
  1647.  
  1648.   FUNCTION
  1649.     Ändern eines Funktionsvektors innerhalb einer Library
  1650.  
  1651.   INPUT
  1652.     execbase (_R_LB)
  1653.       Zeiger auf pExec-Library
  1654.     library (_R_A0)
  1655.       Zeiger auf die Library, dessen Funktionsvektor verändert
  1656.       werden soll
  1657.     offset (_R_D0)
  1658.       Offset der Funktion in der Library, die durch eine neue
  1659.       ersetzt werden soll
  1660.     newfunction (_R_A1)
  1661.       Zeiger auf die neue Funktion
  1662.     oldfunction (_R_A2)
  1663.       Zeiger auf den Speicherbereich, in den die alte Funktion
  1664.       abgelegt wird
  1665.  
  1666.   RESULT
  1667.     res (_R_D0)
  1668.       Übergebene Zeiger oldfunction, der die bisherige
  1669.       Library-Funktion enthält.
  1670.  
  1671.   NOTE
  1672.     Die neue Prüfsumme der Library wird automatisch mittels
  1673.     pOS_SumLibrary() berechnet.
  1674.  
  1675.   SEE ALSO
  1676.     pOS_OpenLibrary(), pOS_AddLibrary()
  1677.  
  1678.   AMIGA FUNCTION
  1679.     APTR SetFunction(struct Library *library, LONG offset, APTR newfunction);
  1680.  
  1681.  
  1682. pexec.library/pOS_MakeLibrary
  1683.  
  1684.   SYNOPSIS
  1685.     __ARID__ pOS_Library *res = pOS_MakeLibrary
  1686.       (
  1687.         pOS_ExecBase *execbase,
  1688.         const ULONG **functionary,
  1689.         APTR structure,
  1690.         BOOL (*initfunc)(_R_LB pOS_ExecBase *,_R_A0 pOS_Library *),
  1691.         size_t datasize,
  1692.         pOS_SegmentLst *segmentlist
  1693.       );
  1694.  
  1695.   FUNCTION
  1696.     Erstellen einer Library oder eines Devices
  1697.  
  1698.   INPUT
  1699.     execbase (_R_LB)
  1700.       Zeiger auf pExec-Library
  1701.     functionarray (_R_A0)
  1702.       Tabelle mit den Adressen der Funktionen; die Tabelle muß
  1703.       mittels ~0 abgeschlossen werden.
  1704.     structure (_R_A1)
  1705.       sollte NULL sein; wird für interne Verwaltung benutzt
  1706.     initfunc (_R_A2)
  1707.       Zeiger auf die Initialisierungsroutine der Library,
  1708.       dabei wird pOS_ExecBase (_R_LB) und pOS_Library (_R_A0)
  1709.       übergeben. Bei Rückgabewert FALSE wird die Library sofort
  1710.       wieder aus dem Speicher entfernt und freigegeben.
  1711.       Der Prototyp für die Init-Funktion lautet:
  1712.       BOOL initfunc(pOS_ExecBase *execbase, pOS_Library *library);
  1713.       NULL wenn keine Init-Funktion vorhanden ist.
  1714.     datasize (_R_D0)
  1715.       Größe des Datenbereichs einschließlich der Library-Struktur
  1716.       (sizeof(struct Library)). Dieser Wert wird in res->lib_PosSize
  1717.       vermerkt.
  1718.     segmentlist (_R_A3)
  1719.       Segmentliste die an die Init-Funktion der Library übergeben wird.
  1720.  
  1721.   RESULT
  1722.     res (_R_D0)
  1723.       Erstellte Library-Struktur, die mittels pOS_AddLibrary() in
  1724.       die Systemliste eingefügt werden kann,
  1725.       oder NULL im Fehlerfall (Speichermangel)
  1726.  
  1727.   NOTE
  1728.     Diese Funktion wird normal nur vom Betriebssystem benutzt,
  1729.     bzw. ist bei der Verwendung privater Libraries notwendig.
  1730.  
  1731.   SEE ALSO
  1732.     pOS_SumLibrary(), pOS_AddLibrary(), pOS_OpenLibrary()
  1733.  
  1734.   AMIGA FUNCTION
  1735.     MakeLibrary(APTR functionarray, APTR structure, ULONG (*initfunction)(), ULONG datasize, BPTR segmentlist)
  1736.  
  1737.  
  1738. pexec.library/pOS_MakeFunctions
  1739.  
  1740.   SYNOPSIS
  1741.     size_t res = pOS_MakeFunctions
  1742.       (
  1743.         pOS_ExecBase *execbase,
  1744.         pOS_LibraryFunction *libraryfunction,
  1745.         const ULONG **functionarray,
  1746.         ULONG *base,
  1747.         size_t size
  1748.       );
  1749.  
  1750.   FUNCTION
  1751.     Aufbau einer Funktions-Sprungtabelle
  1752.  
  1753.   INPUT
  1754.     execbase (_R_LB)
  1755.       Zeiger auf pExec-Library
  1756.     libraryfunction (_R_A0)
  1757.       Obere Startadresse der Sprungtabelle
  1758.     functionarray (_R_A1)
  1759.       Tabelle mit den Adressen der Funktionen, die mittels ~0
  1760.       abgeschlossen sein muß.
  1761.     base (_R_A2)
  1762.       Basisadresse, zu der alle Funktionen relativ berechnet
  1763.       werden; NULL wenn alle Adressen absolut vorliegen.
  1764.     size (_R_D0)
  1765. >>> ???
  1766.  
  1767.   RESULT
  1768.     res (_R_D0)
  1769.       Größer der erstellten Sprungtabelle in Bytes
  1770.  
  1771.   NOTE
  1772.     Diese Funktion wird normal nur vom Betriebssystem benutzt,
  1773.     bzw. ist bei der Verwendung privater Libraries notwendig.
  1774.  
  1775.   SEE ALSO
  1776.     pOS_SumLibrary()
  1777.  
  1778.   AMIGA FUNCTION
  1779.     ULONG MakeFunctions(APTR, APTR, APTR);
  1780.  
  1781.  
  1782. pexec.library/pOS_AddLibrary
  1783.  
  1784.   SYNOPSIS
  1785.     VOID pOS_AddLibrary
  1786.       (
  1787.         pOS_ExecBase *execbase,
  1788.         pOS_Library *library
  1789.       );
  1790.  
  1791.   FUNCTION
  1792.     Einfügen einer Library in die Systemliste
  1793.  
  1794.   INPUT
  1795.     execbase (_R_LB)
  1796.       Zeiger auf pExec-Library
  1797.     library (_R_A0)
  1798.       Zeiger auf die installierte Library-Struktur
  1799.  
  1800.   NOTE
  1801.     Diese Funktion wird normal nur vom Betriebssystem benutzt,
  1802.     bzw. ist bei der Verwendung privater Libraries notwendig.
  1803.  
  1804.   SEE ALSO
  1805.     pOS_OpenLibrary(), pOS_RemLibrary()
  1806.  
  1807.   AMIGA FUNCTION
  1808.     VOID AddLibrary(struct Library *library);
  1809.  
  1810.  
  1811. pexec.library/pOS_RemLibrary
  1812.  
  1813.   SYNOPSIS
  1814.     VOID pOS_RemLibrary
  1815.       (
  1816.         pOS_ExecBase *execbase,
  1817.         pOS_Library *library
  1818.       );
  1819.  
  1820.   FUNCTION
  1821.     Versuch eine Library aus der Systemliste zu entfernen
  1822.  
  1823.   INPUT
  1824.     execbase (_R_LB)
  1825.       Zeiger auf pExec-Library
  1826.     library (_R_A0)
  1827.       Zeiger auf die Library, die aus der Systemliste entfernt
  1828.       werden soll
  1829.  
  1830.   NOTE
  1831.     Diese Funktion wird normal nur vom Betriebssystem benutzt,
  1832.     bzw. ist bei der Verwendung privater Libraries notwendig.
  1833.     Es wird die Expunge-Funktion der Library aufgerufen, die
  1834.     die Library aus dem Speicher entfernen soll, wenn sie nicht mehr
  1835.     benutzt wird.
  1836.  
  1837.   SEE ALSO
  1838.     pOS_AddLibrary(), pOS_CloseLibrary()
  1839.  
  1840.   AMIGA FUNCTION
  1841.     VOID RemLibrary(struct Library *library);
  1842.  
  1843.  
  1844. pexec.library/pOS_SumLibrary
  1845.  
  1846.   SYNOPSIS
  1847.     VOID pOS_SumLibrary
  1848.       (
  1849.         pOS_ExecBase *execbase,
  1850.         pOS_Library *library
  1851.       );
  1852.  
  1853.   FUNCTION
  1854.     Berechnen der Checksumme einer Library
  1855.  
  1856.   INPUT
  1857.     execbase (_R_LB)
  1858.       Zeiger auf pExec-Library
  1859.     library (_R_A0)
  1860.       Zeiger auf die Library, dessen Prüfsumme neu berechnet und
  1861.       eingetragen werden soll (in library->lib_Sum)
  1862.  
  1863.   SEE ALSO
  1864.     pOS_OpenLibrary(), pOS_AddLibrary(), pOS_MakeLibrary(),
  1865.     pOS_MakeFunctions()
  1866.  
  1867.   AMIGA FUNCTION
  1868.     VOID SumLibrary(struct Library *library);
  1869.  
  1870. /******************************************************************************/
  1871.  
  1872. pexec.library/pOS_AllocAbs
  1873.  
  1874.   SYNOPSIS
  1875.     __ARID__ APTR res = pOS_AllocAbs
  1876.       (
  1877.         pOS_ExecBase *execbase,
  1878.         size_t size,
  1879.         APTR location
  1880.       );
  1881.  
  1882.   FUNCTION
  1883.     Reservieren eines Speicherbereichs an einer absoluten Adresse
  1884.  
  1885.   INPUT
  1886.     execbase (_R_LB)
  1887.       Zeiger auf pExec-Library
  1888.     size (_R_D0)
  1889.       Größe des gewünschten Speicherbereichs; wird auf MEM_BLOCKSIZE gerundet
  1890.     locatiton (_R_A0)
  1891.       Adresse des absoluten Speicherbereichs
  1892.  
  1893.   RESULT
  1894.     res (_R_D0)
  1895.       location wenn der Speicherbereich reserviert wurde,
  1896.       sonst NULL
  1897.  
  1898.   SEE ALSO
  1899.     pOS_AllocMem(), pOS_AllocVec(), pOS_FreeMem()
  1900.  
  1901.   AMIGA FUNCTION
  1902.     APTR AllocAbs(ULONG size, APTR location);
  1903.  
  1904.  
  1905. pexec.library/pOS_Allocate
  1906.  
  1907.   SYNOPSIS
  1908.     __ARID__ APTR res = pOS_Allocate
  1909.       (
  1910.         pOS_ExecBase *execbase,
  1911.         pOS_MemHeader *memheader,
  1912.         size_t size
  1913.       );
  1914.  
  1915.   FUNCTION
  1916.     Anlegen eines Speicherbereichs innerhalb einer privaten Speicherregion
  1917.  
  1918.   INPUT
  1919.     execbase (_R_LB)
  1920.       Zeiger auf pExec-Library
  1921.     memheader (_R_A0)
  1922.       Zeiger auf den MemHeader, der den privaten Speicher verwaltet
  1923.     size (_R_D0)
  1924.       Größe des gewünschten Speicherbereichs; wird auf MEM_BLOCKSIZE
  1925.       aufgerundet
  1926.  
  1927.   RESULT
  1928.     res (_R_D0)
  1929.       Zeiger auf den reservierten Speicherbereich, der mittels
  1930.       pOS_Deallocate() wieder freigegeben werden muß;
  1931.       NULL im Fehlerfall
  1932.  
  1933.   SEE ALSO
  1934.     pOS_Deallocate()
  1935.  
  1936.   AMIGA FUNCTION
  1937.     APTR Allocate(struct MemHeader *memheader, ULONG size);
  1938.  
  1939.  
  1940. pexec.library/pOS_Deallocate
  1941.  
  1942.   SYNOPSIS
  1943.     VOID pOS_Deallocate
  1944.       (
  1945.         pOS_ExecBase *execbase,
  1946.         pOS_MemHeader *memheader,
  1947.         __ARID__ APTR mem,
  1948.         size_t size
  1949.       );
  1950.  
  1951.   FUNCTION
  1952.     Freigeben eines Speicherbereichs innerhalb einer privaten
  1953.     Speicherregion
  1954.  
  1955.   INPUT
  1956.     execbase (_R_LB)
  1957.       Zeiger auf pExec-Library
  1958.     memheader (_R_A0)
  1959.       Zeiger auf den MemHeader, der den privaten Speicher verwaltet
  1960.     mem (_R_A1)
  1961.       Zeiger auf den freizugebenden Speicherbereich, der mittels
  1962.       pOS_Allocate() reserviert wurde
  1963.     size (_R_D0)
  1964.       Größe des freizugebenden Speicherbereichs; wird auf MEM_BLOCKSIZE
  1965.       aufgerundet
  1966.  
  1967.   SEE ALSO
  1968.     pOS_Allocate()
  1969.  
  1970.   AMIGA FUNCTION
  1971.     VOID Deallocate(struct MemHeader *memheader, APTR mem, ULONG size);
  1972.  
  1973.  
  1974. pexec.library/pOS_AllocMem
  1975.  
  1976.   SYNOPSIS
  1977.     __ARID__ APTR res = pOS_AllocMem
  1978.       (
  1979.         pOS_ExecBase *execbase,
  1980.         size_t size,
  1981.         ULONG flags
  1982.       );
  1983.  
  1984.   FUNCTION
  1985.     Anlegen eines Speicherbereichs
  1986.  
  1987.   INPUT
  1988.     execbase (_R_LB)
  1989.       Zeiger auf pExec-Library
  1990.     size (_R_D0)
  1991.       Größe des gewünschten Speicherbereichs; wird auf MEM_BLOCKSIZE
  1992.       aufgerundet
  1993.     memflags (_R_D1) (enum pOS_MemoryFlag)
  1994.       MEMF_ANY        : beliebige Art von Speicher
  1995.       MEMF_PUBLIC     : öffentlicher Speicher, der auch von Interrups
  1996.                         und anderen Tasks angesprochen werden kann
  1997.       MEMF_VMEM       : der Speicherbereich kann vom System ausgelagert
  1998.                         werden
  1999.                         (Virtuelle Speicherverwaltung)
  2000.       MEMF_LOCAL      : für einen Speicherbereich, der bei einem
  2001.                         Warmstart nicht installiert wird
  2002.       MEMF_CLEAR      : der reservierte Speicherbereich wird mit
  2003.                         0 vorbelegt
  2004.       MEMF_NO_EXPUNGE : falls kein, mittels AddMemHandler() installierter,
  2005.                         Speicher-Handler aufgerufen werden soll, um
  2006.                         Speicherplatz freizugeben, wenn das Anlegen dieses
  2007.                         Bereiches wegen Speicherplatzmangels fehlschlägt.
  2008.  
  2009.   RESULT
  2010.     res (_R_D0)
  2011.       Adresse des reservierten Speicherbereichs, der mittels
  2012.       pOS_FreeMem() wieder freigegeben werden muß;
  2013.       NULL im Fehlerfall
  2014.  
  2015.   NOTE
  2016.     Nur wenn das Flag MEMF_VMEM gesetzt ist, kann der Speicherblock
  2017.     vom Betriebsystem, bei Bedarf, ausgelagert werden. Alle anderen
  2018.     Flags verwenden festen, nicht-virtuell-fähigen Speicher.
  2019.  
  2020.   SEE ALSO
  2021.     pOS_FreeMem(), pOS_AllocVec(), pOS_AvailMem()
  2022.  
  2023.   AMIGA FUNCTION
  2024.     APTR AllocMem(ULONG flags, ULONG size);
  2025.  
  2026.  
  2027. pexec.library/pOS_FreeMem
  2028.  
  2029.   SYNOPSIS
  2030.     VOID pOS_FreeMem
  2031.       (
  2032.         pOS_ExecBase *execbase,
  2033.         __ARID__ APTR mem,
  2034.         size_t size
  2035.       );
  2036.  
  2037.   FUNCTION
  2038.     Freigeben eines Speicherbereichs
  2039.  
  2040.   INPUT
  2041.     execbase (_R_LB)
  2042.       Zeiger auf pExec-Library
  2043.     mem (_R_A0)
  2044.       Adresse des freizugebenden Speicherbereichs, der mittels
  2045.       pOS_AllocMem() reserviert wurde
  2046.       ACHTUNG: auf den Speicher darf nach dieser Funktion nicht
  2047.                mehr zugegriffen werden!
  2048.     size (_R_D0)
  2049.       Größe des reservierten Speicherbereichs;  wird auf MEM_BLOCKSIZE
  2050.       aufgerundet
  2051.       ACHTUNG: die Größe muß genau der bei pOS_AllocMem() angegebenen
  2052.                entsprechen
  2053.  
  2054.   NOTE
  2055.     Es darf nur Speicher freigegeben werden, welcher auch wirklich
  2056.     mit pOS_AllocMem() reserviert wurde. Der Speicher darf auch nur
  2057.     einmal wieder freigeben werden.
  2058.  
  2059.   SEE ALSO
  2060.     pOS_AllocMem(), pOS_FreeVec()
  2061.  
  2062.   AMIGA FUNCTION
  2063.     VOID FreeMem(APTR mem, ULONG size);
  2064.  
  2065.  
  2066. pexec.library/pOS_AllocVec
  2067.  
  2068.   SYNOPSIS
  2069.     __ARID__ APTR res = pOS_AllocVec
  2070.       (
  2071.         pOS_ExecBase *execbase,
  2072.         size_t size,
  2073.         ULONG memflags
  2074.       );
  2075.  
  2076.   FUNCTION
  2077.     Anlegen eines Speicherbereichs
  2078.  
  2079.   INPUT
  2080.     execbase (_R_LB)
  2081.       Zeiger auf pExec-Library
  2082.     size (_R_D0)
  2083.       Größe des gewünschten Speicherbereichs; wird auf MEM_BLOCKSIZE
  2084.       aufgerundet
  2085.     flags (_R_D1) (enum pOS_MemoryFlag)
  2086.       MEMF_ANY        : beliebige Art von Speicher
  2087.       MEMF_PUBLIC     : öffentlicher Speicher, der auch von Interrups
  2088.                         und anderen Tasks angesprochen werden kann
  2089.       MEMF_VMEM       : der Speicherbereich kann vom System ausgelagert
  2090.                         werden
  2091.                         (Virtuelle Speicherverwaltung)
  2092.       MEMF_LOCAL      : für einen Speicherbereich, der bei einem
  2093.                         Warmstart nicht installiert wird
  2094.       MEMF_CLEAR      : der reservierte Speicherbereich wird mit
  2095.                         0 vorbelegt
  2096.       MEMF_NO_EXPUNGE : falls kein mittels AddMemHandler() installierter
  2097.                         Speicher-Handler aufgerufen werden soll, um
  2098.                         Speicherplatz freizugeben, wenn das Anlegen dieses
  2099.                         Bereiches wegen Speicherplatzmangels fehlschlägt.
  2100.  
  2101.   RESULT
  2102.     res (_R_D0)
  2103.       Adresse des reservierten Speicherbereichs, der mittels
  2104.       pOS_FreeVec() wieder freigegeben werden muß;
  2105.       NULL im Fehlerfall
  2106.  
  2107.   NOTE
  2108.     Diese Funktion ist gleichbedeutend mit pOS_AllocMem().
  2109.     Zusätzlich wird aber die Größe des reservierten Speichers
  2110.     vermerkt und braucht daher bei pOS_FreeVec() nicht mehr
  2111.     angegeben zu werden. Daduch können Fehler beim Freigeben
  2112.     mittels einer falschen Größe ausgeschlossen werden.
  2113.  
  2114.   SEE ALSO
  2115.     pOS_FreeVec(), pOS_AllocMem(), pOS_AvailMem()
  2116.  
  2117.   AMIGA FUNCTION
  2118.     APTR AllocVec(ULONG size, ULONG flags);
  2119.  
  2120.  
  2121. pexec.library/pOS_FreeVec
  2122.  
  2123.   SYNOPSIS
  2124.     VOID pOS_FreeVec
  2125.       (
  2126.         pOS_ExecBase *execbase,
  2127.         __ARID__ APTR mem
  2128.       );
  2129.  
  2130.   FUNCTION
  2131.     Freigeben eines Speicherbereichs
  2132.  
  2133.   INPUT
  2134.     execbase (_R_LB)
  2135.       Zeiger auf pExec-Library
  2136.     mem (_R_A0)
  2137.       Adresse des freizugebenden Speicherbereichs, der mittels
  2138.       pOS_AllocVec() reserviert wurde
  2139.       ACHTUNG: auf den Speicher darf nach dieser Funktion nicht
  2140.                mehr zugegriffen werden!
  2141.  
  2142.   SEE ALSO
  2143.     pOS_AllocVec(), pOS_FreeMem()
  2144.  
  2145.   AMIGA FUNCTION
  2146.     VOID FreeVec(APTR mem);
  2147.  
  2148.  
  2149. pexec.library/pOS_AvailMem
  2150.  
  2151.   SYNOPSIS
  2152.     size_t res = pOS_AvailMem
  2153.       (
  2154.         pOS_ExecBase *execbase,
  2155.         ULONG flags
  2156.       );
  2157.  
  2158.   FUNCTION
  2159.     Ermitteln des freien Speichers
  2160.  
  2161.   INPUT
  2162.     execbase (_R_LB)
  2163.       Zeiger auf pExec-Library
  2164.     flags (_R_D0) (enum pOS_MemoryFlag)
  2165.       MEMF_VMEM       : Virtuelle Speicherverwaltung
  2166.       MEMF_LARGEST    : für den größten zusammenhängenden Speicherblock
  2167.       MEMF_TOTAL      : für die gesamte Speichergröße (freier und
  2168.                         benutzter Speicher)
  2169.  
  2170.   RESULT
  2171.     res (_R_D0)
  2172.       Größe des freien Speichers in Bytes, von flags abhängig.
  2173.  
  2174.   SEE ALSO
  2175.     pOS_AddMemList(), pOS_AllocMem(), pOS_AllocVec()
  2176.  
  2177.   AMIGA FUNCTION
  2178.     ULONG AvailMem(ULONG flags);
  2179.  
  2180.  
  2181. pexec.library/pOS_AddMemList
  2182.  
  2183.   SYNOPSIS
  2184.     VOID pOS_AddMemList
  2185.       (
  2186.         pOS_ExecBase *execbase,
  2187.         size_t size,
  2188.         ULONG flags,
  2189.         SLONG priority,
  2190.         APTR mem,
  2191.         const CHAR *name
  2192.       );
  2193.  
  2194.   FUNCTION
  2195.     Hinzufügen eines freien Speicherbereis zu der Systemspeicherliste
  2196.  
  2197.   INPUT
  2198.     execbase (_R_LB)
  2199.       Zeiger auf pExec-Library
  2200.     size (_R_D0)
  2201.       Größe des Speicherbereichs in Byte
  2202.     flags (_R_D1)
  2203.  
  2204.     priority (_R_D2)
  2205.       Priorität des Speichers; wird pOS_AllocMem() ... mittels
  2206.       MEMF_ANY aufgerufen, wird der Speicher mit der höchsten
  2207.       Priorität zuerst reserviert (soweit die gewünschte Größe
  2208.       verfügbar ist)
  2209.     mem (_R_A0)
  2210.       Adresse des neuen Speicherbereichs
  2211.     name (_R_A1)
  2212.       Name für den neuen Speicherbereich oder NULL
  2213.  
  2214.   SEE ALSO
  2215.     pOS_AllocMem(), pOS_AllocVec(), pOS_AvailMem()
  2216.  
  2217.   AMIGA FUNCTION
  2218.     VOID AddMemList(ULONG size, ULONG flags, LONG priority, APTR mem, STRPTR name);
  2219.  
  2220.  
  2221. pexec.library/pOS_AllocEntry
  2222.  
  2223.   SYNOPSIS
  2224.     __ARID__ pOS_MemList *res = pOS_AllocEntry
  2225.       (
  2226.         pOS_ExecBase *execbase,
  2227.         pOS_MemPool *mempool,
  2228.         pOS_MemList *memlist
  2229.       );
  2230.  
  2231.   FUNCTION
  2232.     Anlegen mehrerer Speicherbereiche
  2233.  
  2234.   INPUT
  2235.     execbase (_R_LB)
  2236.       Zeiger auf pExec-Library
  2237.     mempool (_R_A0)
  2238.       Zeiger auf den MemPool, aus dem der Speicher besorgt werden
  2239.       soll oder NULL
  2240.     memlist (_R_A1)
  2241.       Zeiger auf die Speicherliste, in der die zu reservierenden
  2242.       Speicherblöcke und deren Attribute vermerkt sind
  2243.  
  2244.   RESULT
  2245.     res (_R_D0)
  2246.       Neu reservierte MemList, in der die Adressen und Größen der
  2247.       einzelnen Speicherbereiche vermerkt ist;
  2248.       NULL im Fehlerfall.
  2249.       Der Speicher kann mittels pOS_FreeEntry() freigegeben werden.
  2250.  
  2251.   SEE ALSO
  2252.     pOS_FreeEntry()
  2253.  
  2254.   AMIGA FUNCTION
  2255.     struct MemList *AllocEntry(struct MemList *memlist);
  2256.  
  2257.  
  2258. pexec.library/pOS_FreeEntry
  2259.  
  2260.   SYNOPSIS
  2261.     VOID pOS_FreeEntry
  2262.       (
  2263.         pOS_ExecBase *execbase,
  2264.         pOS_MemPool *mempool,
  2265.         __ARID__ pOS_MemList *memlist
  2266.       );
  2267.  
  2268.   FUNCTION
  2269.     Freigeben mehrerer Speicherbereiche
  2270.  
  2271.   INPUT
  2272.     execbase (_R_LB)
  2273.       Zeiger auf pExec-Library
  2274.     mempool (_R_A0)
  2275.       Zeiger auf den MemPool, an den der Speicher zurückgegeben werden
  2276.       soll oder NULL
  2277.     memlist (_R_A1)
  2278.       Zeiger auf die Speicherliste, in der die freizugebenden
  2279.       Speicherblöcke und Größen vermerkt sind
  2280.  
  2281.   SEE ALSO
  2282.     pOS_AllocEntry()
  2283.  
  2284.   AMIGA FUNCTION
  2285.     VOID FreeEntry(struct MemList *memlist);
  2286.  
  2287. /******************************************************************************/
  2288.  
  2289. pexec.library/pOS_InitMemPool
  2290.  
  2291.   SYNOPSIS
  2292.     VOID pOS_InitMemPool
  2293.       (
  2294.         pOS_ExecBase *execbase,
  2295.         pOS_MemPool *mempool,
  2296.         size_t size,
  2297.         ULONG flags
  2298.       );
  2299.  
  2300.   FUNCTION
  2301.     Installieren einer MemPool-Struktur
  2302.  
  2303.   INPUT
  2304.     execbase (_R_LB)
  2305.       Zeiger auf pExec-Library
  2306.     mempool (_R_A0)
  2307.       Zeiger auf den privaten MemPool-Verwalter
  2308.     size (_R_D0)
  2309.       Größe des kleinsten Speicherblocks im Pool
  2310.     flags (_R_D1) (enum pOS_MemoryFlag)
  2311.       Art des privat verwalteten Speichers
  2312.       MEMF_ANY        : beliebige Art von Speicher
  2313.       MEMF_PUBLIC     : öffentlicher Speicher, der auch von Interrups
  2314.                         und anderen Tasks angesprochen werden kann
  2315.       MEMF_VMEM       : der Speicherbereich kann vom System ausgelagert
  2316.                         werden
  2317.                         (Virtuelle Speicherverwaltung)
  2318.  
  2319.   NOTE
  2320.     Die beiden Funktions-Zeiger mpl_Alloc und mpl_Free zeigen
  2321.     nach dieser Funktion auf Systemroutinen. Soll eine eigene Speicher-
  2322.     verwaltung stattfinden, können hier andere Routinen eingehängt
  2323.     werden. Diese gelten in den Funktionen pOS_AllocPoolMem()/
  2324.     pOS_AllocPoolVec()/pOS_FreePoolMem()/pOS_FreePoolVec() wenn
  2325.     ein Speicher aus der globalen Systemspeicherliste reserviert
  2326.     werden muß.
  2327.  
  2328.   SEE ALSO
  2329.     pOS_AllocPoolMem(), pOS_AllocPoolVec(), pOS_FreePoolAll()
  2330.  
  2331.   AMIGA FUNCTION
  2332.     APTR CreatePool(ULONG flags, ULONG, ULONG size);
  2333.  
  2334.  
  2335. pexec.library/pOS_AllocPoolMem
  2336.  
  2337.   SYNOPSIS
  2338.     __ARID__ APTR res = pOS_AllocPoolMem
  2339.       (
  2340.         pOS_ExecBase *execbase,
  2341.         pOS_MemPool *mempool,
  2342.         size_t size,
  2343.         ULONG flags
  2344.       );
  2345.  
  2346.   FUNCTION
  2347.     Reservieren eines Speicherbereichs innerhalb eines privaten
  2348.     Speicher-Pools
  2349.  
  2350.   INPUT
  2351.     execbase (_R_LB)
  2352.       Zeiger auf pExec-Library
  2353.     mempool (_R_A0)
  2354.       Zeiger auf den privaten MemPool-Verwalter
  2355.     size (_R_D0)
  2356.       Größe des zu reservierenden Speicherbereichs
  2357.     flags (_R_D1) (enum pOS_MemoryFlag)
  2358.       MEMF_CLEAR      : der reservierte Speicherbereich wird mit
  2359.                         0 vorbelegt
  2360.       MEMF_NO_EXPUNGE : falls kein mittels AddMemHandler() installierter
  2361.                         Speicher-Handler aufgerufen werden soll, um
  2362.                         Speicherplatz freizugeben, wenn das Anlegen dieses
  2363.                         Bereiches wegen Speicherplatzmangels fehlschlägt.
  2364.       MEMF_ANY, MEMF_PUBLIC, MEMF_VMEM entsprechend der Angabe bei
  2365.       pOS_InitMemPool()
  2366.  
  2367.   RESULT
  2368.     res (_R_D0)
  2369.       Adresse des reservierten Speicherbereichs, der mittels
  2370.       pOS_FreePoolMem() oder pOS_FreePoolAll() wieder freigegeben
  2371.       werden muß; NULL im Fehlerfall.
  2372.  
  2373.   NOTE
  2374.     Kann der Speicherblock nicht aus dem Pool reserviert werden,
  2375.     wird er aus der Systemspeicherliste reserviert und in die Pool-
  2376.     Verwaltung aufgenommen.
  2377.  
  2378.   SEE ALSO
  2379.     pOS_FreePoolMem(), pOS_AllocPoolVec(), pOS_InitMemPool()
  2380.  
  2381.   AMIGA FUNCTION
  2382.     APTR AllocPooled(APTR mempool, ULONG size);
  2383.  
  2384.  
  2385. pexec.library/pOS_FreePoolMem
  2386.  
  2387.   SYNOPSIS
  2388.     VOID pOS_FreePoolMem
  2389.       (
  2390.         pOS_ExecBase *execbase,
  2391.         pOS_MemPool *mempool,
  2392.         __ARID__ APTR mem,
  2393.         size_t size
  2394.       );
  2395.  
  2396.   FUNCTION
  2397.     Freigeben eines Speicherbereichs innerhalb eines privaten
  2398.     Speicher-Pools
  2399.  
  2400.   INPUT
  2401.     execbase (_R_LB)
  2402.       Zeiger auf pExec-Library
  2403.     mempool (_R_A0)
  2404.       Zeiger auf den privaten MemPool-Verwalter
  2405.     mem (_R_A1)
  2406.       Adresse des freizugebenden Speicherbereichs, der mittels
  2407.       pOS_AllocPoolMem() reserviert wurde
  2408.     size (_R_D0)
  2409.       Größe des freizugebenden Speicherbereichs
  2410.  
  2411.   SEE ALSO
  2412.     pOS_AllocPoolMem(), pOS_FreePoolAll()
  2413.  
  2414.   AMIGA FUNCTION
  2415.     VOID FreePooled(APTR mempool, APTR mem, ULONG size);
  2416.  
  2417.  
  2418. pexec.library/pOS_FreePoolAll
  2419.  
  2420.   SYNOPSIS
  2421.     VOID pOS_FreePoolAll
  2422.       (
  2423.         pOS_ExecBase *execbase,
  2424.         pOS_MemPool *mempool
  2425.       );
  2426.  
  2427.   FUNCTION
  2428.     Freigeben aller mittels pOS_AllocPoolMem() oder pOS_AllocPoolVec()
  2429.     reservierten Speicherblöcke aus dem privaten Speicherpool.
  2430.  
  2431.   INPUT
  2432.     execbase (_R_LB)
  2433.       Zeiger auf pExec-Library
  2434.     mempool (_R_A0)
  2435.       Zeiger auf den privaten MemPool-Verwalter, dessen kompletter
  2436.       reservierter Speicher freigegeben werden soll
  2437.  
  2438.   NOTE
  2439.     Nach der Funktion ist der komplette Pool in dem Zustand,
  2440.     wie er nach pOS_InitMemPool() vorliegt.
  2441.  
  2442.   SEE ALSO
  2443.     pOS_AllocPoolMem(), pOS_AllocPoolVec(), pOS_InitMemPool()
  2444.  
  2445.   AMIGA FUNCTION
  2446.     VOID DeletePool(APTR mempool);
  2447.  
  2448.  
  2449. pexec.library/pOS_AllocPoolVec
  2450.  
  2451.   SYNOPSIS
  2452.     __ARID__ APTR res = pOS_AllocPoolVec
  2453.       (
  2454.         pOS_ExecBase *execbase,
  2455.         pOS_MemPool *mempool,
  2456.         size_t size,
  2457.         ULONG flags
  2458.       );
  2459.  
  2460.   FUNCTION
  2461.     Reservieren eines Speicherbereichs innerhalb eines privaten
  2462.     Speicher-Pools
  2463.  
  2464.   INPUT
  2465.     execbase (_R_LB)
  2466.       Zeiger auf pExec-Library
  2467.     mempool (_R_A0)
  2468.       Zeiger auf den privaten MemPool-Verwalter
  2469.     size (_R_D0)
  2470.       Größe des zu reservierenden Speicherbereichs
  2471.     flags (_R_D0) (enum pOS_MemoryFlag)
  2472.       MEMF_CLEAR      : der reservierte Speicherbereich wird mit
  2473.                         0 vorbelegt
  2474.       MEMF_NO_EXPUNGE : falls kein mittels AddMemHandler() installierter
  2475.                         Speicher-Handler aufgerufen werden soll, um
  2476.                         Speicherplatz freizugeben, wenn das Anlegen dieses
  2477.                         Bereiches wegen Speicherplatzmangels fehlschlägt.
  2478.       MEMF_ANY, MEMF_PUBLIC, MEMF_VMEM entsprechend der Angabe bei
  2479.       pOS_InitMemPool()
  2480.  
  2481.   NOTE
  2482.     Kann der Speicherblock nicht aus dem Pool reserviert werden,
  2483.     wird er aus der Systemspeicherliste reserviert und in die Pool-
  2484.     Verwaltung aufgenommen.
  2485.  
  2486.   RESULT
  2487.     res (_R_D0)
  2488.       Adresse des reservierten Speicherbereichs, der mittels
  2489.       pOS_FreePoolVec() oder pOS_FreePoolAll() wieder freigegeben
  2490.       werden muß; NULL im Fehlerfall.
  2491.  
  2492.   SEE ALSO
  2493.     pOS_FreePoolVec(), pOS_AllocPoolMem(), pOS_InitMemPool()
  2494.  
  2495.   AMIGA FUNCTION
  2496.  
  2497.  
  2498. pexec.library/pOS_FreePoolVec
  2499.  
  2500.   SYNOPSIS
  2501.     VOID pOS_FreePoolVec
  2502.       (
  2503.         pOS_ExecBase *execbase,
  2504.         pOS_MemPool *mempool,
  2505.         __ARID__ APTR mem
  2506.       );
  2507.  
  2508.   FUNCTION
  2509.     Freigeben eines Speicherbereichs innerhalb eines privaten
  2510.     Speicher-Pools
  2511.  
  2512.   INPUT
  2513.     execbase (_R_LB)
  2514.       Zeiger auf pExec-Library
  2515.     mempool (_R_A0)
  2516.       Zeiger auf den privaten MemPool-Verwalter
  2517.     mem (_R_A1)
  2518.       Adresse des freizugebenden Speicherbereichs, der mittels
  2519.       pOS_AllocPoolVec() reserviert wurde
  2520.  
  2521.   SEE ALSO
  2522.     pOS_AllocPoolVec(), pOS_FreePoolAll()
  2523.  
  2524.   AMIGA FUNCTION
  2525.  
  2526.  
  2527. pexec.library/pOS_CopyMem
  2528.  
  2529.   SYNOPSIS
  2530.     VOID pOS_CopyMem
  2531.       (
  2532.         pOS_ExecBase *execbase,
  2533.         const APTR source,
  2534.         APTR dest,
  2535.         size_t size
  2536.       );
  2537.  
  2538.   FUNCTION
  2539.     Kopieren eines Speicherbereichs
  2540.  
  2541.   INPUT
  2542.     execbase (_R_LB)
  2543.       Zeiger auf pExec-Library
  2544.     source(_R_A0)
  2545.       Start-Adresse des zu kopierenden Bereichs
  2546.     dest (_R_A1)
  2547.       Ziel-Adresse für das Kopieren
  2548.     size (_R_D0)
  2549.       Größe des zu kopierenden Speicherbereichs
  2550.  
  2551.   AMIGA FUNCTION
  2552.     VOID CopyMem(APTR source, APTR dest, ULONG size);
  2553.  
  2554.  
  2555. pexec.library/pOS_AddMemHandler
  2556.  
  2557.   SYNOPSIS
  2558.     VOID pOS_AddMemHandler
  2559.       (
  2560.         pOS_ExecBase *execbase,
  2561.         pOS_Callback *callback
  2562.       );
  2563.  
  2564.   FUNCTION
  2565.     Hinzufügen eines Speicher-Handlers zum System
  2566.  
  2567.   INPUT
  2568.     execbase (_R_LB)
  2569.       Zeiger auf pExec-Library
  2570.     callback (_R_A0)
  2571.       Zeiger auf den Callback, der den Speicher-Handler beschreibt.
  2572.  
  2573.   SEE ALSO
  2574.     pOS_RemMemHandler()
  2575.  
  2576.   AMIGA FUNCTION
  2577.     VOID AddMemHandler(struct Interrupt *);
  2578.  
  2579.  
  2580. pexec.library/pOS_RemMemHandler
  2581.  
  2582.   SYNOPSIS
  2583.     VOID pOS_RemMemHandler
  2584.       (
  2585.         pOS_ExecBase *execbase,
  2586.         pOS_Callback *callback
  2587.       );
  2588.  
  2589.   FUNCTION
  2590.     Entfernen eines (eigenen) Speicher-Handlers aus dem System
  2591.  
  2592.   INPUT
  2593.     execbase (_R_LB)
  2594.       Zeiger auf pExec-Library
  2595.     callback (_R_A0)
  2596.       Zeiger auf den Callback, der den Speicher-Handler beschreibt.
  2597.  
  2598.   SEE ALSO
  2599.     pOS_AddMemHandler()
  2600.  
  2601.   AMIGA FUNCTION
  2602.     VOID RemMemHandler(struct Interrupt *);
  2603.  
  2604. /******************************************************************************/
  2605.  
  2606. pexec.library/pOS_InitSemaphore
  2607.  
  2608.   SYNOPSIS
  2609.     VOID pOS_InitSemaphore
  2610.       (
  2611.         pOS_ExecBase *execbase,
  2612.         pOS_Semaphore *semaphore
  2613.       );
  2614.  
  2615.   FUNCTION
  2616.     Installieren einer Semaphore-Struktur
  2617.  
  2618.   INPUT
  2619.     execbase (_R_LB)
  2620.       Zeiger auf pExec-Library
  2621.     semaphore (_R_A0)
  2622.       Zeiger auf die zu installierende Semaphore-Struktur.
  2623.  
  2624.   NOTE
  2625.     Im Feld semaphore->ss_Link.ln_Name kann ein beliebiger Name
  2626.     eingetragen werden, wodurch die Semaphore über pOS_FindSemaphore()
  2627.     gefunden werden kann.
  2628.  
  2629.     Im Debugmodus wird bei Semaphorefehlern zusätzlich der Eintrag
  2630.     semaphore->ss_Link.ln_Name mit ausgegeben.
  2631.  
  2632.   SEE ALSO
  2633.     pOS_ObtainSemaphore(), pOS_AttemptSemaphore(),
  2634.     pOS_ObtainSemaphoreShared(), pOS_AddSemaphore()
  2635.  
  2636.   AMIGA FUNCTION
  2637.     VOID InitSemaphore(struct SignalSemaphore *semaphore);
  2638.  
  2639.  
  2640. pexec.library/pOS_ObtainSemaphore
  2641.  
  2642.   SYNOPSIS
  2643.     VOID pOS_ObtainSemaphore
  2644.       (
  2645.         pOS_ExecBase *execbase,
  2646.         pOS_Semaphore *semaphore
  2647.       );
  2648.  
  2649.   FUNCTION
  2650.     Sperren einer Semaphore für exclusiven Zugriff
  2651.  
  2652.   INPUT
  2653.     execbase (_R_LB)
  2654.       Zeiger auf pExec-Library
  2655.     semaphore (_R_A0)
  2656.       Zeiger auf die installierte Semaphore
  2657.  
  2658.   NOTE
  2659.     Ist in semaphore->ss_Flags das Flag SEMF_TPEnqueue gesetzt und
  2660.     wollen mehrere Task die Semaphore locken, wird entsprechend
  2661.     der Taskpriorität, der Task mit der höchsten Priorität bevorzugt.
  2662.  
  2663.     Die Funktion wartet solange, bis die Semaphore exclusiv reserviert
  2664.     werden kann. Der gleiche Task kann diese Funktion mehrfach auf-
  2665.     rufen, wobei sofort zurückgekehrt wird.
  2666.  
  2667.   SEE ALSO
  2668.     pOS_ReleaseSemaphore()
  2669.  
  2670.   AMIGA FUNCTION
  2671.     VOID ObtainSemaphore(struct SignalSemaphore *semaphore);
  2672.  
  2673.  
  2674. pexec.library/pOS_ReleaseSemaphore
  2675.  
  2676.   SYNOPSIS
  2677.     VOID pOS_ReleaseSemaphore
  2678.       (
  2679.         pOS_ExecBase *execbase,
  2680.         pOS_Semaphore *semaphore
  2681.       );
  2682.  
  2683.   FUNCTION
  2684.     Aufheben einer Semaphore-Sperre
  2685.  
  2686.   INPUT
  2687.     execbase (_R_LB)
  2688.       Zeiger auf pExec-Library
  2689.     semaphore (_R_A0)
  2690.       Zeiger auf die gesperrte Semaphore
  2691.  
  2692.   SEE ALSO
  2693.     pOS_ObtainSemaphore(), pOS_ObtainSemaphoreShared(),
  2694.     pOS_AttemptSemaphore()
  2695.  
  2696.   AMIGA FUNCTION
  2697.     VOID ReleaseSemaphore(struct SignalSemaphore *semaphore);
  2698.  
  2699.  
  2700. pexec.library/pOS_AttemptSemaphore
  2701.  
  2702.   SYNOPSIS
  2703.     BOOL pOS_AttemptSemaphore
  2704.       (
  2705.         pOS_ExecBase *execbase,
  2706.         pOS_Semaphore *semaphore
  2707.       );
  2708.  
  2709.   FUNCTION
  2710.     Versuch der Sperrung einer Semaphore für den exclusiven Zugriff.
  2711.  
  2712.   INPUT
  2713.     execbase (_R_LB)
  2714.       Zeiger auf pExec-Library
  2715.     semaphore (_R_A0)
  2716.       Zeiger auf die installierte Semaphore
  2717.  
  2718.   RESULT
  2719.     res (_R_D0)
  2720.       TRUE wenn die Semaphore für den exclusiven Zugriff
  2721.       gesperrt wurde. Dann muß die Sperrung mittels pOS_ReleaseSemaphore()
  2722.       wieder aufgehoben werden.
  2723.       FALSE wenn die Semaphore schon von einem anderen Task gesperrt ist
  2724.  
  2725.   SEE ALSO
  2726.     pOS_ReleaseSemaphore(), pOS_ObtainSemaphore(), pOS_AttemptTimeSemaphore()
  2727.  
  2728.   AMIGA FUNCTION
  2729.     LONG AttemptSemaphore(struct SignalSemaphore *semaphore);
  2730.  
  2731.  
  2732. pexec.library/pOS_ObtainSemaphoreShared
  2733.  
  2734.   SYNOPSIS
  2735.     VOID pOS_ObtainSemaphoreShared
  2736.       (
  2737.         pOS_ExecBase *execbase,
  2738.         pOS_Semaphore *semaphore
  2739.       );
  2740.  
  2741.   FUNCTION
  2742.     Sperren einer Semaphore für nichtexclusiven Zugriff.
  2743.  
  2744.   INPUT
  2745.     execbase (_R_LB)
  2746.       Zeiger auf pExec-Library
  2747.     semaphore (_R_A0)
  2748.       Zeiger auf die installierte Semaphore
  2749.  
  2750.   SEE ALSO
  2751.     pOS_ReleaseSemaphore(), pOS_ObtainSemaphore(),
  2752.     pOS_AttemptSemaphore()
  2753.  
  2754.   AMIGA FUNCTION
  2755.     VOID ObtainSemaphoreShared(struct SignalSemaphore *semaphore);
  2756.  
  2757.  
  2758. pexec.library/pOS_ObtainSemaphoreList
  2759.  
  2760.   SYNOPSIS
  2761.     VOID pOS_ObtainSemaphoreList
  2762.       (
  2763.         pOS_ExecBase *execbase,
  2764.         pOS_ExList *list
  2765.       );
  2766.  
  2767.   FUNCTION
  2768.     Sperren mehrerer Semaphoren für exclusiven Zugriff
  2769.  
  2770.   INPUT
  2771.     execbase (_R_LB)
  2772.       Zeiger auf pExec-Library
  2773.     list (_R_A0)
  2774.       Zeiger auf die installierte Liste mit den zu sperrenden
  2775.       Semaphoren
  2776.  
  2777.   NOTE
  2778.     Die Funktion kehrt erst dann zurück, wenn alle Semaphoren aus
  2779.     der Liste gesperrt werden konnten.
  2780.  
  2781.   SEE ALSO
  2782.     pOS_ReleaseSemaphoreList()
  2783.  
  2784.   AMIGA FUNCTION
  2785.     VOID ObtainSemaphoreList(struct List *list);
  2786.  
  2787.  
  2788. pexec.library/pOS_ReleaseSemaphoreList
  2789.  
  2790.   SYNOPSIS
  2791.     VOID pOS_ReleaseSemaphoreList
  2792.       (
  2793.         pOS_ExecBase *execbase,
  2794.         pOS_ExList *list
  2795.       );
  2796.  
  2797.   FUNCTION
  2798.     Aufheben mehrerer Semaphore-Sperren
  2799.  
  2800.   INPUT
  2801.     execbase (_R_LB)
  2802.       Zeiger auf pExec-Library
  2803.     list (_R_A0)
  2804.       Zeiger auf die Liste mit den gesperrten Semaphoren
  2805.  
  2806.   SEE ALSO
  2807.     pOS_ObtainSemaphoreList()
  2808.  
  2809.   AMIGA FUNCTION
  2810.     VOID ReleaseSemaphoreList(struct List *list);
  2811.  
  2812.  
  2813. pexec.library/pOS_FindSemaphore
  2814.  
  2815.   SYNOPSIS
  2816.     pOS_Semaphore *res = pOS_FindSemaphore
  2817.       (
  2818.         pOS_ExecBase *execbase,
  2819.         const CHAR *name
  2820.       );
  2821.  
  2822.   FUNCTION
  2823.     Suchen einer Semaphore in der Systemliste anhand des Namens
  2824.  
  2825.   INPUT
  2826.     execbase (_R_LB)
  2827.       Zeiger auf pExec-Library
  2828.     name (_R_A0)
  2829.       Name der Semaphore, nach der gesucht werden soll.
  2830.  
  2831.   RESULT
  2832.     res (_R_D0)
  2833.       Zeiger auf die gefundene Semaphore,
  2834.       oder NULL wenn keine entsprechende Semaphore in der Systemliste
  2835.       vorhanden ist.
  2836.  
  2837.   SEE ALSO
  2838.     pOS_AttemptSemaphore(), pOS_ObtainSemaphore(),
  2839.     pOS_ObtainSemaphoreShared()
  2840.  
  2841.   AMIGA FUNCTION
  2842.     struct SignalSemaphore *FindSemaphore(STRPTR name);
  2843.  
  2844.  
  2845. pexec.library/pOS_AddSemaphore
  2846.  
  2847.   SYNOPSIS
  2848.     VOID pOS_AddSemaphore
  2849.       (
  2850.         pOS_ExecBase *execbase,
  2851.         pOS_Semaphore *semaphore
  2852.       );
  2853.  
  2854.   FUNCTION
  2855.     Einfügen einer Semaphore in die Systemliste
  2856.  
  2857.   INPUT
  2858.     execbase (_R_LB)
  2859.       Zeiger auf pExec-Library
  2860.     semaphore (_R_A0)
  2861.       Zeiger auf die einzufügende Semaphore
  2862.       Im Feld semaphore->ss_Link.ln_Name kann der Name der Semaphore
  2863.       angegeben werden.
  2864.  
  2865.   SEE ALSO
  2866.     pOS_RemSemaphore(), pOS_FindSemaphore()
  2867.  
  2868.   AMIGA FUNCTION
  2869.     VOID AddSemaphore(struct SignalSemaphore *semaphore);
  2870.  
  2871.  
  2872. pexec.library/pOS_RemSemaphore
  2873.  
  2874.   SYNOPSIS
  2875.     VOID pOS_RemSemaphore
  2876.       (
  2877.         pOS_ExecBase *execbase,
  2878.         pOS_Semaphore *semaphore
  2879.       );
  2880.  
  2881.   FUNCTION
  2882.     Entfernen einer Semaphore aus der Systemliste
  2883.  
  2884.   INPUT
  2885.     execbase (_R_LB)
  2886.       Zeiger auf pExec-Library
  2887.     semaphore (_R_A0)
  2888.       Zeiger auf die zu entferndende Semaphore
  2889.  
  2890.   SEE ALSO
  2891.     pOS_AddSemaphore(), pOS_FindSemaphore()
  2892.  
  2893.   AMIGA FUNCTION
  2894.     VOID RemSemaphore(struct SignalSemaphore *semaphore);
  2895.  
  2896.  
  2897. pexec.library/pOS_ProcureSemaphore
  2898.  
  2899.   SYNOPSIS
  2900.     VOID pOS_ProcureSemaphore
  2901.       (
  2902.         pOS_ExecBase *execbase,
  2903.         pOS_Semaphore *semaphore,
  2904.         pOS_Message *message
  2905.       );
  2906.  
  2907.   FUNCTION
  2908.     Asynchrones Sperren einer Semaphore für exclusiven
  2909.     Zugriff. Der Task wird dabei nicht angehalten.
  2910.  
  2911.   INPUT
  2912.     execbase (_R_LB)
  2913.       Zeiger auf pExec-Library
  2914.     semaphore (_R_A0)
  2915.       Zeiger auf die installierte Semaphore
  2916.     message (_R_A1)
  2917.       Message, die zurückgeschickt wird, wenn die Signal-
  2918.       Semaphore gesperrt wurde.
  2919.  
  2920.   EXAMPLE
  2921.     {
  2922.       extern pOS_Semaphore *Semaphore;
  2923.       pOS_Message Message;
  2924.       pOS_MsgPort MsgPort;
  2925.  
  2926.       ww_InitNode(&Message.mn_Node);
  2927.       pOS_ConstructMsgPort(&MsgPort);
  2928.       Message.mn_ReplyPort=&MsgPort;
  2929.       ...
  2930.       /* Semaphore asynchron anfordern */
  2931.       pOS_ProcureSemaphore(Semaphore,&Message);
  2932.       ...
  2933.       ... do something
  2934.       ...
  2935.  
  2936.       /* Abbruch des asynchronen Semaphore-Locken */
  2937.       if(...) pOS_VacateSemaphore(Semaphore,&Message);
  2938.       else {
  2939.         /* Warten bis Semaphore gesperrt ist */
  2940.         pOS_WaitPort(&MsgPort);
  2941.         /* ReplyPort leeren: Semaphore-Nachricht */
  2942.         pOS_GetMsg(&MsgPort);
  2943.         ...
  2944.         ...
  2945.         /* Semaphore wieder freigeben */
  2946.         /* pOS_ReleaseSemaphore() ist ebenfalls möglich */
  2947.         pOS_VacateSemaphore(Semaphore,&Message);
  2948.       }
  2949.       ...
  2950.       pOS_DestructMsgPort(&MsgPort);
  2951.     }
  2952.  
  2953.   SEE ALSO
  2954.     pOS_ObtainSemaphore(), pOS_ReleaseSemaphore(),
  2955.     pOS_VacateSemaphore()
  2956.  
  2957.   AMIGA FUNCTION
  2958.  
  2959.  
  2960. pexec.library/pOS_VacateSemaphore
  2961.  
  2962.   SYNOPSIS
  2963.     VOID pOS_VacateSemaphore
  2964.       (
  2965.         pOS_ExecBase *execbase,
  2966.         pOS_Semaphore *semaphore,
  2967.         pOS_Message *message
  2968.       );
  2969.  
  2970.   FUNCTION
  2971.     Abbrechen einer asynchronen Semaphore-Anforderung oder
  2972.     Aufheben der bestehenden Semaphore-Sperre.
  2973.  
  2974.   INPUT
  2975.     execbase (_R_LB)
  2976.       Zeiger auf pExec-Library
  2977.     semaphore (_R_A0)
  2978.       Zeiger auf die installierte Semaphore
  2979.     message (_R_A1)
  2980.       Message die an pOS_ProcureSemaphore() übergeben wurde
  2981.  
  2982.   SEE ALSO
  2983.     pOS_ProcureSemaphore()
  2984.  
  2985.   AMIGA FUNCTION
  2986.  
  2987.  
  2988. pexec.library/pOS_AttemptProcureSemaphore
  2989.  
  2990.   SYNOPSIS
  2991.     BOOL res = pOS_AttemptProcureSemaphore
  2992.       (
  2993.         pOS_ExecBase *execbase,
  2994.         pOS_Semaphore *semaphore,
  2995.         pOS_Message *message
  2996.       );
  2997.  
  2998.   FUNCTION
  2999.     Versuch der sofortigen Sperrung einer Semaphore für
  3000.     den exclusiven Zugriff. Ist das nicht möglich, wird die
  3001.     Semaphore asynchron gesperrt.
  3002.  
  3003.   INPUT
  3004.     execbase (_R_LB)
  3005.       Zeiger auf pExec-Library
  3006.     semaphore (_R_A0)
  3007.       Zeiger auf die installierte Semaphore
  3008.     message (_R_A1)
  3009.       Message, die zurückgeschickt wird, wenn die Signal-
  3010.       Semaphore gesperrt wurde.
  3011.  
  3012.   RESULT
  3013.     res (_R_D0)
  3014.       TRUE wenn die Semaphore sofort gesperrt werden konnte
  3015.       (entspricht pOS_ObtainSemaphore()-Verhalten),
  3016.       sonst FALSE, dann wird die Semaphore asynchron gesperrt
  3017.       (entspricht pOS_ProcureSemaphore()-Verhalten).
  3018.       Bei TRUE wird KEINE Nachricht zurückgesendet !!!
  3019.  
  3020.   SEE ALSO
  3021.     pOS_ProcureSemaphore(), pOS_VacateSemaphore()
  3022.  
  3023.   AMIGA FUNCTION
  3024.  
  3025.  
  3026. pexec.library/pOS_AttemptTimeSemaphore
  3027.  
  3028.   SYNOPSIS
  3029.     BOOL res = pOS_AttemptTimeSemaphore
  3030.       (
  3031.         pOS_ExecBase *execbase,
  3032.         pOS_Semaphore *semaphore,
  3033.         ULONG micros
  3034.       );
  3035.  
  3036.   FUNCTION
  3037.     Versuch der Sperrung einer Semaphore für den exclusiven Zugriff.
  3038.     Falls die Semaphore noch von anderen Task benutzt wird, wird
  3039.     max. micros gewartet und dann die Funktion abgebrochen.
  3040.  
  3041.   INPUT
  3042.     execbase (_R_LB)
  3043.       Zeiger auf pExec-Library
  3044.     semaphore (_R_A0)
  3045.       Zeiger auf die installierte Semaphore
  3046.     micros (_R_D0)
  3047.       Maximale Wartezeit in Mikrosekunden, wenn die Semaphore im
  3048.       Moment noch von anderen Tasks benutzt wird.
  3049.  
  3050.   RESULT
  3051.     res (_R_D0)
  3052.       TRUE wenn die Semaphore für den exclusiven Zugriff
  3053.       gesperrt wurde. Dann muß die Sperrung mittels pOS_ReleaseSemaphore()
  3054.       wieder aufgehoben werden.
  3055.       FALSE wenn andere Task die Semaphore noch benutzen.
  3056.  
  3057.   SEE ALSO
  3058.     pOS_AttemptSemaphore(), pOS_ReleaseSemaphore()
  3059.  
  3060.   AMIGA FUNCTION
  3061.  
  3062.  
  3063. pexec.library/pOS_AddSemaphoreQR
  3064.  
  3065.   SYNOPSIS
  3066.     VOID pOS_AddSemaphoreQR
  3067.       (
  3068.         pOS_ExecBase *execbase,
  3069.         pOS_Semaphore *semaphore,
  3070.         pOS_Message *message
  3071.       );
  3072.  
  3073.   FUNCTION
  3074.     Installieren einer Benachrichtigung, wenn ein anderer Task
  3075.     die angegebene Semaphore locken möchte.
  3076.  
  3077.   INPUT
  3078.     execbase (_R_LB)
  3079.       Zeiger auf pExec-Library
  3080.     semaphore (_R_A0)
  3081.       Zeiger auf die installierte Semaphore
  3082.     message (_R_A1)
  3083.       Message, die an den Aufrufer zurückgeschickt wird, wenn
  3084.       ein anderer Task die Semaphore locken möchte.
  3085.  
  3086.   EXAMPLE
  3087.     /* Message und Port vorbereiten */
  3088.  
  3089.     pOS_MsgPort msgport;
  3090.     pOS_ConstructMsgPort(&msgport);
  3091.     struct pOS_Message msg={ {NULL,NULL,NTYP_MESSAGE,0,NULL},&msgport};
  3092.  
  3093.     /* Semaphore normal besorgen */
  3094.     pOS_Semaphore sema;
  3095.     pOS_InitSemaphore(&sema);
  3096.  
  3097.     /* ... */
  3098.  
  3099.     pOS_ObtainSemaphore(&sema);
  3100.     pOS_AddSemaphoreQR(&sema,&msg);
  3101.  
  3102.     for(i=0; i<100; i++)
  3103.     {
  3104.       /* ... */
  3105.  
  3106.       /* prüfen, ob jemand die Semaphore locken möchte */
  3107.       if(pOS_GetMsg(&msgport)
  3108.       {
  3109.         /* die Semaphore freigeben */
  3110.         pOS_RemSemaphoreQR(&sema,&msg);
  3111.         pOS_ReleaseSemaphore(&sema);
  3112.           /* anderen Task reinlassen */
  3113.         pOS_ObtainSemaphore(&sema);
  3114.         pOS_AddSemaphoreQR(&sema,&msg);
  3115.       }
  3116.     }
  3117.  
  3118.     /* Semaphore wieder freigeben */
  3119.     pOS_RemSemaphoreQR(&sema,&msg);
  3120.     pOS_ReleaseSemaphore(&sema);
  3121.  
  3122.     /* Message und Port freigeben */
  3123.     pOS_GetMsg(&msgport);
  3124.     pOS_DestructMsgPort(&msgport);
  3125.  
  3126.   SEE ALSO
  3127.     pOS_RemSemaphoreQR()
  3128.  
  3129.   AMIGA FUNCTION
  3130.  
  3131.  
  3132. pexec.library/pOS_RemSemaphoreQR
  3133.  
  3134.   SYNOPSIS
  3135.     VOID pOS_RemSemaphoreQR
  3136.       (
  3137.         pOS_ExecBase *execbase,
  3138.         pOS_Semaphore *semaphore,
  3139.         pOS_Message *message
  3140.       );
  3141.  
  3142.   FUNCTION
  3143.     Entfernen einer Benachrichtigung, die mittels pOS_AddSemaphoreQR()
  3144.     installiert wurde.
  3145.  
  3146.   INPUT
  3147.     execbase (_R_LB)
  3148.       Zeiger auf pExec-Library
  3149.     semaphore (_R_A0)
  3150.       Zeiger auf die installierte Semaphore
  3151.     message (_R_A1)
  3152.       Message-Zeiger, wie bei pOS_AddSemaphoreQR()
  3153.  
  3154.   SEE ALSO
  3155.     pOS_AddSemaphoreQR()
  3156.  
  3157.   AMIGA FUNCTION
  3158.  
  3159.  
  3160. pexec.library/pOS_IsObtainSemaphore
  3161.  
  3162.   SYNOPSIS
  3163.     BOOL res = pOS_IsObtainSemaphore
  3164.       (
  3165.         pOS_ExecBase *execbase,
  3166.         pOS_Semaphore *semaphore
  3167.       );
  3168.  
  3169.   FUNCTION
  3170.     Prüfen, ob eine Semaphore vom aktuelles Task bereits gesperrt ist.
  3171.  
  3172.   INPUT
  3173.     execbase (_R_LB)
  3174.       Zeiger auf pExec-Library
  3175.     semaphore (_R_A0)
  3176.       Zeiger auf die installierte Semaphore
  3177.  
  3178.   RESULT
  3179.     res (_R_D0)
  3180.       TRUE wenn die angegebene Semaphore bereits gesperrt wurde, sonst FALSE.
  3181.  
  3182.   SEE ALSO
  3183.  
  3184.   AMIGA FUNCTION
  3185.  
  3186.  
  3187. pexec.library/pOS_AttemptSemaphoreShared
  3188.  
  3189.   SYNOPSIS
  3190.     BOOL res = pOS_AttemptSemaphoreShared
  3191.       (
  3192.         pOS_ExecBase *execbase,
  3193.         pOS_Semaphore *semaphore
  3194.       );
  3195.  
  3196.   FUNCTION
  3197.     Versuch der Sperrung einer Semaphore für den nichtexclusiven Zugriff.
  3198.  
  3199.   INPUT
  3200.     execbase (_R_LB)
  3201.       Zeiger auf pExec-Library
  3202.     semaphore (_R_A0)
  3203.       Zeiger auf die installierte Semaphore
  3204.  
  3205.   RESULT
  3206.     res (_R_D0)
  3207.       TRUE, wenn die Semaphore gesperrt werden konnte;
  3208.       sonst FALSE.
  3209.  
  3210.   SEE ALSO
  3211.     pOS_ProcureSemaphoreShared(), pOS_AttemptTimeSemaphoreShared()
  3212.  
  3213.   AMIGA FUNCTION
  3214.  
  3215.  
  3216. pexec.library/pOS_ProcureSemaphoreShared
  3217.  
  3218.   SYNOPSIS
  3219.     VOID pOS_ProcureSemaphoreShared
  3220.       (
  3221.         pOS_ExecBase *execbase,
  3222.         pOS_Semaphore *semaphore,
  3223.         pOS_Message *message
  3224.       );
  3225.  
  3226.   FUNCTION
  3227.     Asynchrones Sperren einer Semaphore für nichtexclusiven
  3228.     Zugriff. Der Task wird dabei nicht angehalten.
  3229.  
  3230.   INPUT
  3231.     execbase (_R_LB)
  3232.       Zeiger auf pExec-Library
  3233.     semaphore (_R_A0)
  3234.       Zeiger auf die installierte Semaphore
  3235.     message (_R_A1)
  3236.       Message, die zurückgeschickt wird, wenn die Signal-
  3237.       Semaphore gesperrt wurde.
  3238.  
  3239.   SEE ALSO
  3240.     pOS_AttemptSemaphoreShared()
  3241.  
  3242.   AMIGA FUNCTION
  3243.  
  3244.  
  3245. pexec.library/pOS_AttemptTimeSemaphoreShared
  3246.  
  3247.   SYNOPSIS
  3248.     BOOL res = pOS_AttemptTimeSemaphoreShared
  3249.       (
  3250.         pOS_ExecBase *execbase,
  3251.         pOS_Semaphore *semaphore,
  3252.         ULONG micros
  3253.       );
  3254.  
  3255.   FUNCTION
  3256.     Versuch der Sperrung einer Semaphore für den nichtexclusiven Zugriff.
  3257.     Falls die Semaphore noch von anderen Task exclusiv benutzt wird, wird
  3258.     max. micros gewartet und dann die Funktion abgebrochen.
  3259.  
  3260.   INPUT
  3261.     execbase (_R_LB)
  3262.       Zeiger auf pExec-Library
  3263.     semaphore (_R_A0)
  3264.       Zeiger auf die installierte Semaphore
  3265.     micros (_R_D0)
  3266.       Maximale Wartezeit in Mikrosekunden, wenn die Semaphore im
  3267.       Moment noch von anderen Tasks exclusiv gelockt ist.
  3268.  
  3269.   RESULT
  3270.     res (_R_D0)
  3271.       TRUE wenn die Semaphore für den nichtexclusiven Zugriff
  3272.       gesperrt wurde. Dann muß die Sperrung mittels pOS_ReleaseSemaphore()
  3273.       wieder aufgehoben werden.
  3274.       FALSE wenn andere Task die Semaphore noch exclusiv benutzen.
  3275.  
  3276.   SEE ALSO
  3277.     pOS_ProcureSemaphoreShared()
  3278.  
  3279.   AMIGA FUNCTION
  3280.  
  3281.  
  3282. pexec.library/pOS_DisplayAlert
  3283.  
  3284.   SYNOPSIS
  3285.     VOID pOS_DisplayAlert
  3286.       (
  3287.         pOS_ExecBase *execbase,
  3288.         ULONG alertnummer
  3289.       );
  3290.  
  3291.   FUNCTION
  3292.     Darstellen einer Warnmeldung
  3293.  
  3294.   INPUT
  3295.     execbase (_R_LB)
  3296.       Zeiger auf pExec-Library
  3297.     alertnummer (_R_D0) (enum pOS_Alerts)
  3298.       Nummer der Warnmeldung, vordefinierte Fehlernummern
  3299.       sind in der Datei "pExec/Diagnos.h" nachzulesen.
  3300.       Nummern ab 0x35000000 stehen für Programmeigene
  3301.       Fehlernummern zur Verfügung.
  3302.  
  3303.   SEE ALSO
  3304.  
  3305.   AMIGA FUNCTION
  3306.     VOID Alert(ULONG alertnummer);
  3307.  
  3308.  
  3309. pexec.library/pOS_ExecCheckA
  3310.  
  3311.   SYNOPSIS
  3312.     BOOL res = pOS_ExecCheckA
  3313.       (
  3314.         pOS_ExecBase *execbase,
  3315.         const pOS_TagItem *taglist
  3316.       );
  3317.  
  3318.   FUNCTION
  3319.     Prüfen oder Erfragen der Systemumgebung.
  3320.  
  3321.   INPUT
  3322.     execbase (_R_LB)
  3323.       Zeiger auf pExec-Library
  3324.     taglist (_R_A0)
  3325.       EXTSTTAG_CPU      : prüft, ob die gewünschte CPU verfügbar ist
  3326.       EXTSTTAG_FPU      : prüft, ob die gewünschte FPU verfügbar ist
  3327.       EXTSTTAG_MainOSID : prüft, ob die gewünschte pOS-Version läuft
  3328.  
  3329.       EXTSTTAG_GetCPU   : liefert die vorhandene CPU-Kennung
  3330.       EXTSTTAG_GetFPU   : liefert die vorhandene FPU-Kennung
  3331.  
  3332.   RESULT
  3333.     res (_R_D0)
  3334.       TRUE wenn die Abfrage zutrifft, sonst FALSE.
  3335.       Es sollten keine Prüfungen mit Werteermittlungen kombiniert
  3336.       werden, da der Rückgabewert dann undefiniert ist.
  3337.  
  3338.   EXAMPLE
  3339.     const struct pOS_TagItem taglist[]=
  3340.     {
  3341.       EXTSTTAG_MainOSID, pOS_MAINOSID,
  3342.       TAG_END
  3343.     };
  3344.  
  3345.     if(pOS_ExecCheckA(taglist))
  3346.     {
  3347.       /* ... Programmcode ... */
  3348.     }
  3349.     /* else falsche pOS-Version */
  3350.  
  3351.   SEE ALSO
  3352.  
  3353.   AMIGA FUNCTION
  3354.  
  3355.  
  3356. pexec.library/pOS_FindResident
  3357.  
  3358.   SYNOPSIS
  3359.     pOS_Resident *res = pOS_FindResident
  3360.       (
  3361.         pOS_ExecBase *execbase,
  3362.         const CHAR *name
  3363.       );
  3364.  
  3365.   FUNCTION
  3366.     Suchen eines residenten Moduls über seinen Namen in der Systemliste
  3367.  
  3368.   INPUT
  3369.     execbase (_R_LB)
  3370.       Zeiger auf pExec-Library
  3371.     name (_R_A0)
  3372.       Name des zu suchenden Moduls
  3373.  
  3374.   RESULT
  3375.     res (_R_D0)
  3376.       Zeiger auf das gefundene Resident-Modul,
  3377.       oder NULL wenn kein entsprechendes Modul existiert.
  3378.  
  3379.   SEE ALSO
  3380.     pOS_InitResident()
  3381.  
  3382.   AMIGA FUNCTION
  3383.     struct Residnet *FindResident(STRPTR name);
  3384.  
  3385.  
  3386. pexec.library/pOS_InitResident
  3387.  
  3388.   SYNOPSIS
  3389.     APTR res = pOS_InitResident
  3390.       (
  3391.         pOS_ExecBase *execbase,
  3392.         const pOS_Resident *resident,
  3393.         pOS_SegmentLst *segmentlist
  3394.       );
  3395.  
  3396.   FUNCTION
  3397.     Installieren eines residenten Modules
  3398.  
  3399.   INPUT
  3400.     execbase (_R_LB)
  3401.       Zeiger auf pExec-Library
  3402.     resident (_R_A0)
  3403.       Zeiger auf die zu installierende Resident-Struktur
  3404.     segmentlist (_R_A1)
  3405.       Zeiger auf die Segmentliste des zu ladenden Objekts;
  3406.  
  3407.   RESULT
  3408.     res (_R_D0)
  3409.       Rückgabewert der Installierungsfunktion.
  3410.       Diese hängt vom installierten Modul ab; normalerweise
  3411.       der Zeiger auf eine Library- oder Device-Struktur.
  3412.       NULL im Fehlerfall.
  3413.  
  3414.   SEE ALSO
  3415.     pOS_FindResident()
  3416.  
  3417.   AMIGA FUNCTION
  3418.     APTR InitResident(struct Resident *resident, BPTR segmentlist);
  3419.  
  3420. /******************************************************************************/
  3421.  
  3422. pexec.library/pOS_OpenDevice
  3423.  
  3424.   SYNOPSIS
  3425.     SBYTE res = pOS_OpenDevice
  3426.       (
  3427.         pOS_ExecBase *execbase,
  3428.         const CHAR *name,
  3429.         ULONG unit,
  3430.         pOS_IORequest *iorequest,
  3431.         ULONG flags,
  3432.         ULONG version
  3433.       );
  3434.  
  3435.   FUNCTION
  3436.     Öffnen eines Devices zur Benutzung
  3437.  
  3438.     Suchvorgang:
  3439.       - interne Liste der Devices
  3440.       - CurrentDir/devs/...
  3441.       - CurrentDir/...
  3442.       - ProgDir:devs/...
  3443.       - ProgDir:...
  3444.       - DEVS:...
  3445.  
  3446.   INPUT
  3447.     execbase (_R_LB)
  3448.       Zeiger auf pExec-Library
  3449.     name (_R_A0)
  3450.       Name des zu öffnenden Devices
  3451.     unit (_R_D0)
  3452.       Unit-Nummer des zu öffnenden Devices
  3453.     iorequest (_R_A1)
  3454.       Zeiger auf die installierte IORequest-Struktur
  3455.     flags (_R_D1)
  3456.       Devicespezifische Flags
  3457.     version (_R_D2)
  3458.       minimale Versionsnummer des zu öffnenden Devices;
  3459.       0 für ein beliebiges Device
  3460.  
  3461.   RESULT
  3462.     res (_R_D0)
  3463.       0 wenn das Device offen ist. Dann kann der Device-Basiszeiger
  3464.       aus iorequest->io_Device ausgelesen werden;
  3465.       sonst eine devicespezifische Fehlernummer, welche auch aus
  3466.       iorequest->io_Error ausgelesen werden kann.
  3467.  
  3468.   NOTE
  3469.     Die genauen Daten (name, unit, iorequest, flags) können in
  3470.     den einzelnen Device-Beschreibungen nachgelesen werden.
  3471.  
  3472.   SEE ALSO
  3473.     pOS_CloseDevice(), pOS_AddDevice(), pOS_BeginIO(), pOS_SendIO(),
  3474.     pOS_DoIO()
  3475.  
  3476.   AMIGA FUNCTION
  3477.     LONG OpenDevice(STRPTR name, ULONG unit, struct IORequest *iorequest, ULONG flags);
  3478.  
  3479.  
  3480. pexec.library/pOS_CloseDevice
  3481.  
  3482.   SYNOPSIS
  3483.     VOID pOS_CloseDevice
  3484.       (
  3485.         pOS_ExecBase *execbase,
  3486.         pOS_IORequest *iorequest
  3487.       );
  3488.  
  3489.   FUNCTION
  3490.     Schließen eines Devices
  3491.  
  3492.   INPUT
  3493.     execbase (_R_LB)
  3494.       Zeiger auf pExec-Library
  3495.     iorequest (_R_A0)
  3496.       Zeiger auf die installierte IORequest-Struktur des zu
  3497.       schließenden Devices.
  3498.  
  3499.   SEE ALSO
  3500.     pOS_OpenDevice(), pOS_RemDevice(), pOS_CheckIO(), pOS_WaitIO(),
  3501.     pOS_AbortIO()
  3502.  
  3503.   AMIGA FUNCTION
  3504.     VOID CloseDevice(struct Device *device);
  3505.  
  3506.  
  3507. pexec.library/pOS_DoIO
  3508.  
  3509.   SYNOPSIS
  3510.     SBYTE res = pOS_DoIO
  3511.       (
  3512.         pOS_ExecBase *execbase,
  3513.         pOS_IORequest *iorequest
  3514.       );
  3515.  
  3516.   FUNCTION
  3517.     Synchrones Ausführen eines Device-Kommandos und Warten auf
  3518.     seine Abarbeitung
  3519.  
  3520.   INPUT
  3521.     execbase (_R_LB)
  3522.       Zeiger auf pExec-Library
  3523.     iorequest (_R_A0)
  3524.       Zeiger auf die installierte IORequest-Struktur
  3525.  
  3526.   RESULT
  3527.     res (_R_D0)
  3528.       0 bei Erfolg, sonst eine devicespezifische Fehlernummer
  3529.       (entsprechend dem Eintrag iorequester->io_Error).
  3530.  
  3531.   NOTE
  3532.     Es wird zuerst iorequest->io_Flags auf IOREQF_Quick gesetzt.
  3533.     Die Funktion sendet die Message mittels pOS_BeginIO()
  3534.     und wartet mit pOS_WaitIO() auf dessen komplette Abarbeitung.
  3535.     Danach wird der Fehlercode aus iorequest->io_Error zurück-
  3536.     gegeben.
  3537.  
  3538.   SEE ALSO
  3539.     pOS_OpenDevice(), pOS_CreateIORequest(), pOS_SendIO(),
  3540.     pOS_BeginIO()
  3541.  
  3542.   AMIGA FUNCTION
  3543.     LONG DoIO(struct IORequest *iorequest);
  3544.  
  3545.  
  3546. pexec.library/pOS_SendIO
  3547.  
  3548.   SYNOPSIS
  3549.     VOID pOS_SendIO
  3550.       (
  3551.         pOS_ExecBase *execbase,
  3552.         __ARID__ pOS_IORequest *iorequest
  3553.       );
  3554.  
  3555.   FUNCTION
  3556.     Asynchrones Ausführen eines Device-Kommandos
  3557.  
  3558.   INPUT
  3559.     execbase (_R_LB)
  3560.       Zeiger auf pExec-Library
  3561.     iorequest (_R_A0)
  3562.       Zeiger auf die installierte IORequest-Struktur
  3563.  
  3564.   NOTE
  3565.     Die Funktion ist gleichbedeutend mit pOS_BeginIO();
  3566.     zusätzlich wird IOREQF_Quick aus iorequest->io_Flags
  3567.     entfernt, wodurch eine asynchrone Abarbeitung erzwungen
  3568.     wird.
  3569.  
  3570.   SEE ALSO
  3571.     pOS_OpenDevice(), pOS_CreateIORequest(), pOS_DoIO(),
  3572.     pOS_BeginIO(), pOS_CheckIO(), pOS_WaitIO(), pOS_AbortIO()
  3573.  
  3574.   AMIGA FUNCTION
  3575.     LONG SendIO(struct IORequest *iorequest);
  3576.  
  3577.  
  3578. pexec.library/pOS_BeginIO
  3579.  
  3580.   SYNOPSIS
  3581.     VOID pOS_BeginIO
  3582.       (
  3583.         pOS_ExecBase *execbase,
  3584.         __ARID__ pOS_IORequest *iorequest
  3585.       );
  3586.  
  3587.   FUNCTION
  3588.     Asynchrones Ausführen eines Device-Kommandos
  3589.  
  3590.   INPUT
  3591.     execbase (_R_LB)
  3592.       Zeiger auf pExec-Library
  3593.     iorequest (_R_A0)
  3594.       Zeiger auf die installierte IORequest-Struktur
  3595.  
  3596.   NOTE
  3597.     Die Funktion ist gleichbedeutend mit pOS_SendIO();
  3598.     jedoch wird aber der Eintrag iorequest->io_Flags nicht
  3599.     verändert.
  3600.  
  3601.   SEE ALSO
  3602.     pOS_OpenDevice(), pOS_CreateIORequest(), pOS_SendIO(),
  3603.     pOS_CheckIO(), pOS_WaitIO(), pOS_AbortIO(), pOS_DoIO()
  3604.  
  3605.   AMIGA FUNCTION
  3606.     VOID BeginIO(struct IORequest *iorequest);
  3607.  
  3608.  
  3609. pexec.library/pOS_CheckIO
  3610.  
  3611.   SYNOPSIS
  3612.     pOS_IORequest *res = pOS_CheckIO
  3613.       (
  3614.         pOS_ExecBase *execbase,
  3615.         const pOS_IORequest *iorequest
  3616.       );
  3617.  
  3618.   FUNCTION
  3619.     Prüfen ob ein asynchroner IORequest noch läuft (bearbeitet wird)
  3620.  
  3621.   INPUT
  3622.     execbase (_R_LB)
  3623.       Zeiger auf pExec-Library
  3624.     iorequest (_R_A0)
  3625.       Zeiger auf die installierte IORequest-Struktur,
  3626.       die mittels pOS_BeginIO() oder pOS_SendIO() an
  3627.       das Device geschickt wurde.
  3628.  
  3629.   RESULT
  3630.     res (_R_D0)
  3631.       Wenn das Kommando nicht mehr läuft, wird der Zeiger auf den
  3632.       übergebenen iorequest zurückgegeben. Dann kann aus
  3633.       iorrequest->io_Error der devicespezifische Fehlercode des
  3634.       letzten Kommandos ermittelt werden;
  3635.       NULL wenn der Befehl noch bearbeitet wird.
  3636.  
  3637.   SEE ALSO
  3638.     pOS_SendIO(), pOS_BeginIO(), pOS_WaitIO(), pOS_AbortIO()
  3639.  
  3640.   AMIGA FUNCTION
  3641.     struct IORequest *CheckIO(struct IORequest *iorequest);
  3642.  
  3643.  
  3644. pexec.library/pOS_WaitIO
  3645.  
  3646.   SYNOPSIS
  3647.     SBYTE res = pOS_WaitIO
  3648.       (
  3649.         pOS_ExecBase *execbase,
  3650.         pOS_IORequest *iorequest
  3651.       );
  3652.  
  3653.   FUNCTION
  3654.     Warten auf das Ende eines asynchronen IORequest
  3655.  
  3656.   INPUT
  3657.     execbase (_R_LB)
  3658.       Zeiger auf pExec-Library
  3659.     iorequest (_R_D0)
  3660.       Zeiger auf die installierte IORequest-Struktur,
  3661.       die mittels pOS_BeginIO() oder pOS_SendIO() an
  3662.       das Device geschickt wurde.
  3663.  
  3664.   RESULT
  3665.     res (_R_D0)
  3666.       0 wenn das Kommando fehlerfrei abgearbeitet wurde;
  3667.       sonst eine devicespezifische Fehlernummer
  3668.       (entsprechend dem Eintrag iorequester->io_Error).
  3669.  
  3670.   NOTE
  3671.     Die Funktion kehrt sofort zurück, wenn das Kommando
  3672.     nicht mehr läuft. Zusätzlich wird die eigene Nachricht
  3673.     vom ReplyPort entfernt.
  3674.  
  3675.   SEE ALSO
  3676.     pOS_SendIO(), pOS_BeginIO(), pOS_CheckIO(), pOS_AbortIO()
  3677.  
  3678.   AMIGA FUNCTION
  3679.     LONG WaitIO(struct IORequest *iorequest);
  3680.  
  3681.  
  3682. pexec.library/pOS_AbortIO
  3683.  
  3684.   SYNOPSIS
  3685.     VOID pOS_AbortIO
  3686.       (
  3687.         pOS_ExecBase *execbase,
  3688.         pOS_IORequest *iorequest
  3689.       );
  3690.  
  3691.   FUNCTION
  3692.     Abbrechen eines asynchronen IORequesters
  3693.  
  3694.   INPUT
  3695.     execbase (_R_LB)
  3696.       Zeiger auf pExec-Library
  3697.     iorequest (_R_A0)
  3698.       Zeiger auf die installierte IORequest-Struktur,
  3699.       die mittels pOS_BeginIO() oder pOS_SendIO() an
  3700.       das Device geschickt wurde.
  3701.  
  3702.   NOTE
  3703.     Nach dem Abbrechen des Kommandos, muß mittels pOS_WaitIO()
  3704.     auf das Abbrechen des Devices gewartet werden.
  3705.     Es ist dem Device überlassen, ob es das Abbrechen von
  3706.     Funktionen unterstützt. Daher kann zwischen pOS_AbortIO()
  3707.     und pOS_WaitIO() eine längere Zeitspanne liegen.
  3708.  
  3709.   SEE ALSO
  3710.     pOS_SendIO(), pOS_BeginIO(), pOS_CheckIO(), pOS_WaitIO()
  3711.  
  3712.   AMIGA FUNCTION
  3713.     VOID AbortIO(struct IORequest *iorequest);
  3714.  
  3715.  
  3716. pexec.library/pOS_CreateIORequest
  3717.  
  3718.   SYNOPSIS
  3719.     __ARID__ pOS_IORequest *res = pOS_CreateIORequest
  3720.       (
  3721.         pOS_ExecBase *execbase,
  3722.         pOS_MsgPort *msgport,
  3723.         size_t size
  3724.       );
  3725.  
  3726.   FUNCTION
  3727.      Installieren einer IORequest-Struktur
  3728.  
  3729.   INPUT
  3730.     execbase (_R_LB)
  3731.       Zeiger auf pExec-Library
  3732.     msgport (_R_A0)
  3733.       Zeiger auf den eigenen Message-Port, an den die
  3734.       Rück-Nachrichten der Devicekommandos geschickt werden
  3735.       sollen.
  3736.     size (_R_D0)
  3737.       Größe der zu installierenden (devicespezifischen)
  3738.       IORequest-Struktur
  3739.  
  3740.   RESULT
  3741.     res (_R_D0)
  3742.       Zeiger auf die reservierte und initialisierte IORequest-
  3743.       Struktur, dessen Speicher mittels pOS_DeleteIORequest()
  3744.       wieder freigegeben werden muß.
  3745.  
  3746.   SEE ALSO
  3747.     pOS_DeleteIORequest(), pOS_BeginIO(), pOS_DoIO(), pOS_SendIO()
  3748.  
  3749.   AMIGA FUNCTION
  3750.  
  3751.  
  3752. pexec.library/pOS_DeleteIORequest
  3753.  
  3754.   SYNOPSIS
  3755.     VOID pOS_DeleteIORequest
  3756.       (
  3757.         pOS_ExecBase *execbase,
  3758.         __ARID__ pOS_IORequest *iorequest
  3759.       );
  3760.  
  3761.   FUNCTION
  3762.     Deinstallieren einer IORequest-Struktur
  3763.  
  3764.   INPUT
  3765.     execbase (_R_LB)
  3766.       Zeiger auf pExec-Library
  3767.     iorequest (_R_A0)
  3768.       Zeiger auf die IORequest-Struktur, die deinstalliert
  3769.       werden soll.
  3770.       ACHTNG: Nach der Funktion darf auf den Zeiger nicht
  3771.               mehr zugegriffen werden.
  3772.  
  3773.  
  3774.   SEE ALSO
  3775.     pOS_CreateIORequest()
  3776.  
  3777.   AMIGA FUNCTION
  3778.  
  3779.  
  3780. pexec.library/pOS_AddDevice
  3781.  
  3782.   SYNOPSIS
  3783.     VOID pOS_AddDevice
  3784.       (
  3785.         pOS_ExecBase *execbase,
  3786.         pOS_Device *device
  3787.       );
  3788.  
  3789.   FUNCTION
  3790.     Hinzufügen eines Devices in die Systemliste
  3791.  
  3792.   INPUT
  3793.     execbase (_R_LB)
  3794.       Zeiger auf pExec-Library
  3795.     device (_R_A0)
  3796.       Zeiger auf die installierte Device-Struktur
  3797.  
  3798.   SEE ALSO
  3799.     pOS_RemDevice(), pOS_OpenDevice(), pOS_MakeLibrary()
  3800.  
  3801.   AMIGA FUNCTION
  3802.     VOID AddDevice(struct Device *devcie);
  3803.  
  3804.  
  3805. pexec.library/pOS_RemDevice
  3806.  
  3807.   SYNOPSIS
  3808.     VOID pOS_RemDevice
  3809.       (
  3810.         pOS_ExecBase *execbase,
  3811.         pOS_Device *device
  3812.       );
  3813.  
  3814.   FUNCTION
  3815.     Versuch ein Device aus der Systemliste zu entfernen
  3816.  
  3817.   INPUT
  3818.     execbase (_R_LB)
  3819.       Zeiger auf pExec-Library
  3820.     device (_R_A0)
  3821.       Zeiger auf die Device-Stuktur, des zu entfernenden Devices
  3822.  
  3823.   NOTE
  3824.     Es wird die Expunge-Funktion des Devices aufgerufen, die
  3825.     das Device aus dem Speicher entfernen soll, wenn es nicht mehr
  3826.     benutzt wird.
  3827.  
  3828.   SEE ALSO
  3829.     pOS_AddDevice(), pOS_CloseDevice()
  3830.  
  3831.   AMIGA FUNCTION
  3832.     VOID RemDevice(struct Device *device);
  3833.  
  3834. /******************************************************************************/
  3835.  
  3836. pexec.library/pOS_OpenResource
  3837.  
  3838.   SYNOPSIS
  3839.     __ARID__ pOS_Resource *res = pOS_OpenResource
  3840.       (
  3841.         pOS_ExecBase *execbase,
  3842.         const CHAR *name
  3843.       );
  3844.  
  3845.   FUNCTION
  3846.     Öffnen einer Resource zur Benutzung
  3847.  
  3848.   INPUT
  3849.     execbase (_R_LB)
  3850.       Zeiger auf pExec-Library
  3851.     name (_R_A0)
  3852.       Name der zu öffnenden Reseource
  3853.  
  3854.   RESULT
  3855.     res (_R_D0)
  3856.       Zeiger auf die geöffnete Resource, die mittels pOS_CloseResource()
  3857.       wieder geschlossen werden muß;
  3858.       NULL im Fehlerfall.
  3859.  
  3860.   SEE ALSO
  3861.     pOS_CloseResource(), pOS_AddResource()
  3862.  
  3863.   AMIGA FUNCTION
  3864.     APTR OpenResource(STRPTR name);
  3865.  
  3866.  
  3867. pexec.library/pOS_CloseResource
  3868.  
  3869.   SYNOPSIS
  3870.     VOID pOS_CloseResource
  3871.       (
  3872.         pOS_ExecBase *execbase,
  3873.         __ARID__ pOS_Resource *resource
  3874.       );
  3875.  
  3876.   FUNCTION
  3877.     Schließen einer Resource
  3878.  
  3879.   INPUT
  3880.     execbase (_R_LB)
  3881.       Zeiger auf pExec-Library
  3882.     resource (_R_A0)
  3883.       Zeiger auf die von pOS_OpenResource() zurückgelieferte
  3884.       Resource
  3885.  
  3886.   NOTE
  3887.     Entgegen dem Amiga, muß bei pOS eine Resource wieder freigegeben
  3888.     werden, wenn sie nicht mehr benötigt wird.
  3889.  
  3890.   SEE ALSO
  3891.     OpenResource(), pOS_RemResource()
  3892.  
  3893.   AMIGA FUNCTION
  3894.  
  3895.  
  3896. pexec.library/pOS_AddResource
  3897.  
  3898.   SYNOPSIS
  3899.     VOID pOS_AddResource
  3900.       (
  3901.         pOS_ExecBase *execbase,
  3902.         pOS_Resource *resource
  3903.       );
  3904.  
  3905.   FUNCTION
  3906.     Hinzufügen einer Resource in die Systemliste
  3907.  
  3908.   INPUT
  3909.     execbase (_R_LB)
  3910.       Zeiger auf pExec-Library
  3911.     resource (_R_A0)
  3912.       Zeiger auf die installierte Resource-Struktur
  3913.  
  3914.   SEE ALSO
  3915.     pOS_RemResource(), OpenResource()
  3916.  
  3917.   AMIGA FUNCTION
  3918.     VOID AddResource(APTR resource);
  3919.  
  3920.  
  3921. pexec.library/pOS_RemResource
  3922.  
  3923.   SYNOPSIS
  3924.     VOID pOS_RemResource
  3925.       (
  3926.         pOS_ExecBase *execbase,
  3927.         pOS_Resource *resource
  3928.       );
  3929.  
  3930.   FUNCTION
  3931.     Entfernen einer Resource aus der Systemliste
  3932.  
  3933.   INPUT
  3934.     execbase (_R_LB)
  3935.       Zeiger auf pExec-Library
  3936.     resource(_R_A0)
  3937.       Zeiger auf die installierte Resource-Struktur, die
  3938.       entfernt werden soll
  3939.  
  3940.   SEE ALSO
  3941.     pOS_AddResource()
  3942.  
  3943.   AMIGA FUNCTION
  3944.     VOID RemResource(APTR resource);
  3945.  
  3946. /******************************************************************************/
  3947.  
  3948. pexec.library/pOS_RawDoFmt
  3949.  
  3950.   SYNOPSIS
  3951.     VOID pOS_RawDoFmt
  3952.       (
  3953.         pOS_ExecBase *execbase,
  3954.         pOS_RawDoFmtData *data);
  3955.  
  3956.   FUNCTION
  3957.     Formatieren von Daten in einer Zeichenkette
  3958.  
  3959.   INPUT
  3960.     execbase (_R_LB)
  3961.       Zeiger auf pExec-Library
  3962.     data (_R_A0)
  3963.       data->rdft_Format  : enthält die Formatschablone
  3964.       data->rdft_Argv    : Zeiger auf Array mit Parameter
  3965.       data->rdft_DoFmt   : Funktion, die zur Ausgabe der einzelnen
  3966.                            Zeichen aufgerufen wird
  3967.       data->rdft_InterFmt: kann auf eine eigene Funktion zur
  3968.                            Interpretation der Platzhalter zeigen
  3969.  
  3970.  
  3971.       FormatString - wie "C"-Language
  3972.  
  3973.        %[flags][width.limit][length]type
  3974.  
  3975.       flags  - nur '-' definiert, linksbündig
  3976.       width  - Anzahl der auszugebenden Zeichen
  3977.         .    - Trenner
  3978.       limit  - Ausgabebeschränkung, maximal 'limit' Zeichen ausgeben (%s)
  3979.       length - Datenbreite: l=32 bit, h=16 bit
  3980.       type   - verwendbare Typen:
  3981.             d - dezimal
  3982.             i - Integer, wie %d
  3983.             u - vorzeichenlos dezimal
  3984.             x - hexadezimal
  3985.             s - c-string
  3986.             c - ein Zeichen
  3987.             p - Hex-Dump der Adresse
  3988.  
  3989.   NOTE
  3990.     Die DoFmt-Funktion erhält als Parameter den Zeiger auf die
  3991.     pOS_RawDoFmtData-Struktur. Das auszugebende Zeichen ist aus
  3992.     data->rdft_Data auszulesen.
  3993.  
  3994.     Alle nicht gesetzte Datenelemente müssen in der Struktur, vor dem Funktions-
  3995.     aufruf genullt werden.
  3996.  
  3997.   SEE ALSO
  3998.     pOS_ReadAsciiFmt(), pOS_WriteAsciiFmt()
  3999.     siehe Beispielprogramm "DDevList.c" für die Anwendung
  4000.  
  4001.   AMIGA FUNCTION
  4002.     APTR RawDoFmt(STRPTR format, APTR data, VOID (*putfunc)(), APTR putdata);
  4003.  
  4004.  
  4005. pexec.library/pOS_ReadAsciiFmt
  4006.  
  4007. ### wird noch erweitert ###
  4008.  
  4009.   SYNOPSIS
  4010.     const CHAR *res = pOS_ReadAsciiFmt
  4011.       (
  4012.         pOS_ExecBase *execbase,
  4013.         pOS_AsciiFmtData *data,
  4014.         const CHAR *str
  4015.       );
  4016.  
  4017.   FUNCTION
  4018.  
  4019.   INPUT
  4020.     execbase (_R_LB)
  4021.       Zeiger auf pExec-Library
  4022.     data (_R_A0)
  4023.     str (_R_A1)
  4024.  
  4025.   RESULT
  4026.     res (_R_D0)
  4027.  
  4028.   SEE ALSO
  4029.     pOS_WriteAsciiFmt(), pOS_RawDoFmt()
  4030.  
  4031.   AMIGA FUNCTION
  4032.  
  4033.  
  4034. pexec.library/pOS_WriteAsciiFmt
  4035.  
  4036. ### wird noch erweitert ###
  4037.  
  4038.   SYNOPSIS
  4039.     CHAR *res = pOS_WriteAsciiFmt
  4040.       (
  4041.         pOS_ExecBase *execbase,
  4042.         const pOS_AsciiFmtData *data,
  4043.         CHAR *str,
  4044.         size_t size
  4045.       );
  4046.  
  4047.   FUNCTION
  4048.  
  4049.   INPUT
  4050.     execbase (_R_LB)
  4051.       Zeiger auf pExec-Library
  4052.     data (_R_A0)
  4053.       Zeiger auf die Formatschablone
  4054.     str (_R_A1)
  4055.  
  4056.     size (_R_D0)
  4057.       Größe des Buffers
  4058.  
  4059.   RESULT
  4060.     res (_R_D0)
  4061.  
  4062.   SEE ALSO
  4063.     pOS_ReadAsciiFmt(), pOS_RawDoFmt()
  4064.  
  4065.   AMIGA FUNCTION
  4066.  
  4067.  
  4068. pexec.library/pOS_AddClass
  4069.  
  4070.   SYNOPSIS
  4071.     VOID pOS_AddClass
  4072.       (
  4073.         pOS_ExecBase *execbase,
  4074.         pOS_NClass *class
  4075.       );
  4076.  
  4077.   FUNCTION
  4078.  
  4079.   INPUT
  4080.     execbase (_R_LB)
  4081.       Zeiger auf pExec-Library
  4082.     class (_R_A0)
  4083.  
  4084.   SEE ALSO
  4085.  
  4086.   AMIGA FUNCTION
  4087.  
  4088.  
  4089. pexec.library/pOS_AddLinkClass
  4090.  
  4091.   SYNOPSIS
  4092.     VOID pOS_AddLinkClass
  4093.       (
  4094.         pOS_ExecBase *execbase,
  4095.         const pOS_NClass *class,
  4096.         pOS_NClass *class2
  4097.       );
  4098.  
  4099.   FUNCTION
  4100.  
  4101.   INPUT
  4102.     execbase (_R_LB)
  4103.       Zeiger auf pExec-Library
  4104.     class (_R_A0)
  4105.     class2 (_R_A1)
  4106.  
  4107.   SEE ALSO
  4108.  
  4109.   AMIGA FUNCTION
  4110.  
  4111.  
  4112. pexec.library/pOS_SubClass
  4113.  
  4114.   SYNOPSIS
  4115.     VOID pOS_SubClass
  4116.       (
  4117.         pOS_ExecBase *execbase,
  4118.         pOS_NClass *class
  4119.       );
  4120.  
  4121.   FUNCTION
  4122.  
  4123.   INPUT
  4124.     execbase (_R_LB)
  4125.       Zeiger auf pExec-Library
  4126.     class (_R_A0)
  4127.  
  4128.   SEE ALSO
  4129.  
  4130.   AMIGA FUNCTION
  4131.  
  4132.  
  4133. pexec.library/pOS_CreateObject
  4134.  
  4135.   SYNOPSIS
  4136.     APTR res = pOS_CreateObject
  4137.       (
  4138.         pOS_ExecBase *execbase,
  4139.         pOS_NClass *class,
  4140.         const CHAR *name,
  4141.         ULONG,
  4142.         pOS_Method *method
  4143.       );
  4144.  
  4145.   FUNCTION
  4146.         Objekt der Klasse erzeugen.
  4147.  
  4148.   INPUT
  4149.     execbase (_R_LB)
  4150.       Zeiger auf pExec-Library
  4151.     class (_R_A0)
  4152.     name (_R_A1)
  4153.     (_R_D0)
  4154.     method (_R_A4)
  4155.  
  4156.   RESULT
  4157.     res (_R_D0)
  4158.  
  4159.   SEE ALSO
  4160.     pOS_DeleteObject()
  4161.  
  4162.   AMIGA FUNCTION
  4163.  
  4164.  
  4165. pexec.library/pOS_DeleteObject
  4166.  
  4167.   SYNOPSIS
  4168.     VOID pOS_DeleteObject
  4169.       (
  4170.         pOS_ExecBase *execbase,
  4171.         APTR object
  4172.       );
  4173.  
  4174.   FUNCTION
  4175.         Objekt einer Klasse entfernen.
  4176.  
  4177.   INPUT
  4178.     execbase (_R_LB)
  4179.       Zeiger auf pExec-Library
  4180.     object (_R_A0)
  4181.  
  4182.   SEE ALSO
  4183.     pOS_CreateObject()
  4184.  
  4185.   AMIGA FUNCTION
  4186.  
  4187.  
  4188. pexec.library/pOS_DoIMethodA
  4189.  
  4190.   SYNOPSIS
  4191.     ULONG res = pOS_DoIMethodA
  4192.       (
  4193.         pOS_ExecBase *execbase,
  4194.         APTR object,
  4195.         pOS_Method *method
  4196.       );
  4197.  
  4198.   FUNCTION
  4199.  
  4200.   INPUT
  4201.     execbase (_R_LB)
  4202.       Zeiger auf pExec-Library
  4203.     object (_R_A0)
  4204.     method (_R_A4)
  4205.  
  4206.   RESULT
  4207.     res (_R_D0)
  4208.  
  4209.   SEE ALSO
  4210.  
  4211.   AMIGA FUNCTION
  4212.  
  4213.  
  4214. pexec.library/pOS_DoMMethodA
  4215.  
  4216.   SYNOPSIS
  4217.     ULONG res = pOS_DoMMethodA
  4218.       (
  4219.         pOS_ExecBase *execbase,
  4220.         const pOS_Class *class,
  4221.         ULONG index,
  4222.         APTR object,
  4223.         pOS_Method *method
  4224.       );
  4225.  
  4226.   FUNCTION
  4227.  
  4228.   INPUT
  4229.     execbase (_R_LB)
  4230.       Zeiger auf pExec-Library
  4231.     class (_R_A0)
  4232.     index (_R_D0)
  4233.     object (_R_A1)
  4234.     method (_R_A4)
  4235.  
  4236.   RESULT
  4237.     res (_R_D0)
  4238.  
  4239.   SEE ALSO
  4240.  
  4241.   AMIGA FUNCTION
  4242.  
  4243.  
  4244. pexec.library/pOS_DoVirMethodA
  4245.  
  4246.   SYNOPSIS
  4247.     ULONG res = pOS_DoVirMethodA
  4248.       (
  4249.         pOS_ExecBase *execbase,
  4250.         const pOS_Class *class,
  4251.         APTR object,
  4252.         pOS_Method *method
  4253.       );
  4254.  
  4255.   FUNCTION
  4256.  
  4257.   INPUT
  4258.     execbase (_R_LB)
  4259.       Zeiger auf pExec-Library
  4260.     class (_R_A0)
  4261.     object (_R_A1)
  4262.     method (R_A4)
  4263.  
  4264.   RESULT
  4265.     res (_R_D0)
  4266.  
  4267.   SEE ALSO
  4268.  
  4269.   AMIGA FUNCTION
  4270.  
  4271.  
  4272. pexec.library/pOS_DoAbsMethodA
  4273.  
  4274.   SYNOPSIS
  4275.     ULONG res = pOS_DoAbsMethodA
  4276.       (
  4277.         pOS_ExecBase *execbase,
  4278.         const pOS_Class *class,
  4279.         APTR object,
  4280.         pOS_Method *method
  4281.       );
  4282.  
  4283.   FUNCTION
  4284.  
  4285.   INPUT
  4286.     execbase (_R_LB)
  4287.       Zeiger auf pExec-Library
  4288.     class (_R_A0)
  4289.     object (_R_A1)
  4290.     method (_R_A4)
  4291.  
  4292.   RESULT
  4293.     res (_R_D0)
  4294.  
  4295.   SEE ALSO
  4296.  
  4297.   AMIGA FUNCTION
  4298.  
  4299.  
  4300. pexec.library/pOS_OpenClass
  4301.  
  4302.   SYNOPSIS
  4303.     pOS_NClass *res = pOS_OpenClass
  4304.       (
  4305.         pOS_ExecBase *execbase,
  4306.         const CHAR *name,
  4307.         ULONG version
  4308.       );
  4309.  
  4310.   FUNCTION
  4311.  
  4312.   INPUT
  4313.     execbase (_R_LB)
  4314.       Zeiger auf pExec-Library
  4315.     name (_R_A0)
  4316.     version (_R_D0)
  4317.  
  4318.   RESULT
  4319.     res (_R_D0)
  4320.  
  4321.   SEE ALSO
  4322.     pOS_CloseClass(), pOS_OpenLibrary()
  4323.  
  4324.   AMIGA FUNCTION
  4325.  
  4326.  
  4327. pexec.library/pOS_CloseClass
  4328.  
  4329.   SYNOPSIS
  4330.     VOID pOS_CloseClass
  4331.       (
  4332.         pOS_ExecBase *execbase,
  4333.         pOS_NClass *class
  4334.       );
  4335.  
  4336.   FUNCTION
  4337.  
  4338.   INPUT
  4339.     execbase (_R_LB)
  4340.       Zeiger auf pExec-Library
  4341.     class (_R_A0)
  4342.  
  4343.   SEE ALSO
  4344.     pOS_OpenClass()
  4345.  
  4346.   AMIGA FUNCTION
  4347.  
  4348.  
  4349. pexec.library/pOS_GetMemberAdr
  4350.  
  4351.   SYNOPSIS
  4352.     APTR res = pOS_GetMemberAdr
  4353.       (
  4354.         pOS_ExecBase *execbase,
  4355.         const pOS_Class *class,
  4356.         ULONG index,
  4357.         APTR object
  4358.       );
  4359.  
  4360.   FUNCTION
  4361.  
  4362.   INPUT
  4363.     execbase (_R_LB)
  4364.       Zeiger auf pExec-Library
  4365.     class (_R_A0)
  4366.     index (_R_D0)
  4367.     object (_R_A1)
  4368.  
  4369.   RESULT
  4370.     res (_R_D0)
  4371.  
  4372.   SEE ALSO
  4373.  
  4374.   AMIGA FUNCTION
  4375.  
  4376.  
  4377. pexec.library/pOS_MoveUpClassPtr
  4378.  
  4379.   SYNOPSIS
  4380.     BOOL pOS_MoveUpClassPtr
  4381.       (
  4382.         pOS_ExecBase *execbase,
  4383.         const pOS_Class *class,
  4384.         APTR object,
  4385.         pOS_Class **newclass,
  4386.         APTR *newobject
  4387.       );
  4388.  
  4389.   FUNCTION
  4390.  
  4391.   INPUT
  4392.     execbase (_R_LB)
  4393.       Zeiger auf pExec-Library
  4394.     class (_R_A0)
  4395.     object (_R_A1)
  4396.     newclass (_R_A2)
  4397.     newobject (_R_A3)
  4398.  
  4399.   RESULT
  4400.     res (_R_D0)
  4401.  
  4402.   SEE ALSO
  4403.     pOS_MoveDownClassPtr()
  4404.  
  4405.   AMIGA FUNCTION
  4406.  
  4407.  
  4408. pexec.library/pOS_MoveDownClassPtr
  4409.  
  4410.   SYNOPSIS
  4411.     BOOL res = pOS_MoveDownClassPtr
  4412.       (
  4413.         pOS_ExecBase *execbase,
  4414.         const pOS_Class *class,
  4415.         APTR object,
  4416.         pOS_Class **newclass,
  4417.         APTR *newobject
  4418.       );
  4419.  
  4420.   FUNCTION
  4421.  
  4422.   INPUT
  4423.     execbase (_R_LB)
  4424.       Zeiger auf pExec-Library
  4425.     class (_R_A0)
  4426.     object (_R_A1)
  4427.     newclass (_R_A2)
  4428.     newobject (_R_A3)
  4429.  
  4430.   RESULT
  4431.     res (_R_D0)
  4432.  
  4433.   SEE ALSO
  4434.     pOS_MoveUpClassPtr()
  4435.  
  4436.   AMIGA FUNCTION
  4437.  
  4438.  
  4439. pexec.library/pOS_GetUpObjectAdr
  4440.  
  4441.   SYNOPSIS
  4442.     APTR res = pOS_GetUpObjectAdr
  4443.       (
  4444.         pOS_ExecBase *execbase,
  4445.         const pOS_Class *class,
  4446.         APTR object,
  4447.         ULONG number
  4448.       );
  4449.  
  4450.   FUNCTION
  4451.  
  4452.   INPUT
  4453.     execbase (_R_LB)
  4454.       Zeiger auf pExec-Library
  4455.     class (_R_A0)
  4456.     object (_R_A1)
  4457.     number (_R_D0)
  4458.  
  4459.   RESULT
  4460.     res (_R_D0)
  4461.  
  4462.   SEE ALSO
  4463.  
  4464.   AMIGA FUNCTION
  4465.  
  4466.  
  4467. pexec.library/pOS_GetNClass
  4468.  
  4469.   SYNOPSIS
  4470.     const pOS_NClass *res = pOS_GetNClass
  4471.       (
  4472.         pOS_ExecBase *execbase,
  4473.         const pOS_Class *class
  4474.       );
  4475.  
  4476.   FUNCTION
  4477.  
  4478.   INPUT
  4479.     execbase (_R_LB)
  4480.       Zeiger auf pExec-Library
  4481.     class (_R_A0)
  4482.  
  4483.   RESULT
  4484.     res (_R_D0)
  4485.  
  4486.   SEE ALSO
  4487.  
  4488.   AMIGA FUNCTION
  4489.  
  4490.  
  4491. pexec.library/pOS_GetIMemberAdr
  4492.  
  4493.   SYNOPSIS
  4494.     APTR res = pOS_GetIMemberAdr
  4495.       (
  4496.         pOS_ExecBase *execbase,
  4497.         ULONG memberindex,
  4498.         APTR object
  4499.       );
  4500.  
  4501.   FUNCTION
  4502.  
  4503.   INPUT
  4504.     execbase (_R_LB)
  4505.       Zeiger auf pExec-Library
  4506.     memberindex (_R_D0)
  4507.     object (_R_A0)
  4508.  
  4509.   RESULT
  4510.     res (_R_D0)
  4511.  
  4512.   SEE ALSO
  4513.  
  4514.   AMIGA FUNCTION
  4515.  
  4516.  
  4517. pexec.library/pOS_GetObjectRootAdr
  4518.  
  4519.   SYNOPSIS
  4520.     APTR res = pOS_GetObjectRootAdr
  4521.       (
  4522.         pOS_ExecBase *execbase,
  4523.         const pOS_Class *class,
  4524.         APTR object
  4525.       );
  4526.  
  4527.   FUNCTION
  4528.  
  4529.   INPUT
  4530.     execbase (_R_LB)
  4531.       Zeiger auf pExec-Library
  4532.     class (_R_A0)
  4533.     object (_R_A1)
  4534.  
  4535.   RESULT
  4536.     res (_R_D0)
  4537.  
  4538.   SEE ALSO
  4539.  
  4540.   AMIGA FUNCTION
  4541.  
  4542.  
  4543. pexec.library/pOS_CreateClassGrp
  4544.  
  4545.   SYNOPSIS
  4546.     pOS_NClass *res = pOS_CreateClassGrp
  4547.       (
  4548.         pOS_ExecBase *execbase,
  4549.         pOS_ClassGrp *group,
  4550.         const CHAR *name,
  4551.         const pOS_NClass *basisclass,
  4552.         const pOS_Class *newclass
  4553.       );
  4554.  
  4555.   FUNCTION
  4556.  
  4557.   INPUT
  4558.     execbase (_R_LB)
  4559.       Zeiger auf pExec-Library
  4560.     group (_R_A0)
  4561.     name (_R_A1)
  4562.     basisclass (_R_A2)
  4563.     newclass (_R_A3)
  4564.  
  4565.   RESULT
  4566.     res (_R_D0)
  4567.  
  4568.   SEE ALSO
  4569.     pOS_DeleteClassGrp()
  4570.  
  4571.   AMIGA FUNCTION
  4572.  
  4573.  
  4574. pexec.library/pOS_DeleteClassGrp
  4575.  
  4576.   SYNOPSIS
  4577.     VOID pOS_DeleteClassGrp
  4578.       (
  4579.         pOS_ExecBase *execbase,
  4580.         pOS_ClassGrp *group,
  4581.         pOS_NClass *class
  4582.       );
  4583.  
  4584.   FUNCTION
  4585.  
  4586.   INPUT
  4587.     execbase (_R_LB)
  4588.       Zeiger auf pExec-Library
  4589.     group (_R_A0)
  4590.     class (_R_A1)
  4591.  
  4592.   SEE ALSO
  4593.     pOS_CreateClassGrp()
  4594.  
  4595.   AMIGA FUNCTION
  4596.  
  4597.  
  4598. pexec.library/pOS_CreateClass
  4599.  
  4600.   SYNOPSIS
  4601.     __ARID__ pOS_NClass *res = pOS_CreateClass
  4602.       (
  4603.         pOS_ExecBase *execbase,
  4604.         _R_A0 const CHAR *classname,
  4605.         _R_A1 const CHAR *superclassname,
  4606.         _R_A2 const pOS_NClass *superclass,
  4607.         _R_A3 APTR displayfunc,
  4608.         _R_D0 size_t objectsize,
  4609.         _R_D1 ULONG superclassversion
  4610.       );
  4611.  
  4612.   FUNCTION
  4613.  
  4614.   INPUT
  4615.     execbase (_R_LB)
  4616.       Zeiger auf pExec-Library
  4617.     classname (_R_A0)
  4618.     superclassname (_R_A1)
  4619.     superclass (_R_A2)
  4620.     displayfunc (_R_A3)
  4621.     objectsize (_R_D0)
  4622.     superclassversion (_R_D1)
  4623.  
  4624.   RESULT
  4625.     res (_R_D0)
  4626.  
  4627.   SEE ALSO
  4628.     pOS_DeleteClass()
  4629.  
  4630.   AMIGA FUNCTION
  4631.  
  4632.  
  4633. pexec.library/pOS_DeleteClass
  4634.  
  4635.   SYNOPSIS
  4636.     VOID pOS_DeleteClass
  4637.       (
  4638.         pOS_ExecBase *execbase,
  4639.         __ARID__ pOS_NClass *class
  4640.       );
  4641.  
  4642.   FUNCTION
  4643.  
  4644.   INPUT
  4645.     execbase (_R_LB)
  4646.       Zeiger auf pExec-Library
  4647.     class (_R_A0)
  4648.  
  4649.   SEE ALSO
  4650.     pOS_CreateClass()
  4651.  
  4652.   AMIGA FUNCTION
  4653.  
  4654.  
  4655. pexec.library/pOS_DebugClassI
  4656.  
  4657.   SYNOPSIS
  4658.     BOOL res = pOS_DebugClassI
  4659.       (
  4660.         pOS_ExecBase *execbase,
  4661.         const VOID *object,
  4662.         const CHAR *classname,
  4663.         const pOS_NClass *class,
  4664.         BOOL print
  4665.       );
  4666.  
  4667.   FUNCTION
  4668.  
  4669.   INPUT
  4670.     execbase (_R_LB)
  4671.       Zeiger auf pExec-Library
  4672.     object (_R_A0)
  4673.     classname (_R_A1)
  4674.     class (_R_A2)
  4675.     print (_R_D0)
  4676.  
  4677.  
  4678.   RESULT
  4679.     res (_R_D0)
  4680.  
  4681.   SEE ALSO
  4682.     pOS_DebugClassAbs()
  4683.  
  4684.   AMIGA FUNCTION
  4685.  
  4686.  
  4687. pexec.library/pOS_DebugClassAbs
  4688.  
  4689.   SYNOPSIS
  4690.     BOOL res = pOS_DebugClassAbs
  4691.       (
  4692.         pOS_ExecBase *execbase,
  4693.         const VOID *object,
  4694.         const pOS_Class *masterclass,
  4695.         const CHAR *classname,
  4696.         const pOS_NClass *class,
  4697.         BOOL print
  4698.       );
  4699.  
  4700.   FUNCTION
  4701.  
  4702.   INPUT
  4703.     execbase (_R_LB)
  4704.       Zeiger auf pExec-Library
  4705.     object (_R_A0)
  4706.     masterclass (_R_A1)
  4707.     classname (_R_A2)
  4708.     class (_R_A3)
  4709.     print (_R_D0)
  4710.  
  4711.   RESULT
  4712.     res (_R_D0)
  4713.  
  4714.   SEE ALSO
  4715.     pOS_DebugClassI()
  4716.  
  4717.   AMIGA FUNCTION
  4718.  
  4719.