interrupt.h 748 B

12345678910111213141516171819202122232425262728293031
  1. #ifndef __KERNEL_INTERRUPT_H
  2. #define __KERNEL_INTERRUPT_H
  3. #include "stdint.h"
  4. #include "global.h"
  5. typedef void *intr_handler;
  6. void idt_init(void);
  7. /* 定义中断的两种状态:
  8. * INTR_OFF值为 0,表示关中断
  9. * INTR_ON值为 1,表示开中断 */
  10. enum intr_status
  11. {
  12. INTR_OFF,
  13. INTR_ON
  14. };
  15. enum intr_status intr_get_status(void);
  16. enum intr_status intr_set_status(enum intr_status);
  17. enum intr_status intr_enable(void);
  18. enum intr_status intr_disable(void);
  19. /// @brief 注册中断处理函数
  20. /// @param vector_no 中断号
  21. /// @param function 中断处理函数
  22. void register_handler(uint8_t vector_no, intr_handler function);
  23. enum intr_status intr_enable(void);
  24. enum intr_status intr_disable(void);
  25. #endif // __KERNEL_INTERRUPT_H