4 libbasetype struct IntExecBase
5 libbasetypeextern struct ExecBase
6 options noresident,noautoinit
10 #include <exec/types.h>
11 #include <exec/tasks.h>
12 #include <exec/memory.h>
13 #include <exec/ports.h>
14 #include <exec/devices.h>
16 #include <exec/semaphores.h>
17 #include <exec/interrupts.h>
27 STRPTR NewRawDoFmt(CONST_STRPTR FormatString, VOID_FUNC PutChProc, APTR PutChData, ...);
30 #ifdef __AROS_GIMME_DEPRECATED_STACKSWAP__
34 #if !defined(__EXEC_LIBAPI__) || (36 <= __EXEC_LIBAPI__)
36 static inline void __attribute__((__always_inline__)) __inline_Exec_StackSwap(struct StackSwapStruct * __arg1, APTR __SysBase)
38 AROS_LC1NR(void, StackSwap,
39 AROS_LCA(struct StackSwapStruct *,(__arg1),A0),
40 struct ExecBase *, (__SysBase), 122, Exec
44 #define StackSwap(arg1) \
45 __inline_Exec_StackSwap((arg1), (APTR)SysBase)
47 #endif /* !defined(__EXEC_LIBAPI__) || (36 <= __EXEC_LIBAPI__) */
51 #error no StackSwap() support for your compiler
55 #endif /* __AROS_GIMME_DEPRECATED_STACKSWAP__ */
63 #include "exec_intern.h"
68 struct ExecBase *open(ULONG version) (D0)
73 IPTR Supervisor(void *userFunction) (A5)
84 void InitCode(ULONG startClass, ULONG version) (D0, D1)
85 void InitStruct(CONST_APTR initTable, APTR memory, ULONG size) (A1, A2, D0)
86 struct Library *MakeLibrary(CONST_APTR funcInit, CONST_APTR structInit, ULONG_FUNC libInit, ULONG dataSize, BPTR segList) (A0, A1, A2, D0, D1)
87 ULONG MakeFunctions(APTR target, CONST_APTR functionArray, CONST_APTR funcDispBase) (A0, A1, A2)
88 struct Resident *FindResident(const UBYTE *name) (A1)
89 APTR InitResident(struct Resident *resident, BPTR segList) (A1, D1)
90 void Alert(ULONG alertNum) (D7)
91 void Debug(unsigned long flags) (D0)
96 ULONG SetSR(ULONG newSR, ULONG mask) (D0, D1)
98 void UserState(APTR sysStack) (D0)
99 struct Interrupt *SetIntVector(ULONG intNumber, struct Interrupt *interrupt) (D0, A1)
100 void AddIntServer(ULONG intNumber, struct Interrupt *interrupt) (D0, A1)
101 void RemIntServer(ULONG intNumber, struct Interrupt *interrupt) (D0, A1)
102 void Cause(struct Interrupt *softint) (A1)
103 APTR Allocate(struct MemHeader *freeList, ULONG byteSize) (A0, D0)
104 void Deallocate(struct MemHeader *freeList, APTR memoryBlock, ULONG byteSize) (A0, A1, D0)
105 APTR AllocMem(ULONG byteSize, ULONG requirements) (D0, D1)
106 APTR AllocAbs(ULONG byteSize, APTR location) (D0, A1)
107 void FreeMem(APTR memoryBlock, ULONG byteSize) (A1, D0)
108 ULONG AvailMem(ULONG attributes) (D1)
109 struct MemList *AllocEntry(struct MemList *entry) (A0)
110 void FreeEntry(struct MemList *entry) (A0)
111 void Insert(struct List *list, struct Node *node, struct Node *pred) (A0, A1, A2)
112 void AddHead(struct List *list, struct Node *node) (A0, A1)
113 void AddTail(struct List *list, struct Node *node) (A0, A1)
114 void Remove(struct Node *node) (A1)
115 struct Node *RemHead(struct List *list) (A0)
116 struct Node *RemTail(struct List *list) (A0)
117 void Enqueue(struct List *list, struct Node *node) (A0, A1)
118 struct Node *FindName(struct List *list, CONST_STRPTR name) (A0, A1)
119 APTR AddTask(struct Task *task, APTR initialPC, APTR finalPC) (A1, A2, A3)
120 void RemTask(struct Task *task) (A1)
121 struct Task *FindTask(CONST_STRPTR name) (A1)
122 BYTE SetTaskPri(struct Task *task, LONG priority) (A1, D0)
123 ULONG SetSignal(ULONG newSignals, ULONG signalSet) (D0, D1)
124 ULONG SetExcept(ULONG newSignals, ULONG signalSet) (D0, D1)
125 ULONG Wait(ULONG signalSet) (D0)
126 void Signal(struct Task *task, ULONG signalSet) (A1, D0)
127 BYTE AllocSignal(LONG signalNum) (D0)
128 void FreeSignal(LONG signalNum) (D0)
129 LONG AllocTrap(long trapNum) (D0)
130 void FreeTrap(long trapNum) (D0)
131 void AddPort(struct MsgPort *port) (A1)
132 void RemPort(struct MsgPort *port) (A1)
133 void PutMsg(struct MsgPort *port, struct Message *message) (A0, A1)
134 struct Message *GetMsg(struct MsgPort *port) (A0)
135 void ReplyMsg(struct Message *message) (A1)
136 struct Message *WaitPort(struct MsgPort *port) (A0)
137 struct MsgPort *FindPort(CONST_STRPTR name) (A1)
138 void AddLibrary(struct Library *library) (A1)
139 void RemLibrary(struct Library *library) (A1)
140 struct Library *OldOpenLibrary(UBYTE *libName) (A1)
141 void CloseLibrary(struct Library *library) (A1)
142 APTR SetFunction(struct Library *library, LONG funcOffset, APTR newFunction) (A1, A0, D0)
143 void SumLibrary(struct Library *library) (A1)
144 void AddDevice(struct Device *device) (A1)
145 void RemDevice(struct Device *device) (A1)
146 LONG OpenDevice(CONST_STRPTR devName, IPTR unitNumber, struct IORequest *iORequest, ULONG flags) (A0, D0, A1, D1)
147 void CloseDevice(struct IORequest *iORequest) (A1)
148 LONG DoIO(struct IORequest *iORequest) (A1)
149 void SendIO(struct IORequest *iORequest) (A1)
150 struct IORequest *CheckIO(struct IORequest *iORequest) (A1)
151 LONG WaitIO(struct IORequest *iORequest) (A1)
152 LONG AbortIO(struct IORequest *iORequest) (A1)
153 void AddResource(APTR resource) (A1)
154 void RemResource(APTR resource) (A1)
155 APTR OpenResource(CONST_STRPTR resName) (A1)
157 LONG RawMayGetChar() ()
158 void RawPutChar(UBYTE chr) (D0)
159 APTR RawDoFmt(CONST_STRPTR FormatString, APTR DataStream, VOID_FUNC PutChProc, APTR PutChData) (A0, A1, A2, A3)
161 ULONG TypeOfMem(APTR address) (A1)
162 ULONG Procure(struct SignalSemaphore *sigSem, struct SemaphoreMessage *bidMsg) (A0, A1)
163 void Vacate(struct SignalSemaphore *sigSem, struct SemaphoreMessage *bidMsg) (A0, A1)
164 struct Library *OpenLibrary(CONST_STRPTR libName, ULONG version) (A1, D0)
166 void InitSemaphore(struct SignalSemaphore *sigSem) (A0)
167 void ObtainSemaphore(struct SignalSemaphore *sigSem) (A0)
168 void ReleaseSemaphore(struct SignalSemaphore *sigSem) (A0)
169 ULONG AttemptSemaphore(struct SignalSemaphore *sigSem) (A0)
170 void ObtainSemaphoreList(struct List *sigSem) (A0)
171 void ReleaseSemaphoreList(struct List *sigSem) (A0)
172 struct SignalSemaphore *FindSemaphore(CONST_STRPTR name) (A1)
173 void AddSemaphore(struct SignalSemaphore *sigSem) (A1)
174 void RemSemaphore(struct SignalSemaphore *sigSem) (A1)
175 ULONG SumKickData() ()
176 void AddMemList(ULONG size, ULONG attributes, LONG pri, APTR base, STRPTR name) (D0, D1, D2, A0, A1)
177 void CopyMem(CONST_APTR source, APTR dest, ULONG size) (A0, A1, D0)
178 void CopyMemQuick(CONST_APTR source, APTR dest, ULONG size) (A0, A1, D0)
180 void CacheClearU() ()
181 void CacheClearE(APTR address, IPTR length, ULONG caches) (A0, D0, D1)
182 ULONG CacheControl(ULONG cacheBits, ULONG cacheMask) (D0, D1)
183 APTR CreateIORequest(struct MsgPort *ioReplyPort, ULONG size) (A0, D0)
184 void DeleteIORequest(APTR iorequest) (A0)
185 struct MsgPort *CreateMsgPort() ()
186 void DeleteMsgPort(struct MsgPort *port) (A0)
187 void ObtainSemaphoreShared(struct SignalSemaphore *sigSem) (A0)
188 APTR AllocVec(ULONG byteSize, ULONG requirements) (D0, D1)
189 void FreeVec(APTR memoryBlock) (A1)
190 APTR CreatePool(ULONG requirements, ULONG puddleSize, ULONG threshSize) (D0, D1, D2)
191 void DeletePool(APTR poolHeader) (A0)
192 APTR AllocPooled(APTR poolHeader, ULONG memSize) (A0, D0)
193 void FreePooled(APTR poolHeader, APTR memory, ULONG memSize) (A0, A1, D0)
194 ULONG AttemptSemaphoreShared(struct SignalSemaphore *sigSem) (A0)
196 void StackSwap(struct StackSwapStruct *sss) (A0)
198 void ChildFree(ULONG tid) (D0)
199 ULONG ChildOrphan(ULONG tid) (D0)
200 ULONG ChildStatus(ULONG tid) (D0)
201 IPTR ChildWait(ULONG tid) (D0)
202 APTR CachePreDMA(APTR address, ULONG *length, ULONG flags) (A0, A1, D0)
204 void CachePostDMA(APTR address, ULONG *length, ULONG flags) (A0, A1, D0)
207 void AddMemHandler(struct Interrupt *memHandler) (A1)
208 void RemMemHandler(struct Interrupt *memHandler) (A1)
209 ULONG ObtainQuickVector(APTR interruptCode) (A0)
210 .skip 1 # MorphOS: NewSetFunction()
211 .skip 1 # MorphOS: NewCreateLibrary()
212 IPTR NewStackSwap(struct StackSwapStruct *newStack, APTR function, struct StackSwapArgs *args) (A0, A1, A2)
213 APTR TaggedOpenLibrary(LONG tag) (D0)
216 STRPTR VNewRawDoFmt(CONST_STRPTR FormatString, VOID_FUNC PutChProc, APTR PutChData, va_list VaListStream) (A0, A2, A3, A1)
218 void NewMinList(struct MinList *ml) (A0)
219 .skip 1 # MorphOS: CacheInvalidInstArea(APTR Address, ULONG Size) (A0, D0)
220 .skip 1 # MorphOS: CacheInvalidDataArea(APTR Address, ULONG Size) (A0, D0)
221 .skip 1 # MorphOS: CacheFlushDataInstArea(APTR Address, ULONG Size) (A0, D0)
223 struct AVLNode *AVL_AddNode(struct AVLNode **root, struct AVLNode *node, AVLNODECOMP func) (A0, A1, A2)
224 struct AVLNode *AVL_RemNodeByAddress(struct AVLNode **root, struct AVLNode *node) (A0, A1)
225 struct AVLNode *AVL_RemNodeByKey(struct AVLNode **root, AVLKey key, AVLKEYCOMP func) (A0, A1, A2)
226 struct AVLNode *AVL_FindNode(const struct AVLNode *root, AVLKey key, AVLKEYCOMP func) (A0, A1, A2)
227 struct AVLNode *AVL_FindPrevNodeByAddress(const struct AVLNode *node) (A0)
228 struct AVLNode *AVL_FindPrevNodeByKey(const struct AVLNode *root, AVLKey key, AVLKEYCOMP func) (A0, A1, A2)
229 struct AVLNode *AVL_FindNextNodeByAddress(const struct AVLNode *node) (A0)
230 struct AVLNode *AVL_FindNextNodeByKey(const struct AVLNode *node, AVLKey key, AVLKEYCOMP func) (A0, A1, A2)
231 struct AVLNode *AVL_FindFirstNode(const struct AVLNode *root) (A0)
232 struct AVLNode *AVL_FindLastNode(const struct AVLNode *root) (A0)
234 .skip 1 # MorphOS: ULONG NewSetSystemAttrsA(APTR yData, ULONG Size, ULONG Type, struct TagItem *Tags ) (A0, D0, D1, A1)
235 struct Task *NewCreateTaskA(struct TagItem *tags) (A0)
236 .skip 1 # MorphOS: NewRawDoFmt()
237 .skip 1 # MorphOS: APTR AllocateAligned(struct MemHeader *memHeader, ULONG byteSize, ULONG alignSize, ULONG alignOffset) (base,sysv)
238 .skip 1 # MorphOS: APTR AllocMemAligned(ULONG byteSize, ULONG attributes, ULONG alignSize, ULONG alignOffset) (base,sysv)
239 .skip 1 # MorphOS: APTR AllocVecAligned(ULONG byteSize, ULONG attributes, ULONG alignSize, ULONG alignOffset) (base,sysv)
240 .skip 1 # MorphOS: AddExecNotify(struct Hook *hook) (base,sysv)
241 .skip 1 # MorphOS: RemExecNotify(struct Hook *hook) (base,sysv)
242 .skip 1 # MorphOS: struct Node *FindExecNode(ULONG type, CONST_STRPTR name) (D0, A0)
243 .skip 1 # MorphOS: APTR AddExecNodeA(APTR innode, struct TagItem *Tags) (A0, A1)
244 .skip 1 # MorphOS: APTR AllocVecDMA(ULONG byteSize, ULONG requirements) (D0, D1)
245 .skip 1 # MorphOS: VOID FreeVecDMA(APTR memoryBlock) (A1)
246 .skip 1 # MorphOS: APTR AllocPooledAligned(APTR poolHeader, ULONG byteSize, ULONG alignSize, ULONG alignOffset) (base,sysv)
247 .skip 1 # MorphOS: LONG AddResident(struct Resident *resident) (base,sysv)
248 struct Task *FindTaskByPID(ULONG processID) (D0)
249 BOOL AddResetCallback(struct Interrupt *resetCallback) (A0)
250 void RemResetCallback(struct Interrupt *resetCallback) (A0)
251 APTR AllocVecPooled(APTR pool, ULONG size) (D0, D1)
252 void FreeVecPooled(APTR pool, APTR memory) (D0, D1)
253 .skip 1 # MorphOS: void DumpTaskState(struct Task *task) (A0)
254 .skip 1 # MorphOS: void AddExecNotifyType(struct Hook *hook, LONG Type) (base,sysv)
255 ULONG ShutdownA(ULONG action) (D0)
257 struct MemList *NewAllocEntry(struct MemList *entry, ULONG *return_flags) (A0, A1)
258 .skip 1 # MorphOS: ULONG AvailPool(APTR poolHeader, ULONG flags) (base,sysv)
259 APTR NewAddTask(struct Task *task, APTR initialPC, APTR finalPC, struct TagItem *tagList) (A1, A2, A3, A4)
260 # MorphOS functions follow:
261 .skip 1 # void PutMsgHead(struct MsgPort *port, struct Message *message) (base,sysv)
262 .skip 1 # ULONG NewGetTaskPIDAttrsA(ULONG pid, APTR data, ULONG dataSize, ULONG type, struct TagItem *tags) (D0, A0, D1, D2, A1)
263 .skip 1 # ULONG NewGetTaskPIDAttrsA(ULONG pid, APTR data, ULONG dataSize, ULONG type, struct TagItem *tags) (D0, A0, D1, D2, A1)
265 LONG AllocTaskStorageSlot() ()
266 VOID FreeTaskStorageSlot(LONG slot) (D0)
267 APTR SaveTaskStorage() ()
268 void RestoreTaskStorage(APTR id) (A0)
269 BOOL SetTaskStorageSlot(LONG id, IPTR value) (D0, D1)
270 IPTR GetTaskStorageSlot(LONG id) (D0)