kernel_main.h 528 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <types/types.h>
  3. #define __crash() asm volatile("ud2")
  4. #ifdef __BOCHS_SYSTEM__
  5. #define __break_point() asm volatile("xchgw %bx, %bx")
  6. #else
  7. #define __break_point() __crash()
  8. #endif
  9. #define MAKE_BREAK_POINT() __break_point()
  10. #define KERNEL_STACK_SIZE (16 * 1024)
  11. #define KERNEL_STACK_SEGMENT (0x10)
  12. #define KERNEL_START_ADDR (0x00100000)
  13. void NORETURN kernel_main(void);
  14. #ifdef __cplusplus
  15. // in kernel_main.c
  16. extern "C" struct tss32_t tss;
  17. #else
  18. // in kernel_main.c
  19. extern struct tss32_t tss;
  20. #endif