forcing device into host mode requires a full config - which we will do in opendevice...
[AROS.git] / rom / exec / exec.conf
blob21e4de7d3800e38f1690ce3536e713bf7ccfb7b9
1 ##begin config
2 version 51.1
3 libbase SysBase
4 libbasetype struct IntExecBase
5 libbasetypeextern struct ExecBase
6 options noresident,noautoinit
7 ##end config
9 ##begin cdef
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>
15 #include <exec/io.h>
16 #include <exec/semaphores.h>
17 #include <exec/interrupts.h>
18 #include <exec/avl.h>
20 #include <dos/bptr.h>
22 #include <stdarg.h>
24 __BEGIN_DECLS
26 #ifndef NewRawDoFmt
27 STRPTR NewRawDoFmt(CONST_STRPTR FormatString, VOID_FUNC PutChProc, APTR PutChData, ...);
28 #endif
30 #ifdef __AROS_GIMME_DEPRECATED_STACKSWAP__
32 #ifdef __GNUC__
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
41     );
44 #define StackSwap(arg1) \
45     __inline_Exec_StackSwap((arg1), (APTR)SysBase)
47 #endif /* !defined(__EXEC_LIBAPI__) || (36 <= __EXEC_LIBAPI__) */
49 #else
51 #error no StackSwap() support for your compiler 
53 #endif /* __GNUC__ */
55 #endif /* __AROS_GIMME_DEPRECATED_STACKSWAP__ */
57 __END_DECLS
59 ##end cdef
61 ##begin cdefprivate
63 #include "exec_intern.h"
65 ##end cdefprivate
67 ##begin functionlist
68 struct ExecBase *open(ULONG version) (D0)
69 .private
70 BPTR close() ()
71 .private
72 .skip 2
73 IPTR Supervisor(void *userFunction) (A5)
74 VOID ExitIntr() ()
75 .private
76 VOID Schedule() ()
77 .private
78 void Reschedule() ()
79 VOID Switch() ()
80 .private
81 VOID Dispatch() ()
82 .private
83 void Exception() ()
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)
92 void Disable() ()
93 void Enable() ()
94 void Forbid() ()
95 void Permit() ()
96 ULONG SetSR(ULONG newSR, ULONG mask) (D0, D1)
97 APTR SuperState() ()
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, IPTR byteSize) (A0, D0)
104 void Deallocate(struct MemHeader *freeList, APTR memoryBlock, IPTR byteSize) (A0, A1, D0)
105 APTR AllocMem(IPTR byteSize, ULONG requirements) (D0, D1)
106 APTR AllocAbs(IPTR byteSize, APTR location) (D0, A1)
107 void FreeMem(APTR memoryBlock, IPTR byteSize) (A1, D0)
108 IPTR 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)
156 void RawIOInit() ()
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)
160 UWORD GetCC() ()
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)
165 .version 33
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(IPTR size, ULONG attributes, LONG pri, APTR base, STRPTR name) (D0, D1, D2, A0, A1)
177 void CopyMem(CONST_APTR source, APTR dest, IPTR size) (A0, A1, D0)
178 void CopyMemQuick(CONST_APTR source, APTR dest, IPTR size) (A0, A1, D0)
179 .version 36
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(IPTR byteSize, ULONG requirements) (D0, D1)
189 void FreeVec(APTR memoryBlock) (A1)
190 APTR CreatePool(ULONG requirements, IPTR puddleSize, IPTR threshSize) (D0, D1, D2)
191 void DeletePool(APTR poolHeader) (A0)
192 APTR AllocPooled(APTR poolHeader, IPTR memSize) (A0, D0)
193 void FreePooled(APTR poolHeader, APTR memory, IPTR memSize) (A0, A1, D0)
194 ULONG AttemptSemaphoreShared(struct SignalSemaphore *sigSem) (A0)
195 void ColdReboot() ()
196 void StackSwap(struct StackSwapStruct *sss) (A0)
197 .private
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)
203 .novararg
204 void CachePostDMA(APTR address, ULONG *length, ULONG flags) (A0, A1, D0)
205 .novararg
206 .version 39
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)
214 ULONG ReadGayle() ()
215 .version 50
216 STRPTR VNewRawDoFmt(CONST_STRPTR FormatString, VOID_FUNC PutChProc, APTR PutChData, va_list VaListStream) (A0, A2, A3, A1)
217 .version 45
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)
222 .version 45
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)
233 .version 50
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, IPTR 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)
256 .novararg
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)
264 .version 51
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)
271 ##end functionlist