1 #ifndef KERNEL_INTERN_H_
2 #define KERNEL_INTERN_H_
6 #include <exec/nodes.h>
7 #include <exec/lists.h>
8 #include <aros/kernel.h>
9 #include <utility/tagitem.h>
12 #define STACK_SIZE 65536
13 #define PAGE_SIZE 0x1000
14 #define PAGE_MASK 0x0FFF
19 * Boot-time private data.
20 * This structure is write-protected in user mode and survives warm restarts.
22 struct KernBootPrivate
24 IPTR _APICBase
; /* Bootstrap APIC base address */
25 UWORD kbp_APIC_BSPID
; /* Bootstrap APIC logical ID */
26 unsigned short debug_y_resolution
; /* Parameters of screen's lower half ('vesahack' mode) */
27 void *debug_framebuffer
;
28 IPTR SystemStack
; /* System stack base address */
29 void *GDT
; /* Self-explanatory */
40 extern struct KernBootPrivate
*__KernBootPrivate
;
42 /* Platform-specific part of KernelBase */
45 APTR kb_APIC_TrampolineBase
; /* Starting address of secondary core bootstrap code */
46 uint16_t kb_XTPIC_Mask
; /* Current XT-PIC interrupt mask */
47 struct APICData
*kb_APIC
; /* APIC global data */
50 #define KBL_INTERNAL 0
55 void core_Kick(struct TagItem
*msg
, void *target
);
56 void kernel_cstart(const struct TagItem
*msg
);
59 void core_SetupIDT(struct KernBootPrivate
*);
60 void core_SetupGDT(struct KernBootPrivate
*);
61 void core_SetupMMU(struct KernBootPrivate
*, IPTR memtop
);
62 void core_CPUSetup(UBYTE
, IPTR
);
63 void core_ProtKernelArea(intptr_t addr
, intptr_t length
, char p
, char rw
, char us
);
64 void core_DefaultIRETQ();
65 ULONG
acpi_Initialize(void);
66 void ictl_Initialize(void);
68 struct ExceptionContext
;
70 /* Interrupt processing */
71 void core_LeaveInterrupt(struct ExceptionContext
*);
72 void core_Supervisor(struct ExceptionContext
*);
74 //void core_Reboot(void);
76 void PlatformPostInit(void);
78 //int smp_Setup(void);
81 #endif /*KERNEL_INTERN_H_*/