1 #ifndef KERNEL_INTERN_H_
2 #define KERNEL_INTERN_H_
5 #include <exec/nodes.h>
6 #include <exec/lists.h>
7 #include <aros/kernel.h>
8 #include <utility/tagitem.h>
19 struct List kb_Intr
[256];
21 uint16_t kb_XTPIC_Mask
;
27 #define KBL_INTERNAL 0
32 struct MinNode in_Node
;
33 void (*in_Handler
)(void *, void *);
35 void *in_HandlerData2
;
38 #define STACK_SIZE 8192
39 #define PAGE_SIZE 0x1000
46 int exec_main(struct TagItem
*msg
, void *entry
);
47 void core_LeaveInterrupt(regs_t
*regs
) __attribute__((noreturn
));
48 void core_Switch(regs_t
*regs
) __attribute__((noreturn
));
49 void core_Schedule(regs_t
*regs
) __attribute__((noreturn
));
50 void core_Dispatch(regs_t
*regs
) __attribute__((noreturn
));
51 void core_ExitInterrupt(regs_t
*regs
) __attribute__((noreturn
));
52 void core_IRQHandle(regs_t regs
);
53 void core_Cause(struct ExecBase
*SysBase
);
54 /** ACPI Functions **/
55 IPTR
core_ACPIProbe();
56 ULONG
core_ACPIInitialise();
57 int core_ACPIIsBlacklisted();
58 IPTR
core_ACPIRootSystemDescriptionPointerLocate();
59 IPTR
core_ACPIRootSystemDescriptionPointerScan(IPTR
, IPTR
);
60 int core_ACPITableChecksum(void *, unsigned long);
61 IPTR
core_ACPITableSDTGet(struct acpi_table_rsdp
*);
62 int core_ACPITableParse(int, struct acpi_table_hook
*);
63 int core_ACPITableMADTParse(int, struct acpi_madt_entry_hook
*);
64 int core_ACPITableMADTFamParse(int, unsigned long, int, struct acpi_madt_entry_hook
*);
65 int core_ACPITableHeaderEarly(int, struct acpi_table_header
**);
67 IPTR
core_APICProbe();
68 IPTR
core_APICGetMSRAPICBase();
69 UBYTE
core_APICGetID(IPTR
);
70 void core_APICInitialise(IPTR
);
71 unsigned long core_APICIPIWake(UBYTE
, IPTR
);
75 void core_CPUSetup(IPTR
);
76 void core_ProtKernelArea(intptr_t addr
, intptr_t length
, char p
, char rw
, char us
);
77 void core_DefaultIRETQ();
78 /** Kernel Attribute Functions **/
79 struct TagItem
*krnNextTagItem(const struct TagItem
**tagListPtr
);
80 struct TagItem
*krnFindTagItem(Tag tagValue
, const struct TagItem
*tagList
);
81 IPTR
krnGetTagData(Tag tagValue
, intptr_t defaultVal
, const struct TagItem
*tagList
);
82 void krnSetTagData(Tag tagValue
, intptr_t newtagValue
, const struct TagItem
*tagList
);
84 /* Debug support .. */
85 void scr_RawPutChars(char *, int);
91 #define rkprintf(x...) scr_RawPutChars(tab, snprintf(tab, 510, x))
93 #endif /*KERNEL_INTERN_H_*/