Added a reset handler.
[AROS.git] / rom / exec / exec_intern.h
blob374d67a312858b3a6139e8a852cb7d1126501ef5
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 /* This is a short file that contains a few things every Exec function
12 needs */
14 #include <aros/debug.h> /* Needed for aros_print_not_implemented macro */
15 #include <aros/system.h>
16 #include <aros/libcall.h>
17 #include <exec/execbase.h>
18 #include <kernel/scheduler.h>
19 #include <proto/exec.h>
21 #include <exec_platform.h>
23 #define ALERT_BUFFER_SIZE 2048
25 /* Internals of this structure are host-specific, we don't know them here */
26 struct HostInterface;
28 /* A private portion of ExecBase */
29 struct IntExecBase
31 struct ExecBase pub;
32 struct List ResetHandlers; /* Reset handlers list */
33 struct MinList AllocMemList; /* Mungwall allocations list */
34 struct SignalSemaphore MemListSem; /* Memory list protection semaphore */
35 struct SignalSemaphore LowMemSem; /* Lock for single-threading low memory handlers */
36 APTR KernelBase; /* kernel.resource base */
37 struct Library *DebugBase; /* debug.library base */
38 ULONG PageSize; /* Memory page size */
39 ULONG IntFlags; /* Internal flags, see below */
40 struct MsgPort *RemTaskPort; /* port used for RemTask() memory cleanup */
41 struct Exec_PlatformData PlatformData; /* Platform-specific stuff */
42 char AlertBuffer[ALERT_BUFFER_SIZE]; /* Buffer for alert text */
45 #define PrivExecBase(base) ((struct IntExecBase *)base)
46 #define PD(base) PrivExecBase(base)->PlatformData
47 #define KernelBase PrivExecBase(SysBase)->KernelBase
48 #define DebugBase PrivExecBase(SysBase)->DebugBase
50 /* IntFlags */
51 #define EXECF_MungWall 0x0001 /* This flag can't be changed at runtime */
52 #define EXECF_StackSnoop 0x0002
54 #if UseLVOs
55 extern void __AROS_InitExecBase (void);
56 #endif
58 APTR allocBootMem(struct MemHeader *mh, ULONG size);
59 struct ExecBase *PrepareExecBase(struct MemHeader *mh, struct TagItem *tags);
60 void InitExecBase(struct ExecBase *SysBase, ULONG negsize, struct TagItem *msg);
61 struct ExecBase *PrepareExecBaseMove(struct ExecBase *oldSysBase);
62 BOOL Exec_PreparePlatform(struct Exec_PlatformData *pdata, struct TagItem *tags);
64 void InitKickTags(struct ExecBase *SysBase);
65 UWORD GetSysBaseChkSum(struct ExecBase *sysbase);
66 void SetSysBaseChkSum(void);
67 BOOL IsSysBaseValid(struct ExecBase *sysbase);
69 IPTR cpu_SuperState();
71 #endif /* __EXEC_INTERN_H__ */