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)
74 .skip 1 # AmigaOS(tm) private ExitIntr() hook
75 .skip 1 # AmigaOS(tm) private Schedule() hook
77 .skip 1 # AmigaOS(tm) private Switch() hook
78 BOOL Dispatch(struct Task *task) (A0)
80 void InitCode(ULONG startClass, ULONG version) (D0, D1)
81 void InitStruct(CONST_APTR initTable, APTR memory, ULONG size) (A1, A2, D0)
82 struct Library *MakeLibrary(CONST_APTR funcInit, CONST_APTR structInit, ULONG_FUNC libInit, ULONG dataSize, BPTR segList) (A0, A1, A2, D0, D1)
83 ULONG MakeFunctions(APTR target, CONST_APTR functionArray, CONST_APTR funcDispBase) (A0, A1, A2)
84 struct Resident *FindResident(const UBYTE *name) (A1)
85 APTR InitResident(struct Resident *resident, BPTR segList) (A1, D1)
86 void Alert(ULONG alertNum) (D7)
87 void Debug(unsigned long flags) (D0)
92 ULONG SetSR(ULONG newSR, ULONG mask) (D0, D1)
94 void UserState(APTR sysStack) (D0)
95 struct Interrupt *SetIntVector(ULONG intNumber, struct Interrupt *interrupt) (D0, A1)
96 void AddIntServer(ULONG intNumber, struct Interrupt *interrupt) (D0, A1)
97 void RemIntServer(ULONG intNumber, struct Interrupt *interrupt) (D0, A1)
98 void Cause(struct Interrupt *softint) (A1)
99 APTR Allocate(struct MemHeader *freeList, ULONG byteSize) (A0, D0)
100 void Deallocate(struct MemHeader *freeList, APTR memoryBlock, ULONG byteSize) (A0, A1, D0)
101 APTR AllocMem(ULONG byteSize, ULONG requirements) (D0, D1)
102 APTR AllocAbs(ULONG byteSize, APTR location) (D0, A1)
103 void FreeMem(APTR memoryBlock, ULONG byteSize) (A1, D0)
104 ULONG AvailMem(ULONG attributes) (D1)
105 struct MemList *AllocEntry(struct MemList *entry) (A0)
106 void FreeEntry(struct MemList *entry) (A0)
107 void Insert(struct List *list, struct Node *node, struct Node *pred) (A0, A1, A2)
108 void AddHead(struct List *list, struct Node *node) (A0, A1)
109 void AddTail(struct List *list, struct Node *node) (A0, A1)
110 void Remove(struct Node *node) (A1)
111 struct Node *RemHead(struct List *list) (A0)
112 struct Node *RemTail(struct List *list) (A0)
113 void Enqueue(struct List *list, struct Node *node) (A0, A1)
114 struct Node *FindName(struct List *list, CONST_STRPTR name) (A0, A1)
115 APTR AddTask(struct Task *task, APTR initialPC, APTR finalPC) (A1, A2, A3)
116 void RemTask(struct Task *task) (A1)
117 struct Task *FindTask(CONST_STRPTR name) (A1)
118 BYTE SetTaskPri(struct Task *task, LONG priority) (A1, D0)
119 ULONG SetSignal(ULONG newSignals, ULONG signalSet) (D0, D1)
120 ULONG SetExcept(ULONG newSignals, ULONG signalSet) (D0, D1)
121 ULONG Wait(ULONG signalSet) (D0)
122 void Signal(struct Task *task, ULONG signalSet) (A1, D0)
123 BYTE AllocSignal(LONG signalNum) (D0)
124 void FreeSignal(LONG signalNum) (D0)
125 LONG AllocTrap(long trapNum) (D0)
126 void FreeTrap(long trapNum) (D0)
127 void AddPort(struct MsgPort *port) (A1)
128 void RemPort(struct MsgPort *port) (A1)
129 void PutMsg(struct MsgPort *port, struct Message *message) (A0, A1)
130 struct Message *GetMsg(struct MsgPort *port) (A0)
131 void ReplyMsg(struct Message *message) (A1)
132 struct Message *WaitPort(struct MsgPort *port) (A0)
133 struct MsgPort *FindPort(CONST_STRPTR name) (A1)
134 void AddLibrary(struct Library *library) (A1)
135 void RemLibrary(struct Library *library) (A1)
136 struct Library *OldOpenLibrary(UBYTE *libName) (A1)
137 void CloseLibrary(struct Library *library) (A1)
138 APTR SetFunction(struct Library *library, LONG funcOffset, APTR newFunction) (A1, A0, D0)
139 void SumLibrary(struct Library *library) (A1)
140 void AddDevice(struct Device *device) (A1)
141 void RemDevice(struct Device *device) (A1)
142 LONG OpenDevice(CONST_STRPTR devName, IPTR unitNumber, struct IORequest *iORequest, ULONG flags) (A0, D0, A1, D1)
143 void CloseDevice(struct IORequest *iORequest) (A1)
144 LONG DoIO(struct IORequest *iORequest) (A1)
145 void SendIO(struct IORequest *iORequest) (A1)
146 struct IORequest *CheckIO(struct IORequest *iORequest) (A1)
147 LONG WaitIO(struct IORequest *iORequest) (A1)
148 LONG AbortIO(struct IORequest *iORequest) (A1)
149 void AddResource(APTR resource) (A1)
150 void RemResource(APTR resource) (A1)
151 APTR OpenResource(CONST_STRPTR resName) (A1)
153 LONG RawMayGetChar() ()
154 void RawPutChar(UBYTE chr) (D0)
155 APTR RawDoFmt(CONST_STRPTR FormatString, APTR DataStream, VOID_FUNC PutChProc, APTR PutChData) (A0, A1, A2, A3)
157 ULONG TypeOfMem(APTR address) (A1)
158 ULONG Procure(struct SignalSemaphore *sigSem, struct SemaphoreMessage *bidMsg) (A0, A1)
159 void Vacate(struct SignalSemaphore *sigSem, struct SemaphoreMessage *bidMsg) (A0, A1)
160 struct Library *OpenLibrary(CONST_STRPTR libName, ULONG version) (A1, D0)
162 void InitSemaphore(struct SignalSemaphore *sigSem) (A0)
163 void ObtainSemaphore(struct SignalSemaphore *sigSem) (A0)
164 void ReleaseSemaphore(struct SignalSemaphore *sigSem) (A0)
165 ULONG AttemptSemaphore(struct SignalSemaphore *sigSem) (A0)
166 void ObtainSemaphoreList(struct List *sigSem) (A0)
167 void ReleaseSemaphoreList(struct List *sigSem) (A0)
168 struct SignalSemaphore *FindSemaphore(CONST_STRPTR name) (A1)
169 void AddSemaphore(struct SignalSemaphore *sigSem) (A1)
170 void RemSemaphore(struct SignalSemaphore *sigSem) (A1)
171 ULONG SumKickData() ()
172 void AddMemList(ULONG size, ULONG attributes, LONG pri, APTR base, STRPTR name) (D0, D1, D2, A0, A1)
173 void CopyMem(CONST_APTR source, APTR dest, ULONG size) (A0, A1, D0)
174 void CopyMemQuick(CONST_APTR source, APTR dest, ULONG size) (A0, A1, D0)
176 void CacheClearU() ()
177 void CacheClearE(APTR address, IPTR length, ULONG caches) (A0, D0, D1)
178 ULONG CacheControl(ULONG cacheBits, ULONG cacheMask) (D0, D1)
179 APTR CreateIORequest(struct MsgPort *ioReplyPort, ULONG size) (A0, D0)
180 void DeleteIORequest(APTR iorequest) (A0)
181 struct MsgPort *CreateMsgPort() ()
182 void DeleteMsgPort(struct MsgPort *port) (A0)
183 void ObtainSemaphoreShared(struct SignalSemaphore *sigSem) (A0)
184 APTR AllocVec(ULONG byteSize, ULONG requirements) (D0, D1)
185 void FreeVec(APTR memoryBlock) (A1)
186 APTR CreatePool(ULONG requirements, ULONG puddleSize, ULONG threshSize) (D0, D1, D2)
187 void DeletePool(APTR poolHeader) (A0)
188 APTR AllocPooled(APTR poolHeader, ULONG memSize) (A0, D0)
189 void FreePooled(APTR poolHeader, APTR memory, ULONG memSize) (A0, A1, D0)
190 ULONG AttemptSemaphoreShared(struct SignalSemaphore *sigSem) (A0)
192 void StackSwap(struct StackSwapStruct *sss) (A0)
194 void ChildFree(ULONG tid) (D0)
195 ULONG ChildOrphan(ULONG tid) (D0)
196 ULONG ChildStatus(ULONG tid) (D0)
197 IPTR ChildWait(ULONG tid) (D0)
198 APTR CachePreDMA(APTR address, ULONG *length, ULONG flags) (A0, A1, D0)
200 void CachePostDMA(APTR address, ULONG *length, ULONG flags) (A0, A1, D0)
203 void AddMemHandler(struct Interrupt *memHandler) (A1)
204 void RemMemHandler(struct Interrupt *memHandler) (A1)
205 ULONG ObtainQuickVector(APTR interruptCode) (A0)
206 .skip 1 # MorphOS: NewSetFunction()
207 .skip 1 # MorphOS: NewCreateLibrary()
208 IPTR NewStackSwap(struct StackSwapStruct *newStack, APTR function, struct StackSwapArgs *args) (A0, A1, A2)
209 APTR TaggedOpenLibrary(LONG tag) (D0)
212 STRPTR VNewRawDoFmt(CONST_STRPTR FormatString, VOID_FUNC PutChProc, APTR PutChData, va_list VaListStream) (A0, A2, A3, A1)
214 void NewMinList(struct MinList *ml) (A0)
215 int AllocTaskStorageSlot() ()
216 void FreeTaskStorageSlot(int slot) (D0)
217 .skip 1 # MorphOS: CacheFlushDataInstArea(APTR Address, ULONG Size) (A0, D0)
219 struct AVLNode *AVL_AddNode(struct AVLNode **root, struct AVLNode *node, AVLNODECOMP func) (A0, A1, A2)
220 struct AVLNode *AVL_RemNodeByAddress(struct AVLNode **root, struct AVLNode *node) (A0, A1)
221 struct AVLNode *AVL_RemNodeByKey(struct AVLNode **root, AVLKey key, AVLKEYCOMP func) (A0, A1, A2)
222 struct AVLNode *AVL_FindNode(const struct AVLNode *root, AVLKey key, AVLKEYCOMP func) (A0, A1, A2)
223 struct AVLNode *AVL_FindPrevNodeByAddress(const struct AVLNode *node) (A0)
224 struct AVLNode *AVL_FindPrevNodeByKey(const struct AVLNode *root, AVLKey key, AVLKEYCOMP func) (A0, A1, A2)
225 struct AVLNode *AVL_FindNextNodeByAddress(const struct AVLNode *node) (A0)
226 struct AVLNode *AVL_FindNextNodeByKey(const struct AVLNode *node, AVLKey key, AVLKEYCOMP func) (A0, A1, A2)
227 struct AVLNode *AVL_FindFirstNode(const struct AVLNode *root) (A0)
228 struct AVLNode *AVL_FindLastNode(const struct AVLNode *root) (A0)
230 .skip 1 # MorphOS: ULONG NewSetSystemAttrsA(APTR yData, ULONG Size, ULONG Type, struct TagItem *Tags ) (A0, D0, D1, A1)
231 struct Task *NewCreateTaskA(struct TagItem *tags) (A0)
232 .skip 1 # MorphOS: NewRawDoFmt()
233 .skip 1 # MorphOS: APTR AllocateAligned(struct MemHeader *memHeader, ULONG byteSize, ULONG alignSize, ULONG alignOffset) (base,sysv)
234 .skip 1 # MorphOS: APTR AllocMemAligned(ULONG byteSize, ULONG attributes, ULONG alignSize, ULONG alignOffset) (base,sysv)
235 .skip 1 # MorphOS: APTR AllocVecAligned(ULONG byteSize, ULONG attributes, ULONG alignSize, ULONG alignOffset) (base,sysv)
236 .skip 1 # MorphOS: AddExecNotify(struct Hook *hook) (base,sysv)
237 .skip 1 # MorphOS: RemExecNotify(struct Hook *hook) (base,sysv)
238 .skip 1 # MorphOS: struct Node *FindExecNode(ULONG type, CONST_STRPTR name) (D0, A0)
239 .skip 1 # MorphOS: APTR AddExecNodeA(APTR innode, struct TagItem *Tags) (A0, A1)
240 .skip 1 # MorphOS: APTR AllocVecDMA(ULONG byteSize, ULONG requirements) (D0, D1)
241 .skip 1 # MorphOS: VOID FreeVecDMA(APTR memoryBlock) (A1)
242 .skip 1 # MorphOS: APTR AllocPooledAligned(APTR poolHeader, ULONG byteSize, ULONG alignSize, ULONG alignOffset) (base,sysv)
243 .skip 1 # MorphOS: LONG AddResident(struct Resident *resident) (base,sysv)
244 struct Task *FindTaskByPID(ULONG processID) (D0)
245 BOOL AddResetCallback(struct Interrupt *resetCallback) (A0)
246 void RemResetCallback(struct Interrupt *resetCallback) (A0)
247 APTR AllocVecPooled(APTR pool, ULONG size) (D0, D1)
248 void FreeVecPooled(APTR pool, APTR memory) (D0, D1)
249 .skip 1 # MorphOS: void DumpTaskState(struct Task *task) (A0)
250 .skip 1 # MorphOS: void AddExecNotifyType(struct Hook *hook, LONG Type) (base,sysv)
251 ULONG ShutdownA(ULONG action) (D0)
253 struct MemList *NewAllocEntry(struct MemList *entry, ULONG *return_flags) (A0, A1)
254 .skip 1 # MorphOS: ULONG AvailPool(APTR poolHeader, ULONG flags) (base,sysv)
255 APTR NewAddTask(struct Task *task, APTR initialPC, APTR finalPC, struct TagItem *tagList) (A1, A2, A3, A4)
256 # MorphOS functions follow:
257 # void PutMsgHead(struct MsgPort *port, struct Message *message) (base,sysv)
258 # ULONG NewGetTaskPIDAttrsA(ULONG pid, APTR data, ULONG dataSize, ULONG type, struct TagItem *tags) (D0, A0, D1, D2, A1)
259 # ULONG NewGetTaskPIDAttrsA(ULONG pid, APTR data, ULONG dataSize, ULONG type, struct TagItem *tags) (D0, A0, D1, D2, A1)