home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-03-18 | 103.6 KB | 4,719 lines |
- TABLE OF CONTENTS
-
- pexec.library/ExecAllgemeines
- pexec.library/pOS_AbortIO
- pexec.library/pOS_AddClass
- pexec.library/pOS_AddDevice
- pexec.library/pOS_AddLibrary
- pexec.library/pOS_AddLinkClass
- pexec.library/pOS_AddMemHandler
- pexec.library/pOS_AddMemList
- pexec.library/pOS_AddPort
- pexec.library/pOS_AddResource
- pexec.library/pOS_AddSemaphore
- pexec.library/pOS_AddSemaphoreQR
- pexec.library/pOS_AddTask
- pexec.library/pOS_AllocAbs
- pexec.library/pOS_Allocate
- pexec.library/pOS_AllocEntry
- pexec.library/pOS_AllocMem
- pexec.library/pOS_AllocPoolMem
- pexec.library/pOS_AllocPoolVec
- pexec.library/pOS_AllocSignal
- pexec.library/pOS_AllocTrap
- pexec.library/pOS_AllocVec
- pexec.library/pOS_AttemptProcureSemaphore
- pexec.library/pOS_AttemptSemaphore
- pexec.library/pOS_AttemptSemaphoreShared
- pexec.library/pOS_AttemptTimeSemaphore
- pexec.library/pOS_AttemptTimeSemaphoreShared
- pexec.library/pOS_AvailMem
- pexec.library/pOS_BeginIO
- pexec.library/pOS_CacheClearE
- pexec.library/pOS_CacheClearU
- pexec.library/pOS_CacheControl
- pexec.library/pOS_CheckIO
- pexec.library/pOS_CloseClass
- pexec.library/pOS_CloseDevice
- pexec.library/pOS_CloseLibrary
- pexec.library/pOS_CloseResource
- pexec.library/pOS_ColdReboot
- pexec.library/pOS_ConstructMsgPort
- pexec.library/pOS_ConstructSigPort
- pexec.library/pOS_CopyMem
- pexec.library/pOS_CreateClass
- pexec.library/pOS_CreateClassGrp
- pexec.library/pOS_CreateIORequest
- pexec.library/pOS_CreateObject
- pexec.library/pOS_CreatePort
- pexec.library/pOS_CreateTask
- pexec.library/pOS_Deallocate
- pexec.library/pOS_DebugClassAbs
- pexec.library/pOS_DebugClassI
- pexec.library/pOS_DeleteClass
- pexec.library/pOS_DeleteClassGrp
- pexec.library/pOS_DeleteIORequest
- pexec.library/pOS_DeleteObject
- pexec.library/pOS_DeletePort
- pexec.library/pOS_DeleteTask
- pexec.library/pOS_DestructMsgPort
- pexec.library/pOS_DisplayAlert
- pexec.library/pOS_DoAbsMethodA
- pexec.library/pOS_DoIMethodA
- pexec.library/pOS_DoIO
- pexec.library/pOS_DoMMethodA
- pexec.library/pOS_DoVirMethodA
- pexec.library/pOS_ExecCheckA
- pexec.library/pOS_FindPort
- pexec.library/pOS_FindResident
- pexec.library/pOS_FindSemaphore
- pexec.library/pOS_FindTask
- pexec.library/pOS_ForbidIRQ
- pexec.library/pOS_ForbidSchedul
- pexec.library/pOS_FreeEntry
- pexec.library/pOS_FreeMem
- pexec.library/pOS_FreePoolAll
- pexec.library/pOS_FreePoolMem
- pexec.library/pOS_FreePoolVec
- pexec.library/pOS_FreeSignal
- pexec.library/pOS_FreeTrap
- pexec.library/pOS_FreeVec
- pexec.library/pOS_GetIMemberAdr
- pexec.library/pOS_GetMemberAdr
- pexec.library/pOS_GetMsg
- pexec.library/pOS_GetNClass
- pexec.library/pOS_GetObjectRootAdr
- pexec.library/pOS_GetUpObjectAdr
- pexec.library/pOS_InitMemPool
- pexec.library/pOS_InitResident
- pexec.library/pOS_InitSemaphore
- pexec.library/pOS_IsObtainSemaphore
- pexec.library/pOS_MakeFunctions
- pexec.library/pOS_MakeLibrary
- pexec.library/pOS_MoveDownClassPtr
- pexec.library/pOS_MoveUpClassPtr
- pexec.library/pOS_ObtainSemaphore
- pexec.library/pOS_ObtainSemaphoreList
- pexec.library/pOS_ObtainSemaphoreShared
- pexec.library/pOS_OpenClass
- pexec.library/pOS_OpenDevice
- pexec.library/pOS_OpenLibrary
- pexec.library/pOS_OpenResource
- pexec.library/pOS_PermitIRQ
- pexec.library/pOS_PermitSchedul
- pexec.library/pOS_ProcureSemaphore
- pexec.library/pOS_ProcureSemaphoreShared
- pexec.library/pOS_PutMsg
- pexec.library/pOS_RawDoFmt
- pexec.library/pOS_ReadAsciiFmt
- pexec.library/pOS_ReleaseSemaphore
- pexec.library/pOS_ReleaseSemaphoreList
- pexec.library/pOS_RemDevice
- pexec.library/pOS_RemLibrary
- pexec.library/pOS_RemMemHandler
- pexec.library/pOS_RemPort
- pexec.library/pOS_RemResource
- pexec.library/pOS_RemSemaphore
- pexec.library/pOS_RemSemaphoreQR
- pexec.library/pOS_RemTask
- pexec.library/pOS_ReplyMsg
- pexec.library/pOS_SendIO
- pexec.library/pOS_SendSignal
- pexec.library/pOS_SetExcept
- pexec.library/pOS_SetLibFunction
- pexec.library/pOS_SetSignal
- pexec.library/pOS_SetTaskPriority
- pexec.library/pOS_SetTaskXPri
- pexec.library/pOS_StackSwap
- pexec.library/pOS_SubClass
- pexec.library/pOS_SumLibrary
- pexec.library/pOS_VacateSemaphore
- pexec.library/pOS_WaitIO
- pexec.library/pOS_WaitPort
- pexec.library/pOS_WaitSignal
- pexec.library/pOS_WaitTimeSignal
- pexec.library/pOS_WriteAsciiFmt
- pexec.library/pOS_WriteDebug
-
- pexec.library/ExecAllgemeines
-
- STRUCTURS
-
- struct pOS_AsciiFmtData
- struct pOS_Callback
- struct pOS_Class
- struct pOS_ClassGrp
- struct pOS_Device
- struct pOS_ExecBase
- struct pOS_ExList
- struct pOS_ExNode
- struct pOS_Interrupt
- struct pOS_IORequest
- struct pOS_IOStdReq
- struct pOS_LibDescribe
- struct pOS_Library
- struct pOS_LibraryFunction
- struct pOS_List
- struct pOS_Member
- struct pOS_MemChunk
- struct pOS_MemEntry
- struct pOS_MemHeader
- struct pOS_MemList
- struct pOS_MemPool
- struct pOS_Message
- struct pOS_Method
- struct pOS_MsgPort
- struct pOS_NClass
- struct pOS_Node
- struct pOS_Object
- struct pOS_RamLibMessage
- struct pOS_RawDoFmtData
- struct pOS_Resident
- struct pOS_ResidentLibInit
- struct pOS_Resource
- struct pOS_SemaphoreRequest
- struct pOS_Semaphore
- struct pOS_StackSwapData
- struct pOS_StdDeviceFunction
- struct pOS_StdLibraryFunction
- struct pOS_TagItem;
- struct pOS_Task
- struct pOS_Unit
-
- ENUMS
-
- enum pOS_Alerts
- enum pOS_ExNodeType
- enum pOS_IOReqCommands
- enum pOS_IOReqErrors
- enum pOS_IOReqFlags
- enum pOS_LibraryFlags
- enum pOS_LibraryFuncID
- enum pOS_MemoryFlag
- enum pOS_MsgPortFlag
- enum pOS_RamLibMessageCom
- enum pOS_RawDoFmtFlags
- enum pOS_ResidentFlags
- enum pOS_SemaphoreFlags
- enum pOS_TaskSignal
- enum pOS_TaskStates
- enum pOS_UnitFlags
-
- DEFINES
-
- RTC_MATCHWORD
- pOS_CLASSERR
-
- INCLUDES
-
- pExec/CallBack.h
- pExec/Class.h
- pExec/Device.h
- pExec/Diagnos.h
- pExec/ExecBase.h
- pExec/Interupt.h
- pExec/Library.h
- pExec/List.cpp
- pExec/List.h
- pExec/Macros.h
- pExec/Memory.h
- pExec/MsgPort.h
- pExec/Node.h
- pExec/RamLib.h
- pExec/RawDoFmt.h
- pExec/Resident.h
- pExec/Resource.h
- pExec/Sema.h
- pExec/Task.h
- pExec/Types.h
- proto/pExec.h
-
-
-
- pexec.library/pOS_ColdReboot
-
- SYNOPSIS
- VOID pOS_ColdReboot
- (
- pOS_ExecBase *execbase
- );
-
- FUNCTION
- Ausführen eines Kaltstarts (Rechnerneustart)
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
-
- AMIGA FUNCTION
- VOID ColdReboot(VOID);
-
-
- pexec.library/pOS_WriteDebug
-
- ### wird noch erweitert ###
-
- SYNOPSIS
- VOID pOS_WriteDebug
- (
- pOS_ExecBase *execbase,
- const VOID *data,
- size_t size,
- ULONG type
- );
-
- FUNCTION
- Ausgeben von Debug-Informationen
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- data (_R_A0)
- size (_R_D0)
- type (_R_D1)
-
- AMIGA FUNCTION
- VOID kprintf(const char *,...);
-
-
- pexec.library/pOS_AddTask
-
- SYNOPSIS
- APTR res = pOS_AddTask
- (
- pOS_ExecBase *execbase,
- pOS_Task *task,
- APTR initialpc,
- APTR finalpc
- );
-
- FUNCTION
- Hinzufügen eines Tasks in die Systemliste.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- task (_R_A0)
- Zeiger auf die installierte Task-Struktur. Die nicht
- vorbelegten Felder müssen auf 0 gesetzt werden.
- initialpc (_R_A1)
- Zeiger auf die Startadresse des Tasks
- finalpc (_R_A2)
- Zeiger auf die Rücksprungadresse des Tasks oder NULL
-
- RESULT
- res (_R_D0)
- Übergebene Adresse der Task-Struktur,
- oder NULL im Fehlerfall.
-
- NOTE
- Mittels pOS_CreateTask() kann normalerweise auf diese low-level
- Funktion verzichtet werden.
-
- Nach dem hinzufügen des Tasks wird ein Scheduling ausgelöst.
- Der Task mit der höchsten Priorität läuft danach. Je nach
- Priorität kann das der eigene oder ein anderer Task sein!
-
- Da es im Task-Umfeld keine Process-Struktur gibt, sind auch
- die meisten pDos-Funktionen nicht benutzbar.
- Es funktioniert pOS_CreateProc() und CreateProcessA() zum Erzeugen
- des Processes, sowie die Funktionen für ReadArgs.
- Der erzeugte Process bietet nur eine minimale Dos-Umgebung.
- CurrentDir zeigt auf SYS:, In/Out/Error-Kanäle zeigen auf NIL:
-
- SEE ALSO
- pOS_RemTask(), pOS_FindTask(), pOS_CreateTask()
-
- AMIGA FUNCTION
- struct Task *AddTask(struct Task *task, APTR initialpc, APTR finalpc);
-
-
- pexec.library/pOS_RemTask
-
- SYNOPSIS
- VOID pOS_RemTask
- (
- pOS_ExecBase *execbase,
- pOS_Task *task
- );
-
- FUNCTION
- Entfernen eines Tasks aus der Systemliste und freigeben
- der vom System angelegten Resourcen
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- task (_R_A0)
- Zeiger auf den zu entfernenden Task,
- NULL wenn der eigene Task ausgehängt werden soll
-
- NOTE
- Das Entfernen von fremden Task ist nicht ungefährlich,
- deshalb sollte sich jeder Task selber mittels pOS_RemTask(NULL)
- entfernen.
- Zum Entfernen von fremden Task sollte die Funktion pOS_DeleteTask()
- verwendet werden.
- Nach dieser Funktion läuft höchstens noch die finalpc-Routine
- (wenn bei pOS_AddTask() angegeben).
-
- SEE ALSO
- pOS_AddTask(), pOS_FindTask(), pOS_DeleteTask()
-
- AMIGA FUNCTION
- VOID RemTask(struct Task *task);
-
-
- pexec.library/pOS_FindTask
-
- SYNOPSIS
- pOS_Task *res = pOS_FindTask
- (
- pOS_ExecBase *execbase,
- const CHAR *name
- );
-
- FUNCTION
- Suchen eines Tasks über seinen Namen. Dabei wird zwischen
- Groß- und Kleinschreibung unterschieden.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- name (_R_A0)
- Name des zu suchenden Tasks
- oder NULL für den eigenen Task
-
- RESULT
- res (_R_D0)
- Zeiger auf den gefunden Task,
- oder NULL wenn kein entsprechender Task gefunden wurde
-
- SEE ALSO
- pOS_AddTask(), pOS_RemTask(), pOS_CreateTask()
-
- AMIGA FUNCTION
- struct Task *FindTask(STRPTR name);
-
-
- pexec.library/pOS_SetTaskPriority
-
- SYNOPSIS
- SBYTE res = pOS_SetTaskPriority
- (
- pOS_ExecBase *execbase,
- pOS_Task *task,
- SLONG priority
- );
-
- FUNCTION
- Setzen der Priorität eines Tasks
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- task (_R_A0)
- Adresse des Tasks, dessen Priorität geändert werden soll
- priority (_R_D0)
- neue Priorität im Bereich von -128 (niedrigste Priorität)
- bis +127 (höchste Priorität)
-
- RESULT
- res (_R_D0)
- bisheriger Prioritätswert
-
- SEE ALSO
- pOS_FindTask()
-
- AMIGA FUNCTION
- LONG SetTaskPri(struct Task *task, LONG priority);
-
-
- pexec.library/pOS_SetSignal
-
- SYNOPSIS
- ULONG res = pOS_SetSignal
- (
- pOS_ExecBase *execbase,
- ULONG newsignals,
- ULONG signalmask
- );
-
- FUNCTION
- Auslesen und Verändern der Signal-Bits des aktuellen Tasks.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- newsignals (_R_D0)
- Bitmaske mit den neuen Signalwerten; vordefiniert sind
- DOSSIGF_CTRL_C : normalerweise Befehl abbrechen
- DOSSIGF_CTRL_D : normalerweise Script abbrechen
- DOSSIGF_CTRL_E : Programmspezifisch
- DOSSIGF_CTRL_F : Programmspezifisch
- signalmask (_R_D1)
- Bitmaske die definiert, welche Bits von der Operaton betroffen
- sein sollen; vordefiniert sind
- DOSSIGF_CTRL_C : normalerweise Befehl abbrechen
- DOSSIGF_CTRL_D : normalerweise Script abbrechen
- DOSSIGF_CTRL_E : Programmspezifisch
- DOSSIGF_CTRL_F : Programmspezifisch
-
- RESULT
- res (_R_D0)
- Bitmaske mit den bisherigen Signalwerten
-
- EXAMPLE
- Ermitteln der aktuellen Task-Signale:
- pOS_SetSignal(0,0);
- Löschen des CTRL-C-Signals:
- pOS_SetSignal(0,DOSSIGF_CTRL_C);
- Feststellen, ob CTRL-C gedrückt (empfangen) wurde
- danach wird das Signal automatisch gelöscht
- if(pOS_SetSignal(0,DOSSIGF_CTRL_C) & DOSSIGF_CTRL_C)
- printf("CTRL-C gedrückt!\n");
-
- SEE ALSO
- pOS_WaitSignal()
-
- AMIGA FUNCTION
- ULONG SetSignal(ULONG newsignals, ULONG signalmask);
-
-
- pexec.library/pOS_SetExcept
-
- ### wird noch erweitert ###
-
- SYNOPSIS
- ULONG res = pOS_SetExcept
- (
- pOS_ExecBase *execbase,
- ULONG newsignals,
- ULONG signalmask
- );
-
- FUNCTION
- Signalwerte für das Auslösen einer Exception definieren
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- newsignals (_R_D0)
- Bitmaske mit den neuen Signalen
- signalmask (_R_D1)
- Bitmaske für die Definition der betroffenen Signale
-
- RESULT
- res (_R_D0)
- Bitmaske der bisherigen Signale
-
- SEE ALSO
- pOS_SendSignal(), pOS_SetSignal()
-
- AMIGA FUNCTION
- ULONG SetExcept(ULONG newsignals, ULONG signalmask);
-
-
- pexec.library/pOS_WaitSignal
-
- SYNOPSIS
- ULONG res = pOS_WaitSignal
- (
- pOS_ExecBase *execbase,
- ULONG signalmask
- );
-
- FUNCTION
- Warten auf Signale
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- signalmask (_R_D0)
- Maske der Signale, auf die gewartet werden soll oder 0
- Trifft keines dieser Signale ein, so wartet die Funktion
- endlos! Vordefiniert sind
- DOSSIGF_CTRL_C : normalerweise Befehl abbrechen
- DOSSIGF_CTRL_D : normalerweise Script abbrechen
- DOSSIGF_CTRL_E : Programmspezifisch
- DOSSIGF_CTRL_F : Programmspezifisch
- TIP: Verwechseln Sie keine Signalsbits (z.B. DOSSIGB_CTRL_C = 0xC)
- mit der Signalmaske (z.B. DOSSIGF_CTRL_C = 0x1000)
-
- RESULT
- res (_R_D0)
- Aufgetretene Signale. Es können mehrere der in signalmask
- gesetzten Signale eingetroffen sein!
-
- NOTE
- Geben Sie bei der signalmask 0 an, wartet der Task ewig.
- Damit ist aber ein definierter Stand geschaffen, damit der
- Task mit pOS_RemTask() gelöscht werden kann.
-
- EXAMPLE
- Warten bis CTRL-C oder CTRL-D gedrückt wird
- ULONG sigs=pOS_WaitSignal(DOSSIGF_CTRL_C | DOSSIGF_CTRL_D)
- if(sigs & DOSSIGF_CTRL_C)
- printf("CTRL-C gedrückt!\n");
- if(sigs & DOSSIGF_CTRL_D)
- printf("CTRL-D gedrückt!\n");
-
- SEE ALSO
- pOS_AllocSignal(), pOS_SendSignal(), pOS_WaitPort()
-
- AMIGA FUNCTION
- ULONG Wait(ULONG signalmask);
-
-
- pexec.library/pOS_SendSignal
-
- SYNOPSIS
- VOID pOS_SendSignal
- (
- pOS_ExecBase *execbase,
- pOS_Task *task,
- ULONG signalmask
- );
-
- FUNCTION
- Senden von Signalen an einen Task
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- task (_R_A0)
- Task an den die Signale geschickt werden sollen
- signalmask (_R_D0)
- Bitmaske mit den Signalen; vordefiniert sind
- DOSSIGF_CTRL_C : normalerweise Befehl abbrechen
- DOSSIGF_CTRL_D : normalerweise Script abbrechen
- DOSSIGF_CTRL_E : Programmspezifisch
- DOSSIGF_CTRL_F : Programmspezifisch
-
- SEE ALSO
- pOS_AllocSignal(), pOS_PutMsg()
-
- AMIGA FUNCTION
- VOID Signal(struct Task *task, ULONG signalmask);
-
-
- pexec.library/pOS_AllocSignal
-
- SYNOPSIS
- __ARID__ ULONG res = pOS_AllocSignal
- (
- pOS_ExecBase *execbase,
- ULONG signalnummer
- );
-
- FUNCTION
- Reservieren eines Signalbits
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- signalnummer (_R_D0)
- gewünschte Signalnummer im Bereich von 0 bis 31
- oder SIGB_AllocAny für das nächste freie Signal-Bit
- (vom Betriebsystem werden z.Z. die Bits 4, 8, 12, 13,
- 14, 15 benutzt und können daher nicht reserviert werden)
-
- RESULT
- res (_R_D0)
- reserviertes Signal-Bit, das mittels pOS_FreeSignal()
- wieder freigegeben werden muß,
- oder SIGB_NoSignal wenn kein Signal mehr frei ist
-
- SEE ALSO
- pOS_FreeSignal(), pOS_WaitSignal()
-
- AMIGA FUNCTION
- ULONG AllocSignal(ULONG signalnummer);
-
-
- pexec.library/pOS_FreeSignal
-
- SYNOPSIS
- VOID pOS_FreeSignal
- (
- pOS_ExecBase *execbase,
- __ARID__ ULONG signalnummer
- );
-
- FUNCTION
- Freigeben eines Signal-Bits
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- signalnummer (_R_D0)
- Nummer des freizugebenden Signal-Bits, das mittels
- pOS_AllocSignal() reserviert wurde
- ACHTUNG: Nach der Funktion darf das Signal-Bit nicht
- mehr verwendet werden!
-
- SEE ALSO
- pOS_AllocSignal()
-
- AMIGA FUNCTION
- VOID FreeSignal(ULONG signalnummer);
-
-
- pexec.library/pOS_AllocTrap
-
- SYNOPSIS
- __ARID__ ULONG res = pOS_AllocTrap
- (
- pOS_ExecBase *execbase,
- ULONG trapnummer
- );
-
- FUNCTION
- Reservieren eines Prozessor-Trap-Vektors
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- trapnummer (_R_D0)
- Nummer des gewünschten Traps im Bereich von 0 bis 15
- >>> TRAPB_AllocAny für die nächste freie Trap-Nummer
-
- RESULT
- res (_R_D0)
- Nummer des tatsächlich reservierten Trap-Vektors.
- Dieser muß mittels pOS_FreeTrap() wieder freigegeben werden.
- >>> TRAPB_NoTrap falls kein Trap mehr zur Verfügung steht.
-
- SEE ALSO
- pOS_FreeTrap()
-
- AMIGA FUNCTION
- LONG AllocTrap(LONG trapnummer);
-
-
- pexec.library/pOS_FreeTrap
-
- SYNOPSIS
- VOID pOS_FreeTrap
- (
- pOS_ExecBase *execbase,
- __ARID__ ULONG trapnummer
- );
-
- FUNCTION
- Freigeben eines Prozessor-Trap-Vektors
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- trapnummer (_R_D0)
- Nummer des Traps, der freigegeben werden soll und mittels
- pOS_AllocTrap() reserviert wurde.
- ACHTUNG: Nach der Funktion darf die Trap-Nummer nicht
- mehr benutzt werden.
-
- SEE ALSO
- pOS_AllocTrap()
-
- AMIGA FUNCTION
- VOID FreeTrap(LONG trapnummer);
-
-
- pexec.library/pOS_ForbidSchedul
-
- SYNOPSIS
- VOID pOS_ForbidSchedul
- (
- pOS_ExecBase *execbase
- );
-
- FUNCTION
- Unterbinden des Task-Switchings
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
-
- NOTE
- Diese Funktion sollte nur verwendet werden, wenn es unumgänglich
- ist (z.B. auslesen von globalen Systemlisten). Die Sperrung muß
- mittels pOS_PermitSchedul() aufgehoben werden.
- Interrupt müssen, bei Bedarf, mittels pOS_ForbidIRQ() unterbunden
- werden.
-
- SEE ALSO
- pOS_PermitSchedul(), pOS_ForbidIRQ()
-
- AMIGA FUNCTION
- VOID Forbid();
-
-
- pexec.library/pOS_PermitSchedul
-
- SYNOPSIS
- VOID pOS_PermitSchedul
- (
- pOS_ExecBase *execbase
- );
-
- FUNCTION
- Erlauben des Task-Switchings, das mittels pOS_ForbidSchedul()
- gesperrt wurde.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
-
- SEE ALSO
- pOS_ForbidSchedul(), pOS_PermitIRQ()
-
- AMIGA FUNCTION
- VOID Permit();
-
-
- pexec.library/pOS_CreateTask
-
- SYNOPSIS
- pOS_Task *res = pOS_CreateTask
- (
- pOS_ExecBase *execbase,
- const CHAR *name,
- SLONG priority,
- APTR startfunc,
- size_t stacksize,
- size_t tasksize,
- ULONG userdata0,
- pOS_TaskControl *taskcontrol
- );
-
- FUNCTION
- Erzeugen eines neuen Tasks
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- name (_R_A0)
- Name des neuen Tasks; wird in task->tc_Node.ln_Name eingetragen
- priority (_R_D0)
- Priorität des neuen Tasks im Bereich von -128 bis +127;
- wird in task->tc_Node.ln_Pri eingetragen
- startfunc (_R_A1)
- Adresse der Startfunktion des neuen Tasks die angesprungen
- wird, sobald der neue Task (prioritätsmäßig) das erste mal läuft
- stacksize (_R_D1)
- Größe des Stackspeichers in Byte für den neuen Task
- tasksize (_R_D2)
- Größe der Task-Struktur, gewöhnlich sizeof(pOS_Task),
- kann jedoch durch eine größere Angabe um private Elemente
- erweitert werden
- unserdata0 (_R_D3)
- Beliebiger Beutzerwert, der in der Task-Struktur unter
- task->tc_UserData[0] abgelegt wird
- taskcontrol (_R_A2)
- Zeiger auf einen Task-Control-Block oder NULL (default)
-
- RESULT
- res (_R_D0)
- Übergebene Adresse der Task-Struktur,
- oder NULL im Fehlerfall.
-
- NOTE
- Es gelten die selben Hinweise wie bei pOS_AddTask()
-
- SEE ALSO
- pOS_AddTask(), pOS_RemTask(), pOS_FindTask()
-
- AMIGA FUNCTION
- struct Task *CreateTask(STRPTR name, LONG priority, APTR startfunc, ULONG stacksize);
-
-
- pexec.library/pOS_CacheClearE
-
- SYNOPSIS
- VOID pOS_CacheClearE
- (
- pOS_ExecBase *execbase,
- APTR adress,
- size_t size,
- ULONG flags
- );
-
- FUNCTION
- Löschen des Cache-Speichers des Prozessors.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- adress (_R_A0)
- Startadresse des Speichers
- size (_R_D0)
- Größe des zu löschenden Speicherbereichs
- ~0 für den gesamten Cache
- flags (_R_D1)
- ???: Befehlscache löschen
- ???: Datencache löschen
-
- NOTE
- Diese Funktion muß benutzt werden, wenn im Speicher eine
- Änderung ohne Prozessorbeteiligung stattgefunden hat
- (z.B. DMA-Controller). Dabei kann der Speicherbereich
- eingegrenzt werden.
-
- SEE ALSO
- pOS_CacheControl(), pOS_CacheClearU()
-
- AMIGA FUNCTION
- VOID CacheClearE(APTR adress, ULONG size, ULONG flags);
-
-
- pexec.library/pOS_CacheClearU
-
- SYNOPSIS
- VOID pOS_CacheClearU
- (
- pOS_ExecBase *execbase
- );
-
- FUNCTION
- Löschen des gesamten Cache-Speichers des Prozessors.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
-
- SEE ALSO
- pOS_CacheControl(), pOS_CacheClearE()
-
- AMIGA FUNCTION
- VOID CacheClearU()
-
-
- pexec.library/pOS_CacheControl
-
- SYNOPSIS
- ULONG res = pOS_CacheControl
- (
- pOS_ExecBase *execbase,
- ULONG newbits,
- ULONG bitmask
- );
-
- FUNCTION
- Kontrollieren des Cache-Speichers des Prozessors.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- newbits (_R_D0)
- Neue Werte der Cache-Bits; definiert sind
- bitmask (_R_D1)
- Bitmaske, die definiert, welche Cache-Bits von der Operation
- betroffen sein sollen; definiert sind
-
- RESULT
- res (_R_D0)
- Bisheriger Wert der Cache-Bits.
-
- SEE ALSO
- pOS_CacheClearE(), pOS_CacheClearU()
-
- AMIGA FUNCTION
- ULONG CacheControl(ULONG newbits, ULONG bitmask);
-
-
- pexec.library/pOS_StackSwap
-
- SYNOPSIS
- VOID pOS_StackSwap
- (
- pOS_ExecBase *execbase,
- pOS_StackSwapData *stackswapdata
- );
-
- FUNCTION
- Setzen eines neuen Stacks für den aufrufenden Task
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- stackswapdata (_R_A0)
- Adresse und Größe des neuen Stacks
-
- NOTE
- Nach der Funktion steht in stackswapdata die alten Stackwerte.
- Durch einen erneuten Aufruf von pOS_StackSwap() kann somit
- wieder der Orginalzustand hergestellt werden.
-
- AMIGA FUNCTION
- StackSwap(struct StackSwapData *stackswapdata);
-
-
- pexec.library/pOS_ForbidIRQ
-
- SYNOPSIS
- VOID pOS_ForbidIRQ
- (
- pOS_ExecBase *execbase
- );
-
- FUNCTION
- Unterbinden von Interrupts.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
-
- NOTE
- Diese Funktion sollte nur verwendet werden, wenn das Unterbinden
- von Interrupts unumgänglich ist. Die Sperrung muß mittels
- pOS_ForbidIRQ() aufgehoben werden.
- Durch die Interrupt-Sperrung findet auch kein Task-Switching stand.
- Dadurch ist ein Aufruf von pOS_ForbidSchedule() nicht notwendig.
-
- SEE ALSO
- pOS_PermitIRQ(), pOS_ForbidSchedul()
-
- AMIGA FUNCTION
- VOID Disable();
-
-
- pexec.library/pOS_PermitIRQ
-
- SYNOPSIS
- VOID pOS_PermitIRQ
- (
- pOS_ExecBase *execbase
- );
-
- FUNCTION
- Erlauben von Interrupts, die mittels pOS_ForbidIRQ()
- gesperrt wurden.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
-
- SEE ALSO
- pOS_ForbidIRQ(), pOS_PermitSchedul()
-
- AMIGA FUNCTION
- VOID Enable();
-
-
- pUtility.library/pOS_WaitTimeSignal
-
- SYNOPSIS
- ULONG res = pOS_WaitTimeSignal
- (
- pOS_ExecBase *execbase,
- ULONG signalmask,
- ULONG micros
- );
-
- FUNCTION
- Warten auf das Eintreffen von Signalen oder das Ablaufen des
- Timers.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- signalmask (_R_D0)
- Maske der Signale, auf die gewartet werden soll oder 0
- micros (_R_D1)
- Maximale Wartezeit in Micro-Sekunden (1000000 Mikros = 1 Sekunde).
- Trift während dieser Zeit kein definiertes Signal ein,
- wird die Funktion abgebrochen.
-
- RESULT
- res (_R_D0)
- Aufgetretene Signale oder 0, wenn die Zeit abgelaufen ist.
- Es können mehrere der in signalmask gesetzten Signale ein-
- getroffen sein!
-
- NOTE
- Wenn Sie für signalmask 0 angeben, können Sie mit dieser Funktion
- nur die definierte Zeit micros warten. Das ist ähnlich der
- AMIGA FUNCTION TimeDelay().
-
- SEE ALSO
- pOS_WaitSignal()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DeleteTask
-
- SYNOPSIS
- VOID pOS_DeleteTask
- (
- pOS_ExecBase *execbase,
- __ARID__ pOS_Task *task,
- pOS_Task *signaltask,
- ULONG signal
- );
-
- FUNCTION
- Entfernen eines Tasks aus der Task-Liste des Systems.
- Nach dem Entfernen kann einem anderen Task ein Signal
- als Bestätigung geschickt werden.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- task (_R_A0)
- Zeiger auf den zu entfernenden Task
- signaltask (_R_A1)
- Zeiger auf den Task, der nach dem Entfernen das definierte
- Signal bekommt oder NULL
- signal (_R_D0)
- Signal, das an signaltask, nach dem Entfernen, geschickt werden soll.
-
- NOTE
- Sie können signaltask und signal auf 0 setzen, dann ist
- pOS_DeleteTask(execbase,task,NULL,0) gleichbedeutend mit
- pOS_RemTask(execbase,task).
-
- SEE ALSO
- pOS_RemTask(), pOS_CreateTask()
-
- AMIGA FUNCTION
- ähnlich VOID DeleteTask(struct Task *task);
-
-
- pexec.library/pOS_SetTaskXPri
-
- ### wird noch erweitert ###
- SYNOPSIS
- SBYTE res = pOS_SetTaskXPri
- (
- pOS_ExecBase *execbase,
- pOS_Task *task,
- SLONG runpri,
- SLONG syspri,
- ULONG mode
- );
-
- FUNCTION
- Ändern der Priorität für einen Task
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- task (_R_A0)
- Adresse des Tasks, dessen Priorität geändert werden soll
- runpri (_R_D0)
- syspri (_R_D1)
- mode (_R_D2) (enum pOS_SetTaskXPriMode)
- TKXPDMD_None
- TKXPDMD_IgnoreSPri
- TKXPDMD_UseSPri : SysPri setzen
- TKXPDMD_NoSem : Speziallfall nur intern
-
- RESULT
- res (_R_D0)
- bisheriger Prioritätswert
-
- SEE ALSO
- pOS_SetTaskPriority()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_AddPort
-
- SYNOPSIS
- VOID pOS_AddPort
- (
- pOS_ExecBase *execbase,
- pOS_MsgPort *msgport
- );
-
- FUNCTION
- Einfügen eines Message-Ports in die Systemliste
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- msgport (_R_A0)
- Zeiger auf die vollständig installierte Message-Port-Struktur
- Entsprechend dem Eintrag msgport->mp_Node.ln_Pri wird der
- Port eingereiht.
-
- NOTE
- Der Message-Port kann mittels pOS_RemPort() wieder aus der
- Systemliste entfernt werden.
- Die mp_MsgList wird beim Einfügen automatisch mittels pOS_ListInit()
- initialisiert.
-
- SEE ALSO
- pOS_CreatePort(), pOS_RemPort(), pOS_FindPort()
-
- AMIGA FUNCTION
- VOID AddPort(struct MsgPort *msgport);
-
-
- pexec.library/pOS_RemPort
-
- SYNOPSIS
- VOID pOS_RemPort
- (
- pOS_ExecBase *execbase,
- pOS_MsgPort *msgport
- );
-
- FUNCTION
- Entfernen eines Message-Ports aus der Systemliste
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- msgport (_R_A0)
- Zeiger auf den zu entfernenden Message-Port, der mittels
- pOS_AddPort() oder pOS_CreatePort() in die Systemliste
- eingehängt wurde.
-
- NOTE
- Nach dem Aushängen können sich noch Nachrichten in dem
- Port befinden. Diese müssen mittels pOS_GetMsg() ausgelesen
- und mittels pOS_ReplyMsg() zurückgeschickt werden.
-
- SEE ALSO
- pOS_AddPort(), pOS_FindPort(), pOS_DeletePort()
-
- AMIGA FUNCTION
- VOID RemPort(struct MsgPort *msgport);
-
-
- pexec.library/pOS_PutMsg
-
- SYNOPSIS
- VOID pOS_PutMsg
- (
- pOS_ExecBase *execbase,
- pOS_MsgPort *msgport,
- __ARID__ pOS_Message *message
- );
-
- FUNCTION
- Senden einer Message an einen Message-Port
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- msgport (_R_A0)
- Zeiger auf den Message-Port, an den die Nachricht geschickt
- werden soll
- message (_R_A1)
- Zeiger auf die zu versendende Nachricht
-
- NOTE
- In der Message wird der Eintrag message->mn_Node.ln_Typ auf
- NTYP_MESSAGE gesetzt. Entsprechend dem Eintrag msgport->mp_Flags
- werden zusätzliche Aktionen veranlaßt:
- MSGPORTF_Signal : es wird ein Signal an den Empfänger geschickt
- MSGPORTF_SoftInt : es wird ein Software-Interrupt ausgelöst
- MSGPORTF_Ignore : keine zusätzliche Aktion
- Wird zusätzlich das Flag MSGPORTF_TPEnqueue mit angegeben, wird
- die Nachricht entsprechend ihrer Priorität (TaskPri vom Nachrichtensender)
- in die Message-Port-Liste des Empfängers eingereit.
-
- SEE ALSO
- pOS_SendSignal(), pOS_AddPort(), pOS_GetMsg(), pOS_ReplyMsg()
-
- AMIGA FUNCTION
- VOID PutMsg(struct MsgPort *msgport, struct Message *message);
-
-
- pexec.library/pOS_GetMsg
-
- SYNOPSIS
- __ARID__ pOS_Message *res = pOS_GetMsg
- (
- pOS_ExecBase *execbase,
- pOS_MsgPort *msgport
- );
-
- FUNCTION
- Abholen der nächsten Message von einem Message-Port
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- msgport (_R_A0)
- Zeiger auf den Message-Port, dessen nächste Nachricht
- ermittelt werden soll
-
- RESULT
- res (_R_D0)
- Zeiger auf die erste Message im Port,
- oder NULL wenn keine Messages vorliegen
-
- NOTE
- Auslesen aller Messages aus dem Port:
- struct pOS_MsgPort *msgport;
- struct pOS_Message *msg;
- while(msg=pOS_GetMsg(pOS_ExecBase,msgport))
- {
- /* Bearbeiten der Nachricht */
- pOS_ReplyMsg(pOS_ExecBase,msg);
- /* Auslesen von msg nicht mehr erlaubt !!! */
- }
-
- SEE ALSO
- pOS_WaitPort(), pOS_ReplyMsg(), pOS_PutMsg()
-
- AMIGA FUNCTION
- struct Message *GetMsg(struct MsgPort *msgport);
-
-
- pexec.library/pOS_ReplyMsg
-
- SYNOPSIS
- VOID pOS_ReplyMsg
- (
- pOS_ExecBase *execbase,
- __ARID__ pOS_Message *message
- );
-
- FUNCTION
- Beantworten einer Message durch zurücksenden an den Absender
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- message (_R_A0)
- Zeiger auf die zurückzusendende Nachricht
- ACHTUNG: Nach der Funktion darf auf message nicht mehr
- zugegriffen werden.
-
- NOTE
- In der Message wird der Eintrag message->mn_Node.ln_Typ auf
- NTYP_REPLYMSG gesetzt.
- Anders als beim Amiga muß der Eintrag message->mn_ReplyPort
- immer gesetzt sein.
-
- SEE ALSO
- pOS_GetMsg(), pOS_PutMsg()
-
- AMIGA FUNCTION
- VOID ReplyMsg(struct Message *message);
-
-
- pexec.library/pOS_WaitPort
-
- SYNOPSIS
- __ARID__ pOS_Message *res = pOS_WaitPort
- (
- pOS_ExecBase *execbase,
- pOS_MsgPort *msgport
- );
-
- FUNCTION
- Warten auf die nächste Message von einem Message-Port
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- msgport (_R_A0)
- Zeiger auf den Message-Port, auf den bis zum Eintreffen
- der nächsten Message gewartet werden soll
-
- RESULT
- res (_R_D0)
- immer Zeiger auf die erste empfangene Message im Port
- Die Nachricht muß aber mittels pOS_GetMsg() vom Port
- abgeholt werden!
-
- NOTE
- Liegt beim Funktionsaufruf bereits eine Nachricht im Port,
- kehrt die Funktion sofort zurück.
- Trifft nur ein Signal (pOS_SendSignal()) ohne einer Nachricht
- ein, kehrt die Funktion nicht zurück!
-
- SEE ALSO
- pOS_AddPort(), pOS_PutMsg(), pOS_WaitSignal(), pOS_SendSignal()
-
- AMIGA FUNCTION
- struct Message *WaitPort(struct MsgPort *msgport);
-
-
- pexec.library/pOS_FindPort
-
- SYNOPSIS
- pOS_MsgPort *res = pOS_FindPort
- (
- pOS_ExecBase *execbase,
- const CHAR *name
- );
-
- FUNCTION
- Suchen eines Message-Ports über seinen Namen in der Systemliste,
- dabei wird zwischen Groß- und Kleinschreibung unterschieden.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- name (_R_A0)
- Namen des Message-Ports, der gesucht werden soll
-
- RESULT
- res (_R_D0)
- Zeiger auf den gefundenen Message-Port,
- oder NULL
-
- SEE ALSO
- pOS_CreatePort(), pOS_AddPort(), pOS_WaitPort()
-
- AMIGA FUNCTION
- struct MsgPort *FindPort(STRPTR name);
-
-
- pexec.library/pOS_CreatePort
-
- SYNOPSIS
- __ARID__ pOS_MsgPort *res = pOS_CreatePort
- (
- pOS_ExecBase *execbase,
- const CHAR *name,
- SLONG priority
- );
-
- FUNCTION
- Anlegen und installieren einer Message-Port-Struktur
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- name (_R_A0)
- Name für den öffentlichen Message-Port oder NULL für
- einen privaten Message-Port. Wird ein Name angegeben,
- wird der Message-Port selbständig mittels pOS_AddPort()
- in die Systemliste eingehängt
- priority (_R_D0)
- Priorität des Message-Ports im Bereich von -128 bis +127,
- normalerweise 0. Bestimmt die Position innerhalb der Systemliste.
-
- RESULT
- res (_R_D0)
- Zeiger auf den reservierten Message-Port, der mittels
- pOS_DeletePort() wieder freigegeben werden muß,
- oder NULL im Fehlerfall (Speichermangel/Signalbit)
-
- SEE ALSO
- pOS_DeletePort(), pOS_FindPort()
-
- AMIGA FUNCTION
- struct MsgPort *CreatePort(STRPTR name, LONG priority);
-
-
- pexec.library/pOS_DeletePort
-
- SYNOPSIS
- VOID pOS_DeletePort
- (
- pOS_ExecBase *execbase,
- __ARID__ pOS_MsgPort *msgport
- );
-
- FUNCTION
- Freigeben einer Message-Port-Struktur
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- msgport (_R_A0)
- Zeiger auf den Message-Port, der freigegeben werden soll.
- Der Message-Port wird, falls notwendig, aus der Systemliste
- ausgehängt (mittels pOS_RemPort()) und die Signalbits freigegeben
- ACHTUNG: Nach der Funktion darf auf den Message-Port nicht
- mehr zurückgegriffen werden
-
- NOTE
- Im Message-Port dürfen keine Nachrichten mehr liegen.
- Das können Sie folgendermaßen sicherstellen:
- struct MsgPort *msgport;
- msgport=pOS_CreateMsgPort(pOS_ExecBase,"msgport",0);
- ...
- pOS_RemPort(pOS_ExecBase,msgport);
- ...
- struct pOS_Message *msg;
- while(msg=pOS_GetMsg(pOS_ExecBase,msgport))
- pOS_ReplyMsg(pOS_ExecBase,msg);
- msgport->mp_Node.ln_Name=NULL; // damit pOS_DeletePort() kein
- pOS_RemPort() aufruft
- pOS_DeletePort(pOS_ExecBase,msgport);
-
- SEE ALSO
- pOS_CreatePort(), pOS_FindPort()
-
- AMIGA FUNCTION
- VOID DeletePort(struct MsgPort *msgport);
-
-
- pexec.library/pOS_ConstructMsgPort
-
- SYNOPSIS
- pOS_MsgPort *res = pOS_ConstructMsgPort
- (
- pOS_ExecBase *execbase,
- pOS_MsgPort *msgport
- );
-
- FUNCTION
- Installieren einer Message-Port-Struktur
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- msgport (_R_A0)
- Zeiger auf die Message-Port-Struktur, die installiert werden soll
- Dabei wird automatisch ein Signal-Bit reserviert
-
- RESULT
- res (_R_D0)
- Übergebener msgport wenn die Struktur installiert wurde,
- sonst NULL
-
- SEE ALSO
- pOS_ConstructSigPort(), pOS_DestructMsgPort(), pOS_AddPort()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DestructMsgPort
-
- SYNOPSIS
- VOID pOS_DestructMsgPort
- (
- pOS_ExecBase *execbase,
- pOS_MsgPort *msgport
- );
-
- FUNCTION
- Deinstallieren einer Message-Port-Struktur
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- msgport (_R_A0)
- Zeiger auf die Message-Port-Struktur, die deinstalliert werden soll
- Dabei wird das Signal-Bit freigegeben
-
- SEE ALSO
- pOS_ConstructMsgPort(), pOS_RemPort()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_ConstructSigPort
-
- SYNOPSIS
- pOS_MsgPort *res = pOS_ConstructSigPort
- (
- pOS_ExecBase *execbase,
- pOS_MsgPort *msgport,
- ULONG signalbit
- );
-
- FUNCTION
- Installieren einer Message-Port-Struktur mit einem Signal-Bit
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- msgport (_R_A0)
- Zeiger auf die Message-Port-Struktur, die installiert werden soll
- signalbit (_R_D0)
- Signalbit, das in der Message-Port-Struktur eingetragen wird.
- Das Signal-Bit kann mittels pOS_AllocSignal() reserviert worden sein.
-
- RESULT
- res (_R_D0)
- Übergebener msgport der installierten Struktur.
-
- SEE ALSO
- pOS_ConstructMsgPort(), pOS_AddPort()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_OpenLibrary
-
- SYNOPSIS
- __ARID__ pOS_Library *res = pOS_OpenLibrary
- (
- pOS_ExecBase *execbase,
- const CHAR *name,
- ULONG version
- );
-
- FUNCTION
- Öffnen einer Library zur Benutzung der Library-Funktionen
-
- Suchvorgang:
- - interne Liste der Libraries
- - CurrentDir/libs/...
- - CurrentDir/...
- - ProgDir:libs/...
- - ProgDir:...
- - LIBS:...
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- name (_R_A0)
- Name der Library, die geöffnet werden soll
- Es wird nicht zwischen Groß- und Kleinschreibung unterschieden
- Bei Bedarf wird die Library automatisch von Disk nachgeladen
- version (_R_D0)
- Minimale Versionsnummer der Library; 0 für eine beliebige Version
- Die tatsächlich geöffnete Library-Version kann in res->lib_Version
- ausgelesen werden
-
- RESULT
- res (_R_D0)
- Zeiger auf die geöffnete Library, die mittels pOS_CloseLibrary()
- wieder geschlossen werden muß,
- NULL im Fehlerfall
-
- NOTE
- Es kann auch aus einer Task-Umgebung eine Library nachgeladen werden.
- Als Name kann auch eine vollständige Pfadangabe übergeben werden,
- z.B. "mydir:mylib.library".
- Ist kein vollständiger Path angegeben, so wird zuerst
- in der Library-Liste/Resident-Liste,
- im aktuellen Verzeichnis unter Libs/,
- im Programmverzeichnis unter Libs/,
- im aktuellen Verzeichnis
- im Libs:
- gesucht.
- Intern wird der Zähler res->lib_OpenCnt um eins erhöht, bevor in
- die Open-Funktion der Library gesprungen wird.
- Daraus kann auch ermittelt werden, ob andere Tasks diese Library
- benutzen (Zähler ist größer als 1).
-
- SEE ALSO
- pOS_CloseLibrary(), pOS_AddLibrary()
-
- AMIGA FUNCTION
- struct Library *OpenLibrary(STRPTR name, ULONG version);
-
-
- pexec.library/pOS_CloseLibrary
-
- SYNOPSIS
- VOID pOS_CloseLibrary
- (
- pOS_ExecBase *execbase,
- __ARID__ pOS_Library *library
- );
-
- FUNCTION
- Schließen einer Library
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- library (_R_A0)
- Zeiger auf die von pOS_OpenLibrary() geöffnete Library
- ACHTUNG: Nach dieser Funktion darf auf library bzw. auf die
- Library-Funktionen nicht mehr zurückgegriffen werden.
-
- NOTE
- Nach Aufruf der Close-Funktion der Library wird der Zähler
- library->lib_OpenCnt um eins vermindert.
- Ist dieser Zähler 0 wird beim nächsten Flush-Durchlauf im
- System die Expunge-Funktion der Library angesprungen, damit
- diese aus dem Speicher entfernt wird.
-
- SEE ALSO
- pOS_OpenLibrary(), pOS_RemLibrary()
-
- AMIGA FUNCTION
- VOID CloseLibrary(struct Library *library);
-
-
- pexec.library/pOS_SetLibFunction
-
- SYNOPSIS
- pOS_LibraryFunction *res = pOS_SetLibFunction
- (
- pOS_ExecBase *execbase,
- pOS_Library *library,
- SLONG offset,
- const pOS_LibraryFunction *newfunction,
- pOS_LibraryFunction *oldfunction
- );
-
- FUNCTION
- Ändern eines Funktionsvektors innerhalb einer Library
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- library (_R_A0)
- Zeiger auf die Library, dessen Funktionsvektor verändert
- werden soll
- offset (_R_D0)
- Offset der Funktion in der Library, die durch eine neue
- ersetzt werden soll
- newfunction (_R_A1)
- Zeiger auf die neue Funktion
- oldfunction (_R_A2)
- Zeiger auf den Speicherbereich, in den die alte Funktion
- abgelegt wird
-
- RESULT
- res (_R_D0)
- Übergebene Zeiger oldfunction, der die bisherige
- Library-Funktion enthält.
-
- NOTE
- Die neue Prüfsumme der Library wird automatisch mittels
- pOS_SumLibrary() berechnet.
-
- SEE ALSO
- pOS_OpenLibrary(), pOS_AddLibrary()
-
- AMIGA FUNCTION
- APTR SetFunction(struct Library *library, LONG offset, APTR newfunction);
-
-
- pexec.library/pOS_MakeLibrary
-
- SYNOPSIS
- __ARID__ pOS_Library *res = pOS_MakeLibrary
- (
- pOS_ExecBase *execbase,
- const ULONG **functionary,
- APTR structure,
- BOOL (*initfunc)(_R_LB pOS_ExecBase *,_R_A0 pOS_Library *),
- size_t datasize,
- pOS_SegmentLst *segmentlist
- );
-
- FUNCTION
- Erstellen einer Library oder eines Devices
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- functionarray (_R_A0)
- Tabelle mit den Adressen der Funktionen; die Tabelle muß
- mittels ~0 abgeschlossen werden.
- structure (_R_A1)
- sollte NULL sein; wird für interne Verwaltung benutzt
- initfunc (_R_A2)
- Zeiger auf die Initialisierungsroutine der Library,
- dabei wird pOS_ExecBase (_R_LB) und pOS_Library (_R_A0)
- übergeben. Bei Rückgabewert FALSE wird die Library sofort
- wieder aus dem Speicher entfernt und freigegeben.
- Der Prototyp für die Init-Funktion lautet:
- BOOL initfunc(pOS_ExecBase *execbase, pOS_Library *library);
- NULL wenn keine Init-Funktion vorhanden ist.
- datasize (_R_D0)
- Größe des Datenbereichs einschließlich der Library-Struktur
- (sizeof(struct Library)). Dieser Wert wird in res->lib_PosSize
- vermerkt.
- segmentlist (_R_A3)
- Segmentliste die an die Init-Funktion der Library übergeben wird.
-
- RESULT
- res (_R_D0)
- Erstellte Library-Struktur, die mittels pOS_AddLibrary() in
- die Systemliste eingefügt werden kann,
- oder NULL im Fehlerfall (Speichermangel)
-
- NOTE
- Diese Funktion wird normal nur vom Betriebssystem benutzt,
- bzw. ist bei der Verwendung privater Libraries notwendig.
-
- SEE ALSO
- pOS_SumLibrary(), pOS_AddLibrary(), pOS_OpenLibrary()
-
- AMIGA FUNCTION
- MakeLibrary(APTR functionarray, APTR structure, ULONG (*initfunction)(), ULONG datasize, BPTR segmentlist)
-
-
- pexec.library/pOS_MakeFunctions
-
- SYNOPSIS
- size_t res = pOS_MakeFunctions
- (
- pOS_ExecBase *execbase,
- pOS_LibraryFunction *libraryfunction,
- const ULONG **functionarray,
- ULONG *base,
- size_t size
- );
-
- FUNCTION
- Aufbau einer Funktions-Sprungtabelle
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- libraryfunction (_R_A0)
- Obere Startadresse der Sprungtabelle
- functionarray (_R_A1)
- Tabelle mit den Adressen der Funktionen, die mittels ~0
- abgeschlossen sein muß.
- base (_R_A2)
- Basisadresse, zu der alle Funktionen relativ berechnet
- werden; NULL wenn alle Adressen absolut vorliegen.
- size (_R_D0)
- >>> ???
-
- RESULT
- res (_R_D0)
- Größer der erstellten Sprungtabelle in Bytes
-
- NOTE
- Diese Funktion wird normal nur vom Betriebssystem benutzt,
- bzw. ist bei der Verwendung privater Libraries notwendig.
-
- SEE ALSO
- pOS_SumLibrary()
-
- AMIGA FUNCTION
- ULONG MakeFunctions(APTR, APTR, APTR);
-
-
- pexec.library/pOS_AddLibrary
-
- SYNOPSIS
- VOID pOS_AddLibrary
- (
- pOS_ExecBase *execbase,
- pOS_Library *library
- );
-
- FUNCTION
- Einfügen einer Library in die Systemliste
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- library (_R_A0)
- Zeiger auf die installierte Library-Struktur
-
- NOTE
- Diese Funktion wird normal nur vom Betriebssystem benutzt,
- bzw. ist bei der Verwendung privater Libraries notwendig.
-
- SEE ALSO
- pOS_OpenLibrary(), pOS_RemLibrary()
-
- AMIGA FUNCTION
- VOID AddLibrary(struct Library *library);
-
-
- pexec.library/pOS_RemLibrary
-
- SYNOPSIS
- VOID pOS_RemLibrary
- (
- pOS_ExecBase *execbase,
- pOS_Library *library
- );
-
- FUNCTION
- Versuch eine Library aus der Systemliste zu entfernen
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- library (_R_A0)
- Zeiger auf die Library, die aus der Systemliste entfernt
- werden soll
-
- NOTE
- Diese Funktion wird normal nur vom Betriebssystem benutzt,
- bzw. ist bei der Verwendung privater Libraries notwendig.
- Es wird die Expunge-Funktion der Library aufgerufen, die
- die Library aus dem Speicher entfernen soll, wenn sie nicht mehr
- benutzt wird.
-
- SEE ALSO
- pOS_AddLibrary(), pOS_CloseLibrary()
-
- AMIGA FUNCTION
- VOID RemLibrary(struct Library *library);
-
-
- pexec.library/pOS_SumLibrary
-
- SYNOPSIS
- VOID pOS_SumLibrary
- (
- pOS_ExecBase *execbase,
- pOS_Library *library
- );
-
- FUNCTION
- Berechnen der Checksumme einer Library
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- library (_R_A0)
- Zeiger auf die Library, dessen Prüfsumme neu berechnet und
- eingetragen werden soll (in library->lib_Sum)
-
- SEE ALSO
- pOS_OpenLibrary(), pOS_AddLibrary(), pOS_MakeLibrary(),
- pOS_MakeFunctions()
-
- AMIGA FUNCTION
- VOID SumLibrary(struct Library *library);
-
- /******************************************************************************/
-
- pexec.library/pOS_AllocAbs
-
- SYNOPSIS
- __ARID__ APTR res = pOS_AllocAbs
- (
- pOS_ExecBase *execbase,
- size_t size,
- APTR location
- );
-
- FUNCTION
- Reservieren eines Speicherbereichs an einer absoluten Adresse
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- size (_R_D0)
- Größe des gewünschten Speicherbereichs; wird auf MEM_BLOCKSIZE gerundet
- locatiton (_R_A0)
- Adresse des absoluten Speicherbereichs
-
- RESULT
- res (_R_D0)
- location wenn der Speicherbereich reserviert wurde,
- sonst NULL
-
- SEE ALSO
- pOS_AllocMem(), pOS_AllocVec(), pOS_FreeMem()
-
- AMIGA FUNCTION
- APTR AllocAbs(ULONG size, APTR location);
-
-
- pexec.library/pOS_Allocate
-
- SYNOPSIS
- __ARID__ APTR res = pOS_Allocate
- (
- pOS_ExecBase *execbase,
- pOS_MemHeader *memheader,
- size_t size
- );
-
- FUNCTION
- Anlegen eines Speicherbereichs innerhalb einer privaten Speicherregion
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- memheader (_R_A0)
- Zeiger auf den MemHeader, der den privaten Speicher verwaltet
- size (_R_D0)
- Größe des gewünschten Speicherbereichs; wird auf MEM_BLOCKSIZE
- aufgerundet
-
- RESULT
- res (_R_D0)
- Zeiger auf den reservierten Speicherbereich, der mittels
- pOS_Deallocate() wieder freigegeben werden muß;
- NULL im Fehlerfall
-
- SEE ALSO
- pOS_Deallocate()
-
- AMIGA FUNCTION
- APTR Allocate(struct MemHeader *memheader, ULONG size);
-
-
- pexec.library/pOS_Deallocate
-
- SYNOPSIS
- VOID pOS_Deallocate
- (
- pOS_ExecBase *execbase,
- pOS_MemHeader *memheader,
- __ARID__ APTR mem,
- size_t size
- );
-
- FUNCTION
- Freigeben eines Speicherbereichs innerhalb einer privaten
- Speicherregion
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- memheader (_R_A0)
- Zeiger auf den MemHeader, der den privaten Speicher verwaltet
- mem (_R_A1)
- Zeiger auf den freizugebenden Speicherbereich, der mittels
- pOS_Allocate() reserviert wurde
- size (_R_D0)
- Größe des freizugebenden Speicherbereichs; wird auf MEM_BLOCKSIZE
- aufgerundet
-
- SEE ALSO
- pOS_Allocate()
-
- AMIGA FUNCTION
- VOID Deallocate(struct MemHeader *memheader, APTR mem, ULONG size);
-
-
- pexec.library/pOS_AllocMem
-
- SYNOPSIS
- __ARID__ APTR res = pOS_AllocMem
- (
- pOS_ExecBase *execbase,
- size_t size,
- ULONG flags
- );
-
- FUNCTION
- Anlegen eines Speicherbereichs
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- size (_R_D0)
- Größe des gewünschten Speicherbereichs; wird auf MEM_BLOCKSIZE
- aufgerundet
- memflags (_R_D1) (enum pOS_MemoryFlag)
- MEMF_ANY : beliebige Art von Speicher
- MEMF_PUBLIC : öffentlicher Speicher, der auch von Interrups
- und anderen Tasks angesprochen werden kann
- MEMF_VMEM : der Speicherbereich kann vom System ausgelagert
- werden
- (Virtuelle Speicherverwaltung)
- MEMF_LOCAL : für einen Speicherbereich, der bei einem
- Warmstart nicht installiert wird
- MEMF_CLEAR : der reservierte Speicherbereich wird mit
- 0 vorbelegt
- MEMF_NO_EXPUNGE : falls kein, mittels AddMemHandler() installierter,
- Speicher-Handler aufgerufen werden soll, um
- Speicherplatz freizugeben, wenn das Anlegen dieses
- Bereiches wegen Speicherplatzmangels fehlschlägt.
-
- RESULT
- res (_R_D0)
- Adresse des reservierten Speicherbereichs, der mittels
- pOS_FreeMem() wieder freigegeben werden muß;
- NULL im Fehlerfall
-
- NOTE
- Nur wenn das Flag MEMF_VMEM gesetzt ist, kann der Speicherblock
- vom Betriebsystem, bei Bedarf, ausgelagert werden. Alle anderen
- Flags verwenden festen, nicht-virtuell-fähigen Speicher.
-
- SEE ALSO
- pOS_FreeMem(), pOS_AllocVec(), pOS_AvailMem()
-
- AMIGA FUNCTION
- APTR AllocMem(ULONG flags, ULONG size);
-
-
- pexec.library/pOS_FreeMem
-
- SYNOPSIS
- VOID pOS_FreeMem
- (
- pOS_ExecBase *execbase,
- __ARID__ APTR mem,
- size_t size
- );
-
- FUNCTION
- Freigeben eines Speicherbereichs
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- mem (_R_A0)
- Adresse des freizugebenden Speicherbereichs, der mittels
- pOS_AllocMem() reserviert wurde
- ACHTUNG: auf den Speicher darf nach dieser Funktion nicht
- mehr zugegriffen werden!
- size (_R_D0)
- Größe des reservierten Speicherbereichs; wird auf MEM_BLOCKSIZE
- aufgerundet
- ACHTUNG: die Größe muß genau der bei pOS_AllocMem() angegebenen
- entsprechen
-
- NOTE
- Es darf nur Speicher freigegeben werden, welcher auch wirklich
- mit pOS_AllocMem() reserviert wurde. Der Speicher darf auch nur
- einmal wieder freigeben werden.
-
- SEE ALSO
- pOS_AllocMem(), pOS_FreeVec()
-
- AMIGA FUNCTION
- VOID FreeMem(APTR mem, ULONG size);
-
-
- pexec.library/pOS_AllocVec
-
- SYNOPSIS
- __ARID__ APTR res = pOS_AllocVec
- (
- pOS_ExecBase *execbase,
- size_t size,
- ULONG memflags
- );
-
- FUNCTION
- Anlegen eines Speicherbereichs
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- size (_R_D0)
- Größe des gewünschten Speicherbereichs; wird auf MEM_BLOCKSIZE
- aufgerundet
- flags (_R_D1) (enum pOS_MemoryFlag)
- MEMF_ANY : beliebige Art von Speicher
- MEMF_PUBLIC : öffentlicher Speicher, der auch von Interrups
- und anderen Tasks angesprochen werden kann
- MEMF_VMEM : der Speicherbereich kann vom System ausgelagert
- werden
- (Virtuelle Speicherverwaltung)
- MEMF_LOCAL : für einen Speicherbereich, der bei einem
- Warmstart nicht installiert wird
- MEMF_CLEAR : der reservierte Speicherbereich wird mit
- 0 vorbelegt
- MEMF_NO_EXPUNGE : falls kein mittels AddMemHandler() installierter
- Speicher-Handler aufgerufen werden soll, um
- Speicherplatz freizugeben, wenn das Anlegen dieses
- Bereiches wegen Speicherplatzmangels fehlschlägt.
-
- RESULT
- res (_R_D0)
- Adresse des reservierten Speicherbereichs, der mittels
- pOS_FreeVec() wieder freigegeben werden muß;
- NULL im Fehlerfall
-
- NOTE
- Diese Funktion ist gleichbedeutend mit pOS_AllocMem().
- Zusätzlich wird aber die Größe des reservierten Speichers
- vermerkt und braucht daher bei pOS_FreeVec() nicht mehr
- angegeben zu werden. Daduch können Fehler beim Freigeben
- mittels einer falschen Größe ausgeschlossen werden.
-
- SEE ALSO
- pOS_FreeVec(), pOS_AllocMem(), pOS_AvailMem()
-
- AMIGA FUNCTION
- APTR AllocVec(ULONG size, ULONG flags);
-
-
- pexec.library/pOS_FreeVec
-
- SYNOPSIS
- VOID pOS_FreeVec
- (
- pOS_ExecBase *execbase,
- __ARID__ APTR mem
- );
-
- FUNCTION
- Freigeben eines Speicherbereichs
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- mem (_R_A0)
- Adresse des freizugebenden Speicherbereichs, der mittels
- pOS_AllocVec() reserviert wurde
- ACHTUNG: auf den Speicher darf nach dieser Funktion nicht
- mehr zugegriffen werden!
-
- SEE ALSO
- pOS_AllocVec(), pOS_FreeMem()
-
- AMIGA FUNCTION
- VOID FreeVec(APTR mem);
-
-
- pexec.library/pOS_AvailMem
-
- SYNOPSIS
- size_t res = pOS_AvailMem
- (
- pOS_ExecBase *execbase,
- ULONG flags
- );
-
- FUNCTION
- Ermitteln des freien Speichers
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- flags (_R_D0) (enum pOS_MemoryFlag)
- MEMF_VMEM : Virtuelle Speicherverwaltung
- MEMF_LARGEST : für den größten zusammenhängenden Speicherblock
- MEMF_TOTAL : für die gesamte Speichergröße (freier und
- benutzter Speicher)
-
- RESULT
- res (_R_D0)
- Größe des freien Speichers in Bytes, von flags abhängig.
-
- SEE ALSO
- pOS_AddMemList(), pOS_AllocMem(), pOS_AllocVec()
-
- AMIGA FUNCTION
- ULONG AvailMem(ULONG flags);
-
-
- pexec.library/pOS_AddMemList
-
- SYNOPSIS
- VOID pOS_AddMemList
- (
- pOS_ExecBase *execbase,
- size_t size,
- ULONG flags,
- SLONG priority,
- APTR mem,
- const CHAR *name
- );
-
- FUNCTION
- Hinzufügen eines freien Speicherbereis zu der Systemspeicherliste
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- size (_R_D0)
- Größe des Speicherbereichs in Byte
- flags (_R_D1)
-
- priority (_R_D2)
- Priorität des Speichers; wird pOS_AllocMem() ... mittels
- MEMF_ANY aufgerufen, wird der Speicher mit der höchsten
- Priorität zuerst reserviert (soweit die gewünschte Größe
- verfügbar ist)
- mem (_R_A0)
- Adresse des neuen Speicherbereichs
- name (_R_A1)
- Name für den neuen Speicherbereich oder NULL
-
- SEE ALSO
- pOS_AllocMem(), pOS_AllocVec(), pOS_AvailMem()
-
- AMIGA FUNCTION
- VOID AddMemList(ULONG size, ULONG flags, LONG priority, APTR mem, STRPTR name);
-
-
- pexec.library/pOS_AllocEntry
-
- SYNOPSIS
- __ARID__ pOS_MemList *res = pOS_AllocEntry
- (
- pOS_ExecBase *execbase,
- pOS_MemPool *mempool,
- pOS_MemList *memlist
- );
-
- FUNCTION
- Anlegen mehrerer Speicherbereiche
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- mempool (_R_A0)
- Zeiger auf den MemPool, aus dem der Speicher besorgt werden
- soll oder NULL
- memlist (_R_A1)
- Zeiger auf die Speicherliste, in der die zu reservierenden
- Speicherblöcke und deren Attribute vermerkt sind
-
- RESULT
- res (_R_D0)
- Neu reservierte MemList, in der die Adressen und Größen der
- einzelnen Speicherbereiche vermerkt ist;
- NULL im Fehlerfall.
- Der Speicher kann mittels pOS_FreeEntry() freigegeben werden.
-
- SEE ALSO
- pOS_FreeEntry()
-
- AMIGA FUNCTION
- struct MemList *AllocEntry(struct MemList *memlist);
-
-
- pexec.library/pOS_FreeEntry
-
- SYNOPSIS
- VOID pOS_FreeEntry
- (
- pOS_ExecBase *execbase,
- pOS_MemPool *mempool,
- __ARID__ pOS_MemList *memlist
- );
-
- FUNCTION
- Freigeben mehrerer Speicherbereiche
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- mempool (_R_A0)
- Zeiger auf den MemPool, an den der Speicher zurückgegeben werden
- soll oder NULL
- memlist (_R_A1)
- Zeiger auf die Speicherliste, in der die freizugebenden
- Speicherblöcke und Größen vermerkt sind
-
- SEE ALSO
- pOS_AllocEntry()
-
- AMIGA FUNCTION
- VOID FreeEntry(struct MemList *memlist);
-
- /******************************************************************************/
-
- pexec.library/pOS_InitMemPool
-
- SYNOPSIS
- VOID pOS_InitMemPool
- (
- pOS_ExecBase *execbase,
- pOS_MemPool *mempool,
- size_t size,
- ULONG flags
- );
-
- FUNCTION
- Installieren einer MemPool-Struktur
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- mempool (_R_A0)
- Zeiger auf den privaten MemPool-Verwalter
- size (_R_D0)
- Größe des kleinsten Speicherblocks im Pool
- flags (_R_D1) (enum pOS_MemoryFlag)
- Art des privat verwalteten Speichers
- MEMF_ANY : beliebige Art von Speicher
- MEMF_PUBLIC : öffentlicher Speicher, der auch von Interrups
- und anderen Tasks angesprochen werden kann
- MEMF_VMEM : der Speicherbereich kann vom System ausgelagert
- werden
- (Virtuelle Speicherverwaltung)
-
- NOTE
- Die beiden Funktions-Zeiger mpl_Alloc und mpl_Free zeigen
- nach dieser Funktion auf Systemroutinen. Soll eine eigene Speicher-
- verwaltung stattfinden, können hier andere Routinen eingehängt
- werden. Diese gelten in den Funktionen pOS_AllocPoolMem()/
- pOS_AllocPoolVec()/pOS_FreePoolMem()/pOS_FreePoolVec() wenn
- ein Speicher aus der globalen Systemspeicherliste reserviert
- werden muß.
-
- SEE ALSO
- pOS_AllocPoolMem(), pOS_AllocPoolVec(), pOS_FreePoolAll()
-
- AMIGA FUNCTION
- APTR CreatePool(ULONG flags, ULONG, ULONG size);
-
-
- pexec.library/pOS_AllocPoolMem
-
- SYNOPSIS
- __ARID__ APTR res = pOS_AllocPoolMem
- (
- pOS_ExecBase *execbase,
- pOS_MemPool *mempool,
- size_t size,
- ULONG flags
- );
-
- FUNCTION
- Reservieren eines Speicherbereichs innerhalb eines privaten
- Speicher-Pools
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- mempool (_R_A0)
- Zeiger auf den privaten MemPool-Verwalter
- size (_R_D0)
- Größe des zu reservierenden Speicherbereichs
- flags (_R_D1) (enum pOS_MemoryFlag)
- MEMF_CLEAR : der reservierte Speicherbereich wird mit
- 0 vorbelegt
- MEMF_NO_EXPUNGE : falls kein mittels AddMemHandler() installierter
- Speicher-Handler aufgerufen werden soll, um
- Speicherplatz freizugeben, wenn das Anlegen dieses
- Bereiches wegen Speicherplatzmangels fehlschlägt.
- MEMF_ANY, MEMF_PUBLIC, MEMF_VMEM entsprechend der Angabe bei
- pOS_InitMemPool()
-
- RESULT
- res (_R_D0)
- Adresse des reservierten Speicherbereichs, der mittels
- pOS_FreePoolMem() oder pOS_FreePoolAll() wieder freigegeben
- werden muß; NULL im Fehlerfall.
-
- NOTE
- Kann der Speicherblock nicht aus dem Pool reserviert werden,
- wird er aus der Systemspeicherliste reserviert und in die Pool-
- Verwaltung aufgenommen.
-
- SEE ALSO
- pOS_FreePoolMem(), pOS_AllocPoolVec(), pOS_InitMemPool()
-
- AMIGA FUNCTION
- APTR AllocPooled(APTR mempool, ULONG size);
-
-
- pexec.library/pOS_FreePoolMem
-
- SYNOPSIS
- VOID pOS_FreePoolMem
- (
- pOS_ExecBase *execbase,
- pOS_MemPool *mempool,
- __ARID__ APTR mem,
- size_t size
- );
-
- FUNCTION
- Freigeben eines Speicherbereichs innerhalb eines privaten
- Speicher-Pools
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- mempool (_R_A0)
- Zeiger auf den privaten MemPool-Verwalter
- mem (_R_A1)
- Adresse des freizugebenden Speicherbereichs, der mittels
- pOS_AllocPoolMem() reserviert wurde
- size (_R_D0)
- Größe des freizugebenden Speicherbereichs
-
- SEE ALSO
- pOS_AllocPoolMem(), pOS_FreePoolAll()
-
- AMIGA FUNCTION
- VOID FreePooled(APTR mempool, APTR mem, ULONG size);
-
-
- pexec.library/pOS_FreePoolAll
-
- SYNOPSIS
- VOID pOS_FreePoolAll
- (
- pOS_ExecBase *execbase,
- pOS_MemPool *mempool
- );
-
- FUNCTION
- Freigeben aller mittels pOS_AllocPoolMem() oder pOS_AllocPoolVec()
- reservierten Speicherblöcke aus dem privaten Speicherpool.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- mempool (_R_A0)
- Zeiger auf den privaten MemPool-Verwalter, dessen kompletter
- reservierter Speicher freigegeben werden soll
-
- NOTE
- Nach der Funktion ist der komplette Pool in dem Zustand,
- wie er nach pOS_InitMemPool() vorliegt.
-
- SEE ALSO
- pOS_AllocPoolMem(), pOS_AllocPoolVec(), pOS_InitMemPool()
-
- AMIGA FUNCTION
- VOID DeletePool(APTR mempool);
-
-
- pexec.library/pOS_AllocPoolVec
-
- SYNOPSIS
- __ARID__ APTR res = pOS_AllocPoolVec
- (
- pOS_ExecBase *execbase,
- pOS_MemPool *mempool,
- size_t size,
- ULONG flags
- );
-
- FUNCTION
- Reservieren eines Speicherbereichs innerhalb eines privaten
- Speicher-Pools
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- mempool (_R_A0)
- Zeiger auf den privaten MemPool-Verwalter
- size (_R_D0)
- Größe des zu reservierenden Speicherbereichs
- flags (_R_D0) (enum pOS_MemoryFlag)
- MEMF_CLEAR : der reservierte Speicherbereich wird mit
- 0 vorbelegt
- MEMF_NO_EXPUNGE : falls kein mittels AddMemHandler() installierter
- Speicher-Handler aufgerufen werden soll, um
- Speicherplatz freizugeben, wenn das Anlegen dieses
- Bereiches wegen Speicherplatzmangels fehlschlägt.
- MEMF_ANY, MEMF_PUBLIC, MEMF_VMEM entsprechend der Angabe bei
- pOS_InitMemPool()
-
- NOTE
- Kann der Speicherblock nicht aus dem Pool reserviert werden,
- wird er aus der Systemspeicherliste reserviert und in die Pool-
- Verwaltung aufgenommen.
-
- RESULT
- res (_R_D0)
- Adresse des reservierten Speicherbereichs, der mittels
- pOS_FreePoolVec() oder pOS_FreePoolAll() wieder freigegeben
- werden muß; NULL im Fehlerfall.
-
- SEE ALSO
- pOS_FreePoolVec(), pOS_AllocPoolMem(), pOS_InitMemPool()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_FreePoolVec
-
- SYNOPSIS
- VOID pOS_FreePoolVec
- (
- pOS_ExecBase *execbase,
- pOS_MemPool *mempool,
- __ARID__ APTR mem
- );
-
- FUNCTION
- Freigeben eines Speicherbereichs innerhalb eines privaten
- Speicher-Pools
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- mempool (_R_A0)
- Zeiger auf den privaten MemPool-Verwalter
- mem (_R_A1)
- Adresse des freizugebenden Speicherbereichs, der mittels
- pOS_AllocPoolVec() reserviert wurde
-
- SEE ALSO
- pOS_AllocPoolVec(), pOS_FreePoolAll()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_CopyMem
-
- SYNOPSIS
- VOID pOS_CopyMem
- (
- pOS_ExecBase *execbase,
- const APTR source,
- APTR dest,
- size_t size
- );
-
- FUNCTION
- Kopieren eines Speicherbereichs
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- source(_R_A0)
- Start-Adresse des zu kopierenden Bereichs
- dest (_R_A1)
- Ziel-Adresse für das Kopieren
- size (_R_D0)
- Größe des zu kopierenden Speicherbereichs
-
- AMIGA FUNCTION
- VOID CopyMem(APTR source, APTR dest, ULONG size);
-
-
- pexec.library/pOS_AddMemHandler
-
- SYNOPSIS
- VOID pOS_AddMemHandler
- (
- pOS_ExecBase *execbase,
- pOS_Callback *callback
- );
-
- FUNCTION
- Hinzufügen eines Speicher-Handlers zum System
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- callback (_R_A0)
- Zeiger auf den Callback, der den Speicher-Handler beschreibt.
-
- SEE ALSO
- pOS_RemMemHandler()
-
- AMIGA FUNCTION
- VOID AddMemHandler(struct Interrupt *);
-
-
- pexec.library/pOS_RemMemHandler
-
- SYNOPSIS
- VOID pOS_RemMemHandler
- (
- pOS_ExecBase *execbase,
- pOS_Callback *callback
- );
-
- FUNCTION
- Entfernen eines (eigenen) Speicher-Handlers aus dem System
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- callback (_R_A0)
- Zeiger auf den Callback, der den Speicher-Handler beschreibt.
-
- SEE ALSO
- pOS_AddMemHandler()
-
- AMIGA FUNCTION
- VOID RemMemHandler(struct Interrupt *);
-
- /******************************************************************************/
-
- pexec.library/pOS_InitSemaphore
-
- SYNOPSIS
- VOID pOS_InitSemaphore
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore
- );
-
- FUNCTION
- Installieren einer Semaphore-Struktur
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die zu installierende Semaphore-Struktur.
-
- NOTE
- Im Feld semaphore->ss_Link.ln_Name kann ein beliebiger Name
- eingetragen werden, wodurch die Semaphore über pOS_FindSemaphore()
- gefunden werden kann.
-
- Im Debugmodus wird bei Semaphorefehlern zusätzlich der Eintrag
- semaphore->ss_Link.ln_Name mit ausgegeben.
-
- SEE ALSO
- pOS_ObtainSemaphore(), pOS_AttemptSemaphore(),
- pOS_ObtainSemaphoreShared(), pOS_AddSemaphore()
-
- AMIGA FUNCTION
- VOID InitSemaphore(struct SignalSemaphore *semaphore);
-
-
- pexec.library/pOS_ObtainSemaphore
-
- SYNOPSIS
- VOID pOS_ObtainSemaphore
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore
- );
-
- FUNCTION
- Sperren einer Semaphore für exclusiven Zugriff
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
-
- NOTE
- Ist in semaphore->ss_Flags das Flag SEMF_TPEnqueue gesetzt und
- wollen mehrere Task die Semaphore locken, wird entsprechend
- der Taskpriorität, der Task mit der höchsten Priorität bevorzugt.
-
- Die Funktion wartet solange, bis die Semaphore exclusiv reserviert
- werden kann. Der gleiche Task kann diese Funktion mehrfach auf-
- rufen, wobei sofort zurückgekehrt wird.
-
- SEE ALSO
- pOS_ReleaseSemaphore()
-
- AMIGA FUNCTION
- VOID ObtainSemaphore(struct SignalSemaphore *semaphore);
-
-
- pexec.library/pOS_ReleaseSemaphore
-
- SYNOPSIS
- VOID pOS_ReleaseSemaphore
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore
- );
-
- FUNCTION
- Aufheben einer Semaphore-Sperre
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die gesperrte Semaphore
-
- SEE ALSO
- pOS_ObtainSemaphore(), pOS_ObtainSemaphoreShared(),
- pOS_AttemptSemaphore()
-
- AMIGA FUNCTION
- VOID ReleaseSemaphore(struct SignalSemaphore *semaphore);
-
-
- pexec.library/pOS_AttemptSemaphore
-
- SYNOPSIS
- BOOL pOS_AttemptSemaphore
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore
- );
-
- FUNCTION
- Versuch der Sperrung einer Semaphore für den exclusiven Zugriff.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
-
- RESULT
- res (_R_D0)
- TRUE wenn die Semaphore für den exclusiven Zugriff
- gesperrt wurde. Dann muß die Sperrung mittels pOS_ReleaseSemaphore()
- wieder aufgehoben werden.
- FALSE wenn die Semaphore schon von einem anderen Task gesperrt ist
-
- SEE ALSO
- pOS_ReleaseSemaphore(), pOS_ObtainSemaphore(), pOS_AttemptTimeSemaphore()
-
- AMIGA FUNCTION
- LONG AttemptSemaphore(struct SignalSemaphore *semaphore);
-
-
- pexec.library/pOS_ObtainSemaphoreShared
-
- SYNOPSIS
- VOID pOS_ObtainSemaphoreShared
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore
- );
-
- FUNCTION
- Sperren einer Semaphore für nichtexclusiven Zugriff.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
-
- SEE ALSO
- pOS_ReleaseSemaphore(), pOS_ObtainSemaphore(),
- pOS_AttemptSemaphore()
-
- AMIGA FUNCTION
- VOID ObtainSemaphoreShared(struct SignalSemaphore *semaphore);
-
-
- pexec.library/pOS_ObtainSemaphoreList
-
- SYNOPSIS
- VOID pOS_ObtainSemaphoreList
- (
- pOS_ExecBase *execbase,
- pOS_ExList *list
- );
-
- FUNCTION
- Sperren mehrerer Semaphoren für exclusiven Zugriff
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- list (_R_A0)
- Zeiger auf die installierte Liste mit den zu sperrenden
- Semaphoren
-
- NOTE
- Die Funktion kehrt erst dann zurück, wenn alle Semaphoren aus
- der Liste gesperrt werden konnten.
-
- SEE ALSO
- pOS_ReleaseSemaphoreList()
-
- AMIGA FUNCTION
- VOID ObtainSemaphoreList(struct List *list);
-
-
- pexec.library/pOS_ReleaseSemaphoreList
-
- SYNOPSIS
- VOID pOS_ReleaseSemaphoreList
- (
- pOS_ExecBase *execbase,
- pOS_ExList *list
- );
-
- FUNCTION
- Aufheben mehrerer Semaphore-Sperren
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- list (_R_A0)
- Zeiger auf die Liste mit den gesperrten Semaphoren
-
- SEE ALSO
- pOS_ObtainSemaphoreList()
-
- AMIGA FUNCTION
- VOID ReleaseSemaphoreList(struct List *list);
-
-
- pexec.library/pOS_FindSemaphore
-
- SYNOPSIS
- pOS_Semaphore *res = pOS_FindSemaphore
- (
- pOS_ExecBase *execbase,
- const CHAR *name
- );
-
- FUNCTION
- Suchen einer Semaphore in der Systemliste anhand des Namens
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- name (_R_A0)
- Name der Semaphore, nach der gesucht werden soll.
-
- RESULT
- res (_R_D0)
- Zeiger auf die gefundene Semaphore,
- oder NULL wenn keine entsprechende Semaphore in der Systemliste
- vorhanden ist.
-
- SEE ALSO
- pOS_AttemptSemaphore(), pOS_ObtainSemaphore(),
- pOS_ObtainSemaphoreShared()
-
- AMIGA FUNCTION
- struct SignalSemaphore *FindSemaphore(STRPTR name);
-
-
- pexec.library/pOS_AddSemaphore
-
- SYNOPSIS
- VOID pOS_AddSemaphore
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore
- );
-
- FUNCTION
- Einfügen einer Semaphore in die Systemliste
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die einzufügende Semaphore
- Im Feld semaphore->ss_Link.ln_Name kann der Name der Semaphore
- angegeben werden.
-
- SEE ALSO
- pOS_RemSemaphore(), pOS_FindSemaphore()
-
- AMIGA FUNCTION
- VOID AddSemaphore(struct SignalSemaphore *semaphore);
-
-
- pexec.library/pOS_RemSemaphore
-
- SYNOPSIS
- VOID pOS_RemSemaphore
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore
- );
-
- FUNCTION
- Entfernen einer Semaphore aus der Systemliste
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die zu entferndende Semaphore
-
- SEE ALSO
- pOS_AddSemaphore(), pOS_FindSemaphore()
-
- AMIGA FUNCTION
- VOID RemSemaphore(struct SignalSemaphore *semaphore);
-
-
- pexec.library/pOS_ProcureSemaphore
-
- SYNOPSIS
- VOID pOS_ProcureSemaphore
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore,
- pOS_Message *message
- );
-
- FUNCTION
- Asynchrones Sperren einer Semaphore für exclusiven
- Zugriff. Der Task wird dabei nicht angehalten.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
- message (_R_A1)
- Message, die zurückgeschickt wird, wenn die Signal-
- Semaphore gesperrt wurde.
-
- EXAMPLE
- {
- extern pOS_Semaphore *Semaphore;
- pOS_Message Message;
- pOS_MsgPort MsgPort;
-
- ww_InitNode(&Message.mn_Node);
- pOS_ConstructMsgPort(&MsgPort);
- Message.mn_ReplyPort=&MsgPort;
- ...
- /* Semaphore asynchron anfordern */
- pOS_ProcureSemaphore(Semaphore,&Message);
- ...
- ... do something
- ...
-
- /* Abbruch des asynchronen Semaphore-Locken */
- if(...) pOS_VacateSemaphore(Semaphore,&Message);
- else {
- /* Warten bis Semaphore gesperrt ist */
- pOS_WaitPort(&MsgPort);
- /* ReplyPort leeren: Semaphore-Nachricht */
- pOS_GetMsg(&MsgPort);
- ...
- ...
- /* Semaphore wieder freigeben */
- /* pOS_ReleaseSemaphore() ist ebenfalls möglich */
- pOS_VacateSemaphore(Semaphore,&Message);
- }
- ...
- pOS_DestructMsgPort(&MsgPort);
- }
-
- SEE ALSO
- pOS_ObtainSemaphore(), pOS_ReleaseSemaphore(),
- pOS_VacateSemaphore()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_VacateSemaphore
-
- SYNOPSIS
- VOID pOS_VacateSemaphore
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore,
- pOS_Message *message
- );
-
- FUNCTION
- Abbrechen einer asynchronen Semaphore-Anforderung oder
- Aufheben der bestehenden Semaphore-Sperre.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
- message (_R_A1)
- Message die an pOS_ProcureSemaphore() übergeben wurde
-
- SEE ALSO
- pOS_ProcureSemaphore()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_AttemptProcureSemaphore
-
- SYNOPSIS
- BOOL res = pOS_AttemptProcureSemaphore
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore,
- pOS_Message *message
- );
-
- FUNCTION
- Versuch der sofortigen Sperrung einer Semaphore für
- den exclusiven Zugriff. Ist das nicht möglich, wird die
- Semaphore asynchron gesperrt.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
- message (_R_A1)
- Message, die zurückgeschickt wird, wenn die Signal-
- Semaphore gesperrt wurde.
-
- RESULT
- res (_R_D0)
- TRUE wenn die Semaphore sofort gesperrt werden konnte
- (entspricht pOS_ObtainSemaphore()-Verhalten),
- sonst FALSE, dann wird die Semaphore asynchron gesperrt
- (entspricht pOS_ProcureSemaphore()-Verhalten).
- Bei TRUE wird KEINE Nachricht zurückgesendet !!!
-
- SEE ALSO
- pOS_ProcureSemaphore(), pOS_VacateSemaphore()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_AttemptTimeSemaphore
-
- SYNOPSIS
- BOOL res = pOS_AttemptTimeSemaphore
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore,
- ULONG micros
- );
-
- FUNCTION
- Versuch der Sperrung einer Semaphore für den exclusiven Zugriff.
- Falls die Semaphore noch von anderen Task benutzt wird, wird
- max. micros gewartet und dann die Funktion abgebrochen.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
- micros (_R_D0)
- Maximale Wartezeit in Mikrosekunden, wenn die Semaphore im
- Moment noch von anderen Tasks benutzt wird.
-
- RESULT
- res (_R_D0)
- TRUE wenn die Semaphore für den exclusiven Zugriff
- gesperrt wurde. Dann muß die Sperrung mittels pOS_ReleaseSemaphore()
- wieder aufgehoben werden.
- FALSE wenn andere Task die Semaphore noch benutzen.
-
- SEE ALSO
- pOS_AttemptSemaphore(), pOS_ReleaseSemaphore()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_AddSemaphoreQR
-
- SYNOPSIS
- VOID pOS_AddSemaphoreQR
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore,
- pOS_Message *message
- );
-
- FUNCTION
- Installieren einer Benachrichtigung, wenn ein anderer Task
- die angegebene Semaphore locken möchte.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
- message (_R_A1)
- Message, die an den Aufrufer zurückgeschickt wird, wenn
- ein anderer Task die Semaphore locken möchte.
-
- EXAMPLE
- /* Message und Port vorbereiten */
-
- pOS_MsgPort msgport;
- pOS_ConstructMsgPort(&msgport);
- struct pOS_Message msg={ {NULL,NULL,NTYP_MESSAGE,0,NULL},&msgport};
-
- /* Semaphore normal besorgen */
- pOS_Semaphore sema;
- pOS_InitSemaphore(&sema);
-
- /* ... */
-
- pOS_ObtainSemaphore(&sema);
- pOS_AddSemaphoreQR(&sema,&msg);
-
- for(i=0; i<100; i++)
- {
- /* ... */
-
- /* prüfen, ob jemand die Semaphore locken möchte */
- if(pOS_GetMsg(&msgport)
- {
- /* die Semaphore freigeben */
- pOS_RemSemaphoreQR(&sema,&msg);
- pOS_ReleaseSemaphore(&sema);
- /* anderen Task reinlassen */
- pOS_ObtainSemaphore(&sema);
- pOS_AddSemaphoreQR(&sema,&msg);
- }
- }
-
- /* Semaphore wieder freigeben */
- pOS_RemSemaphoreQR(&sema,&msg);
- pOS_ReleaseSemaphore(&sema);
-
- /* Message und Port freigeben */
- pOS_GetMsg(&msgport);
- pOS_DestructMsgPort(&msgport);
-
- SEE ALSO
- pOS_RemSemaphoreQR()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_RemSemaphoreQR
-
- SYNOPSIS
- VOID pOS_RemSemaphoreQR
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore,
- pOS_Message *message
- );
-
- FUNCTION
- Entfernen einer Benachrichtigung, die mittels pOS_AddSemaphoreQR()
- installiert wurde.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
- message (_R_A1)
- Message-Zeiger, wie bei pOS_AddSemaphoreQR()
-
- SEE ALSO
- pOS_AddSemaphoreQR()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_IsObtainSemaphore
-
- SYNOPSIS
- BOOL res = pOS_IsObtainSemaphore
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore
- );
-
- FUNCTION
- Prüfen, ob eine Semaphore vom aktuelles Task bereits gesperrt ist.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
-
- RESULT
- res (_R_D0)
- TRUE wenn die angegebene Semaphore bereits gesperrt wurde, sonst FALSE.
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_AttemptSemaphoreShared
-
- SYNOPSIS
- BOOL res = pOS_AttemptSemaphoreShared
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore
- );
-
- FUNCTION
- Versuch der Sperrung einer Semaphore für den nichtexclusiven Zugriff.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
-
- RESULT
- res (_R_D0)
- TRUE, wenn die Semaphore gesperrt werden konnte;
- sonst FALSE.
-
- SEE ALSO
- pOS_ProcureSemaphoreShared(), pOS_AttemptTimeSemaphoreShared()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_ProcureSemaphoreShared
-
- SYNOPSIS
- VOID pOS_ProcureSemaphoreShared
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore,
- pOS_Message *message
- );
-
- FUNCTION
- Asynchrones Sperren einer Semaphore für nichtexclusiven
- Zugriff. Der Task wird dabei nicht angehalten.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
- message (_R_A1)
- Message, die zurückgeschickt wird, wenn die Signal-
- Semaphore gesperrt wurde.
-
- SEE ALSO
- pOS_AttemptSemaphoreShared()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_AttemptTimeSemaphoreShared
-
- SYNOPSIS
- BOOL res = pOS_AttemptTimeSemaphoreShared
- (
- pOS_ExecBase *execbase,
- pOS_Semaphore *semaphore,
- ULONG micros
- );
-
- FUNCTION
- Versuch der Sperrung einer Semaphore für den nichtexclusiven Zugriff.
- Falls die Semaphore noch von anderen Task exclusiv benutzt wird, wird
- max. micros gewartet und dann die Funktion abgebrochen.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- semaphore (_R_A0)
- Zeiger auf die installierte Semaphore
- micros (_R_D0)
- Maximale Wartezeit in Mikrosekunden, wenn die Semaphore im
- Moment noch von anderen Tasks exclusiv gelockt ist.
-
- RESULT
- res (_R_D0)
- TRUE wenn die Semaphore für den nichtexclusiven Zugriff
- gesperrt wurde. Dann muß die Sperrung mittels pOS_ReleaseSemaphore()
- wieder aufgehoben werden.
- FALSE wenn andere Task die Semaphore noch exclusiv benutzen.
-
- SEE ALSO
- pOS_ProcureSemaphoreShared()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DisplayAlert
-
- SYNOPSIS
- VOID pOS_DisplayAlert
- (
- pOS_ExecBase *execbase,
- ULONG alertnummer
- );
-
- FUNCTION
- Darstellen einer Warnmeldung
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- alertnummer (_R_D0) (enum pOS_Alerts)
- Nummer der Warnmeldung, vordefinierte Fehlernummern
- sind in der Datei "pExec/Diagnos.h" nachzulesen.
- Nummern ab 0x35000000 stehen für Programmeigene
- Fehlernummern zur Verfügung.
-
- SEE ALSO
-
- AMIGA FUNCTION
- VOID Alert(ULONG alertnummer);
-
-
- pexec.library/pOS_ExecCheckA
-
- SYNOPSIS
- BOOL res = pOS_ExecCheckA
- (
- pOS_ExecBase *execbase,
- const pOS_TagItem *taglist
- );
-
- FUNCTION
- Prüfen oder Erfragen der Systemumgebung.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- taglist (_R_A0)
- EXTSTTAG_CPU : prüft, ob die gewünschte CPU verfügbar ist
- EXTSTTAG_FPU : prüft, ob die gewünschte FPU verfügbar ist
- EXTSTTAG_MainOSID : prüft, ob die gewünschte pOS-Version läuft
-
- EXTSTTAG_GetCPU : liefert die vorhandene CPU-Kennung
- EXTSTTAG_GetFPU : liefert die vorhandene FPU-Kennung
-
- RESULT
- res (_R_D0)
- TRUE wenn die Abfrage zutrifft, sonst FALSE.
- Es sollten keine Prüfungen mit Werteermittlungen kombiniert
- werden, da der Rückgabewert dann undefiniert ist.
-
- EXAMPLE
- const struct pOS_TagItem taglist[]=
- {
- EXTSTTAG_MainOSID, pOS_MAINOSID,
- TAG_END
- };
-
- if(pOS_ExecCheckA(taglist))
- {
- /* ... Programmcode ... */
- }
- /* else falsche pOS-Version */
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_FindResident
-
- SYNOPSIS
- pOS_Resident *res = pOS_FindResident
- (
- pOS_ExecBase *execbase,
- const CHAR *name
- );
-
- FUNCTION
- Suchen eines residenten Moduls über seinen Namen in der Systemliste
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- name (_R_A0)
- Name des zu suchenden Moduls
-
- RESULT
- res (_R_D0)
- Zeiger auf das gefundene Resident-Modul,
- oder NULL wenn kein entsprechendes Modul existiert.
-
- SEE ALSO
- pOS_InitResident()
-
- AMIGA FUNCTION
- struct Residnet *FindResident(STRPTR name);
-
-
- pexec.library/pOS_InitResident
-
- SYNOPSIS
- APTR res = pOS_InitResident
- (
- pOS_ExecBase *execbase,
- const pOS_Resident *resident,
- pOS_SegmentLst *segmentlist
- );
-
- FUNCTION
- Installieren eines residenten Modules
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- resident (_R_A0)
- Zeiger auf die zu installierende Resident-Struktur
- segmentlist (_R_A1)
- Zeiger auf die Segmentliste des zu ladenden Objekts;
-
- RESULT
- res (_R_D0)
- Rückgabewert der Installierungsfunktion.
- Diese hängt vom installierten Modul ab; normalerweise
- der Zeiger auf eine Library- oder Device-Struktur.
- NULL im Fehlerfall.
-
- SEE ALSO
- pOS_FindResident()
-
- AMIGA FUNCTION
- APTR InitResident(struct Resident *resident, BPTR segmentlist);
-
- /******************************************************************************/
-
- pexec.library/pOS_OpenDevice
-
- SYNOPSIS
- SBYTE res = pOS_OpenDevice
- (
- pOS_ExecBase *execbase,
- const CHAR *name,
- ULONG unit,
- pOS_IORequest *iorequest,
- ULONG flags,
- ULONG version
- );
-
- FUNCTION
- Öffnen eines Devices zur Benutzung
-
- Suchvorgang:
- - interne Liste der Devices
- - CurrentDir/devs/...
- - CurrentDir/...
- - ProgDir:devs/...
- - ProgDir:...
- - DEVS:...
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- name (_R_A0)
- Name des zu öffnenden Devices
- unit (_R_D0)
- Unit-Nummer des zu öffnenden Devices
- iorequest (_R_A1)
- Zeiger auf die installierte IORequest-Struktur
- flags (_R_D1)
- Devicespezifische Flags
- version (_R_D2)
- minimale Versionsnummer des zu öffnenden Devices;
- 0 für ein beliebiges Device
-
- RESULT
- res (_R_D0)
- 0 wenn das Device offen ist. Dann kann der Device-Basiszeiger
- aus iorequest->io_Device ausgelesen werden;
- sonst eine devicespezifische Fehlernummer, welche auch aus
- iorequest->io_Error ausgelesen werden kann.
-
- NOTE
- Die genauen Daten (name, unit, iorequest, flags) können in
- den einzelnen Device-Beschreibungen nachgelesen werden.
-
- SEE ALSO
- pOS_CloseDevice(), pOS_AddDevice(), pOS_BeginIO(), pOS_SendIO(),
- pOS_DoIO()
-
- AMIGA FUNCTION
- LONG OpenDevice(STRPTR name, ULONG unit, struct IORequest *iorequest, ULONG flags);
-
-
- pexec.library/pOS_CloseDevice
-
- SYNOPSIS
- VOID pOS_CloseDevice
- (
- pOS_ExecBase *execbase,
- pOS_IORequest *iorequest
- );
-
- FUNCTION
- Schließen eines Devices
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- iorequest (_R_A0)
- Zeiger auf die installierte IORequest-Struktur des zu
- schließenden Devices.
-
- SEE ALSO
- pOS_OpenDevice(), pOS_RemDevice(), pOS_CheckIO(), pOS_WaitIO(),
- pOS_AbortIO()
-
- AMIGA FUNCTION
- VOID CloseDevice(struct Device *device);
-
-
- pexec.library/pOS_DoIO
-
- SYNOPSIS
- SBYTE res = pOS_DoIO
- (
- pOS_ExecBase *execbase,
- pOS_IORequest *iorequest
- );
-
- FUNCTION
- Synchrones Ausführen eines Device-Kommandos und Warten auf
- seine Abarbeitung
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- iorequest (_R_A0)
- Zeiger auf die installierte IORequest-Struktur
-
- RESULT
- res (_R_D0)
- 0 bei Erfolg, sonst eine devicespezifische Fehlernummer
- (entsprechend dem Eintrag iorequester->io_Error).
-
- NOTE
- Es wird zuerst iorequest->io_Flags auf IOREQF_Quick gesetzt.
- Die Funktion sendet die Message mittels pOS_BeginIO()
- und wartet mit pOS_WaitIO() auf dessen komplette Abarbeitung.
- Danach wird der Fehlercode aus iorequest->io_Error zurück-
- gegeben.
-
- SEE ALSO
- pOS_OpenDevice(), pOS_CreateIORequest(), pOS_SendIO(),
- pOS_BeginIO()
-
- AMIGA FUNCTION
- LONG DoIO(struct IORequest *iorequest);
-
-
- pexec.library/pOS_SendIO
-
- SYNOPSIS
- VOID pOS_SendIO
- (
- pOS_ExecBase *execbase,
- __ARID__ pOS_IORequest *iorequest
- );
-
- FUNCTION
- Asynchrones Ausführen eines Device-Kommandos
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- iorequest (_R_A0)
- Zeiger auf die installierte IORequest-Struktur
-
- NOTE
- Die Funktion ist gleichbedeutend mit pOS_BeginIO();
- zusätzlich wird IOREQF_Quick aus iorequest->io_Flags
- entfernt, wodurch eine asynchrone Abarbeitung erzwungen
- wird.
-
- SEE ALSO
- pOS_OpenDevice(), pOS_CreateIORequest(), pOS_DoIO(),
- pOS_BeginIO(), pOS_CheckIO(), pOS_WaitIO(), pOS_AbortIO()
-
- AMIGA FUNCTION
- LONG SendIO(struct IORequest *iorequest);
-
-
- pexec.library/pOS_BeginIO
-
- SYNOPSIS
- VOID pOS_BeginIO
- (
- pOS_ExecBase *execbase,
- __ARID__ pOS_IORequest *iorequest
- );
-
- FUNCTION
- Asynchrones Ausführen eines Device-Kommandos
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- iorequest (_R_A0)
- Zeiger auf die installierte IORequest-Struktur
-
- NOTE
- Die Funktion ist gleichbedeutend mit pOS_SendIO();
- jedoch wird aber der Eintrag iorequest->io_Flags nicht
- verändert.
-
- SEE ALSO
- pOS_OpenDevice(), pOS_CreateIORequest(), pOS_SendIO(),
- pOS_CheckIO(), pOS_WaitIO(), pOS_AbortIO(), pOS_DoIO()
-
- AMIGA FUNCTION
- VOID BeginIO(struct IORequest *iorequest);
-
-
- pexec.library/pOS_CheckIO
-
- SYNOPSIS
- pOS_IORequest *res = pOS_CheckIO
- (
- pOS_ExecBase *execbase,
- const pOS_IORequest *iorequest
- );
-
- FUNCTION
- Prüfen ob ein asynchroner IORequest noch läuft (bearbeitet wird)
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- iorequest (_R_A0)
- Zeiger auf die installierte IORequest-Struktur,
- die mittels pOS_BeginIO() oder pOS_SendIO() an
- das Device geschickt wurde.
-
- RESULT
- res (_R_D0)
- Wenn das Kommando nicht mehr läuft, wird der Zeiger auf den
- übergebenen iorequest zurückgegeben. Dann kann aus
- iorrequest->io_Error der devicespezifische Fehlercode des
- letzten Kommandos ermittelt werden;
- NULL wenn der Befehl noch bearbeitet wird.
-
- SEE ALSO
- pOS_SendIO(), pOS_BeginIO(), pOS_WaitIO(), pOS_AbortIO()
-
- AMIGA FUNCTION
- struct IORequest *CheckIO(struct IORequest *iorequest);
-
-
- pexec.library/pOS_WaitIO
-
- SYNOPSIS
- SBYTE res = pOS_WaitIO
- (
- pOS_ExecBase *execbase,
- pOS_IORequest *iorequest
- );
-
- FUNCTION
- Warten auf das Ende eines asynchronen IORequest
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- iorequest (_R_D0)
- Zeiger auf die installierte IORequest-Struktur,
- die mittels pOS_BeginIO() oder pOS_SendIO() an
- das Device geschickt wurde.
-
- RESULT
- res (_R_D0)
- 0 wenn das Kommando fehlerfrei abgearbeitet wurde;
- sonst eine devicespezifische Fehlernummer
- (entsprechend dem Eintrag iorequester->io_Error).
-
- NOTE
- Die Funktion kehrt sofort zurück, wenn das Kommando
- nicht mehr läuft. Zusätzlich wird die eigene Nachricht
- vom ReplyPort entfernt.
-
- SEE ALSO
- pOS_SendIO(), pOS_BeginIO(), pOS_CheckIO(), pOS_AbortIO()
-
- AMIGA FUNCTION
- LONG WaitIO(struct IORequest *iorequest);
-
-
- pexec.library/pOS_AbortIO
-
- SYNOPSIS
- VOID pOS_AbortIO
- (
- pOS_ExecBase *execbase,
- pOS_IORequest *iorequest
- );
-
- FUNCTION
- Abbrechen eines asynchronen IORequesters
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- iorequest (_R_A0)
- Zeiger auf die installierte IORequest-Struktur,
- die mittels pOS_BeginIO() oder pOS_SendIO() an
- das Device geschickt wurde.
-
- NOTE
- Nach dem Abbrechen des Kommandos, muß mittels pOS_WaitIO()
- auf das Abbrechen des Devices gewartet werden.
- Es ist dem Device überlassen, ob es das Abbrechen von
- Funktionen unterstützt. Daher kann zwischen pOS_AbortIO()
- und pOS_WaitIO() eine längere Zeitspanne liegen.
-
- SEE ALSO
- pOS_SendIO(), pOS_BeginIO(), pOS_CheckIO(), pOS_WaitIO()
-
- AMIGA FUNCTION
- VOID AbortIO(struct IORequest *iorequest);
-
-
- pexec.library/pOS_CreateIORequest
-
- SYNOPSIS
- __ARID__ pOS_IORequest *res = pOS_CreateIORequest
- (
- pOS_ExecBase *execbase,
- pOS_MsgPort *msgport,
- size_t size
- );
-
- FUNCTION
- Installieren einer IORequest-Struktur
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- msgport (_R_A0)
- Zeiger auf den eigenen Message-Port, an den die
- Rück-Nachrichten der Devicekommandos geschickt werden
- sollen.
- size (_R_D0)
- Größe der zu installierenden (devicespezifischen)
- IORequest-Struktur
-
- RESULT
- res (_R_D0)
- Zeiger auf die reservierte und initialisierte IORequest-
- Struktur, dessen Speicher mittels pOS_DeleteIORequest()
- wieder freigegeben werden muß.
-
- SEE ALSO
- pOS_DeleteIORequest(), pOS_BeginIO(), pOS_DoIO(), pOS_SendIO()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DeleteIORequest
-
- SYNOPSIS
- VOID pOS_DeleteIORequest
- (
- pOS_ExecBase *execbase,
- __ARID__ pOS_IORequest *iorequest
- );
-
- FUNCTION
- Deinstallieren einer IORequest-Struktur
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- iorequest (_R_A0)
- Zeiger auf die IORequest-Struktur, die deinstalliert
- werden soll.
- ACHTNG: Nach der Funktion darf auf den Zeiger nicht
- mehr zugegriffen werden.
-
-
- SEE ALSO
- pOS_CreateIORequest()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_AddDevice
-
- SYNOPSIS
- VOID pOS_AddDevice
- (
- pOS_ExecBase *execbase,
- pOS_Device *device
- );
-
- FUNCTION
- Hinzufügen eines Devices in die Systemliste
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- device (_R_A0)
- Zeiger auf die installierte Device-Struktur
-
- SEE ALSO
- pOS_RemDevice(), pOS_OpenDevice(), pOS_MakeLibrary()
-
- AMIGA FUNCTION
- VOID AddDevice(struct Device *devcie);
-
-
- pexec.library/pOS_RemDevice
-
- SYNOPSIS
- VOID pOS_RemDevice
- (
- pOS_ExecBase *execbase,
- pOS_Device *device
- );
-
- FUNCTION
- Versuch ein Device aus der Systemliste zu entfernen
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- device (_R_A0)
- Zeiger auf die Device-Stuktur, des zu entfernenden Devices
-
- NOTE
- Es wird die Expunge-Funktion des Devices aufgerufen, die
- das Device aus dem Speicher entfernen soll, wenn es nicht mehr
- benutzt wird.
-
- SEE ALSO
- pOS_AddDevice(), pOS_CloseDevice()
-
- AMIGA FUNCTION
- VOID RemDevice(struct Device *device);
-
- /******************************************************************************/
-
- pexec.library/pOS_OpenResource
-
- SYNOPSIS
- __ARID__ pOS_Resource *res = pOS_OpenResource
- (
- pOS_ExecBase *execbase,
- const CHAR *name
- );
-
- FUNCTION
- Öffnen einer Resource zur Benutzung
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- name (_R_A0)
- Name der zu öffnenden Reseource
-
- RESULT
- res (_R_D0)
- Zeiger auf die geöffnete Resource, die mittels pOS_CloseResource()
- wieder geschlossen werden muß;
- NULL im Fehlerfall.
-
- SEE ALSO
- pOS_CloseResource(), pOS_AddResource()
-
- AMIGA FUNCTION
- APTR OpenResource(STRPTR name);
-
-
- pexec.library/pOS_CloseResource
-
- SYNOPSIS
- VOID pOS_CloseResource
- (
- pOS_ExecBase *execbase,
- __ARID__ pOS_Resource *resource
- );
-
- FUNCTION
- Schließen einer Resource
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- resource (_R_A0)
- Zeiger auf die von pOS_OpenResource() zurückgelieferte
- Resource
-
- NOTE
- Entgegen dem Amiga, muß bei pOS eine Resource wieder freigegeben
- werden, wenn sie nicht mehr benötigt wird.
-
- SEE ALSO
- OpenResource(), pOS_RemResource()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_AddResource
-
- SYNOPSIS
- VOID pOS_AddResource
- (
- pOS_ExecBase *execbase,
- pOS_Resource *resource
- );
-
- FUNCTION
- Hinzufügen einer Resource in die Systemliste
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- resource (_R_A0)
- Zeiger auf die installierte Resource-Struktur
-
- SEE ALSO
- pOS_RemResource(), OpenResource()
-
- AMIGA FUNCTION
- VOID AddResource(APTR resource);
-
-
- pexec.library/pOS_RemResource
-
- SYNOPSIS
- VOID pOS_RemResource
- (
- pOS_ExecBase *execbase,
- pOS_Resource *resource
- );
-
- FUNCTION
- Entfernen einer Resource aus der Systemliste
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- resource(_R_A0)
- Zeiger auf die installierte Resource-Struktur, die
- entfernt werden soll
-
- SEE ALSO
- pOS_AddResource()
-
- AMIGA FUNCTION
- VOID RemResource(APTR resource);
-
- /******************************************************************************/
-
- pexec.library/pOS_RawDoFmt
-
- SYNOPSIS
- VOID pOS_RawDoFmt
- (
- pOS_ExecBase *execbase,
- pOS_RawDoFmtData *data);
-
- FUNCTION
- Formatieren von Daten in einer Zeichenkette
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- data (_R_A0)
- data->rdft_Format : enthält die Formatschablone
- data->rdft_Argv : Zeiger auf Array mit Parameter
- data->rdft_DoFmt : Funktion, die zur Ausgabe der einzelnen
- Zeichen aufgerufen wird
- data->rdft_InterFmt: kann auf eine eigene Funktion zur
- Interpretation der Platzhalter zeigen
-
-
- FormatString - wie "C"-Language
-
- %[flags][width.limit][length]type
-
- flags - nur '-' definiert, linksbündig
- width - Anzahl der auszugebenden Zeichen
- . - Trenner
- limit - Ausgabebeschränkung, maximal 'limit' Zeichen ausgeben (%s)
- length - Datenbreite: l=32 bit, h=16 bit
- type - verwendbare Typen:
- d - dezimal
- i - Integer, wie %d
- u - vorzeichenlos dezimal
- x - hexadezimal
- s - c-string
- c - ein Zeichen
- p - Hex-Dump der Adresse
-
- NOTE
- Die DoFmt-Funktion erhält als Parameter den Zeiger auf die
- pOS_RawDoFmtData-Struktur. Das auszugebende Zeichen ist aus
- data->rdft_Data auszulesen.
-
- Alle nicht gesetzte Datenelemente müssen in der Struktur, vor dem Funktions-
- aufruf genullt werden.
-
- SEE ALSO
- pOS_ReadAsciiFmt(), pOS_WriteAsciiFmt()
- siehe Beispielprogramm "DDevList.c" für die Anwendung
-
- AMIGA FUNCTION
- APTR RawDoFmt(STRPTR format, APTR data, VOID (*putfunc)(), APTR putdata);
-
-
- pexec.library/pOS_ReadAsciiFmt
-
- ### wird noch erweitert ###
-
- SYNOPSIS
- const CHAR *res = pOS_ReadAsciiFmt
- (
- pOS_ExecBase *execbase,
- pOS_AsciiFmtData *data,
- const CHAR *str
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- data (_R_A0)
- str (_R_A1)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
- pOS_WriteAsciiFmt(), pOS_RawDoFmt()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_WriteAsciiFmt
-
- ### wird noch erweitert ###
-
- SYNOPSIS
- CHAR *res = pOS_WriteAsciiFmt
- (
- pOS_ExecBase *execbase,
- const pOS_AsciiFmtData *data,
- CHAR *str,
- size_t size
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- data (_R_A0)
- Zeiger auf die Formatschablone
- str (_R_A1)
-
- size (_R_D0)
- Größe des Buffers
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
- pOS_ReadAsciiFmt(), pOS_RawDoFmt()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_AddClass
-
- SYNOPSIS
- VOID pOS_AddClass
- (
- pOS_ExecBase *execbase,
- pOS_NClass *class
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_AddLinkClass
-
- SYNOPSIS
- VOID pOS_AddLinkClass
- (
- pOS_ExecBase *execbase,
- const pOS_NClass *class,
- pOS_NClass *class2
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
- class2 (_R_A1)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_SubClass
-
- SYNOPSIS
- VOID pOS_SubClass
- (
- pOS_ExecBase *execbase,
- pOS_NClass *class
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_CreateObject
-
- SYNOPSIS
- APTR res = pOS_CreateObject
- (
- pOS_ExecBase *execbase,
- pOS_NClass *class,
- const CHAR *name,
- ULONG,
- pOS_Method *method
- );
-
- FUNCTION
- Objekt der Klasse erzeugen.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
- name (_R_A1)
- (_R_D0)
- method (_R_A4)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
- pOS_DeleteObject()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DeleteObject
-
- SYNOPSIS
- VOID pOS_DeleteObject
- (
- pOS_ExecBase *execbase,
- APTR object
- );
-
- FUNCTION
- Objekt einer Klasse entfernen.
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- object (_R_A0)
-
- SEE ALSO
- pOS_CreateObject()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DoIMethodA
-
- SYNOPSIS
- ULONG res = pOS_DoIMethodA
- (
- pOS_ExecBase *execbase,
- APTR object,
- pOS_Method *method
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- object (_R_A0)
- method (_R_A4)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DoMMethodA
-
- SYNOPSIS
- ULONG res = pOS_DoMMethodA
- (
- pOS_ExecBase *execbase,
- const pOS_Class *class,
- ULONG index,
- APTR object,
- pOS_Method *method
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
- index (_R_D0)
- object (_R_A1)
- method (_R_A4)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DoVirMethodA
-
- SYNOPSIS
- ULONG res = pOS_DoVirMethodA
- (
- pOS_ExecBase *execbase,
- const pOS_Class *class,
- APTR object,
- pOS_Method *method
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
- object (_R_A1)
- method (R_A4)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DoAbsMethodA
-
- SYNOPSIS
- ULONG res = pOS_DoAbsMethodA
- (
- pOS_ExecBase *execbase,
- const pOS_Class *class,
- APTR object,
- pOS_Method *method
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
- object (_R_A1)
- method (_R_A4)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_OpenClass
-
- SYNOPSIS
- pOS_NClass *res = pOS_OpenClass
- (
- pOS_ExecBase *execbase,
- const CHAR *name,
- ULONG version
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- name (_R_A0)
- version (_R_D0)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
- pOS_CloseClass(), pOS_OpenLibrary()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_CloseClass
-
- SYNOPSIS
- VOID pOS_CloseClass
- (
- pOS_ExecBase *execbase,
- pOS_NClass *class
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
-
- SEE ALSO
- pOS_OpenClass()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_GetMemberAdr
-
- SYNOPSIS
- APTR res = pOS_GetMemberAdr
- (
- pOS_ExecBase *execbase,
- const pOS_Class *class,
- ULONG index,
- APTR object
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
- index (_R_D0)
- object (_R_A1)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_MoveUpClassPtr
-
- SYNOPSIS
- BOOL pOS_MoveUpClassPtr
- (
- pOS_ExecBase *execbase,
- const pOS_Class *class,
- APTR object,
- pOS_Class **newclass,
- APTR *newobject
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
- object (_R_A1)
- newclass (_R_A2)
- newobject (_R_A3)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
- pOS_MoveDownClassPtr()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_MoveDownClassPtr
-
- SYNOPSIS
- BOOL res = pOS_MoveDownClassPtr
- (
- pOS_ExecBase *execbase,
- const pOS_Class *class,
- APTR object,
- pOS_Class **newclass,
- APTR *newobject
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
- object (_R_A1)
- newclass (_R_A2)
- newobject (_R_A3)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
- pOS_MoveUpClassPtr()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_GetUpObjectAdr
-
- SYNOPSIS
- APTR res = pOS_GetUpObjectAdr
- (
- pOS_ExecBase *execbase,
- const pOS_Class *class,
- APTR object,
- ULONG number
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
- object (_R_A1)
- number (_R_D0)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_GetNClass
-
- SYNOPSIS
- const pOS_NClass *res = pOS_GetNClass
- (
- pOS_ExecBase *execbase,
- const pOS_Class *class
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_GetIMemberAdr
-
- SYNOPSIS
- APTR res = pOS_GetIMemberAdr
- (
- pOS_ExecBase *execbase,
- ULONG memberindex,
- APTR object
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- memberindex (_R_D0)
- object (_R_A0)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_GetObjectRootAdr
-
- SYNOPSIS
- APTR res = pOS_GetObjectRootAdr
- (
- pOS_ExecBase *execbase,
- const pOS_Class *class,
- APTR object
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
- object (_R_A1)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_CreateClassGrp
-
- SYNOPSIS
- pOS_NClass *res = pOS_CreateClassGrp
- (
- pOS_ExecBase *execbase,
- pOS_ClassGrp *group,
- const CHAR *name,
- const pOS_NClass *basisclass,
- const pOS_Class *newclass
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- group (_R_A0)
- name (_R_A1)
- basisclass (_R_A2)
- newclass (_R_A3)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
- pOS_DeleteClassGrp()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DeleteClassGrp
-
- SYNOPSIS
- VOID pOS_DeleteClassGrp
- (
- pOS_ExecBase *execbase,
- pOS_ClassGrp *group,
- pOS_NClass *class
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- group (_R_A0)
- class (_R_A1)
-
- SEE ALSO
- pOS_CreateClassGrp()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_CreateClass
-
- SYNOPSIS
- __ARID__ pOS_NClass *res = pOS_CreateClass
- (
- pOS_ExecBase *execbase,
- _R_A0 const CHAR *classname,
- _R_A1 const CHAR *superclassname,
- _R_A2 const pOS_NClass *superclass,
- _R_A3 APTR displayfunc,
- _R_D0 size_t objectsize,
- _R_D1 ULONG superclassversion
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- classname (_R_A0)
- superclassname (_R_A1)
- superclass (_R_A2)
- displayfunc (_R_A3)
- objectsize (_R_D0)
- superclassversion (_R_D1)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
- pOS_DeleteClass()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DeleteClass
-
- SYNOPSIS
- VOID pOS_DeleteClass
- (
- pOS_ExecBase *execbase,
- __ARID__ pOS_NClass *class
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- class (_R_A0)
-
- SEE ALSO
- pOS_CreateClass()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DebugClassI
-
- SYNOPSIS
- BOOL res = pOS_DebugClassI
- (
- pOS_ExecBase *execbase,
- const VOID *object,
- const CHAR *classname,
- const pOS_NClass *class,
- BOOL print
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- object (_R_A0)
- classname (_R_A1)
- class (_R_A2)
- print (_R_D0)
-
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
- pOS_DebugClassAbs()
-
- AMIGA FUNCTION
-
-
- pexec.library/pOS_DebugClassAbs
-
- SYNOPSIS
- BOOL res = pOS_DebugClassAbs
- (
- pOS_ExecBase *execbase,
- const VOID *object,
- const pOS_Class *masterclass,
- const CHAR *classname,
- const pOS_NClass *class,
- BOOL print
- );
-
- FUNCTION
-
- INPUT
- execbase (_R_LB)
- Zeiger auf pExec-Library
- object (_R_A0)
- masterclass (_R_A1)
- classname (_R_A2)
- class (_R_A3)
- print (_R_D0)
-
- RESULT
- res (_R_D0)
-
- SEE ALSO
- pOS_DebugClassI()
-
- AMIGA FUNCTION
-
-