helos1/kernel/kmain.h
2021-10-10 14:11:45 +08:00

29 lines
629 B
C

#pragma once
#include "../main.h"
#ifdef __cplusplus
extern "C" {
#endif
// set the position of the top of stack before calling kMain_Init()
extern uint64_t kMain_StackPosition;
extern char kMain_StackData[], kMain_StackData_End[];
typedef SYSV_ABI void (*kMainType)();
// written in Assembly, this function deals with stack, registers, etc, and then calls kMain.
//
// remember setting kMain_StackPosition before calling kMain_Init()
SYSV_ABI noreturn void kMain_Init();
// this is the real main function.
// it should only be called by kMain_Init()
SYSV_ABI void kMain();
#ifdef __cplusplus
} // extern "C"
#endif