Port the SB128 code to AROS.
[AROS.git] / rom / exec / exec_intern.h
blob4528cbfda4b9015efaf40b98f83d3b31878b6181
1 /*
2 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Private data belonging to exec.library
6 Lang:
7 */
8 #ifndef __EXEC_INTERN_H__
9 #define __EXEC_INTERN_H__
11 /* Needed for aros_print_not_implemented macro */
12 #include <aros/debug.h>
14 /* This is a short file that contains a few things every Exec function
15 needs */
17 #ifndef AROS_SYSTEM_H
18 # include <aros/system.h>
19 #endif
20 #ifndef AROS_LIBCALL_H
21 # include <aros/libcall.h>
22 #endif
23 #ifndef EXEC_EXECBASE_H
24 # include <exec/execbase.h>
25 #endif
26 #ifndef PROTO_EXEC_H
27 # include <proto/exec.h>
28 #endif
30 #include <exec_platform.h>
32 #define ALERT_BUFFER_SIZE 2048
34 /* Internals of this structure are host-specific, we don't know them here */
35 struct HostInterface;
37 /* A private portion of ExecBase */
38 struct IntExecBase
40 struct ExecBase pub;
41 struct List ResetHandlers; /* Reset handlers list */
42 struct MinList AllocMemList; /* Mungwall allocations list */
43 struct SignalSemaphore MemListSem; /* Memory list protection semaphore */
44 struct SignalSemaphore LowMemSem; /* Lock for single-threading low memory handlers */
45 APTR KernelBase; /* kernel.resource base */
46 struct Library *DebugBase; /* debug.library base */
47 ULONG PageSize; /* Memory page size */
48 ULONG IntFlags; /* Internal flags, see below */
49 struct MsgPort *RemTaskPort; /* port used for RemTask() memory cleanup */
50 struct Exec_PlatformData PlatformData; /* Platform-specific stuff */
51 char AlertBuffer[ALERT_BUFFER_SIZE]; /* Buffer for alert text */
54 #define PrivExecBase(base) ((struct IntExecBase *)base)
55 #define PD(base) PrivExecBase(base)->PlatformData
56 #define KernelBase PrivExecBase(SysBase)->KernelBase
57 #define DebugBase PrivExecBase(SysBase)->DebugBase
59 /* IntFlags */
60 #define EXECF_MungWall 0x0001 /* This flag can't be changed at runtime */
61 #define EXECF_StackSnoop 0x0002
63 #if UseLVOs
64 extern void __AROS_InitExecBase (void);
65 #endif
67 APTR allocBootMem(struct MemHeader *mh, ULONG size);
68 struct ExecBase *PrepareExecBase(struct MemHeader *mh, struct TagItem *tags);
69 struct ExecBase *PrepareExecBaseMove(struct ExecBase *oldSysBase);
70 BOOL Exec_PreparePlatform(struct Exec_PlatformData *pdata, struct TagItem *tags);
72 void InitKickTags(struct ExecBase *SysBase);
73 UWORD GetSysBaseChkSum(struct ExecBase *sysbase);
74 void SetSysBaseChkSum(void);
75 BOOL IsSysBaseValid(struct ExecBase *sysbase);
77 IPTR cpu_SuperState();
79 #endif /* __EXEC_INTERN_H__ */