2 Star 6 Fork 3

稀风/KOS

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
irq.h 3.52 KB
一键复制 编辑 原始数据 按行查看 历史
稀风 提交于 2023-01-20 14:56 . 内核里的中断:笔记优化
#ifndef __IRQ_H_
#define __IRQ_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <common.h>
// 中断号枚举
typedef enum E_IRQ_NUM
{
IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7, IRQ8, IRQ9, IRQ10, IRQ11, IRQ12, IRQ13, IRQ14, IRQ15, // 0 ~ 15
IRQ16, IRQ17, IRQ18, IRQ19, IRQ20, IRQ21, IRQ22, IRQ23, IRQ24, IRQ25, IRQ26, IRQ27, IRQ28, IRQ29, IRQ30, IRQ31, // 16 ~ 31
IRQ32, IRQ33, IRQ34, IRQ35, IRQ36, IRQ37, IRQ38, IRQ39, IRQ40, IRQ41, IRQ42, IRQ43, IRQ44, IRQ45, IRQ46, IRQ47, // 32 ~ 47
IRQ48, IRQ49, IRQ50, IRQ51, IRQ52, IRQ53, IRQ54, IRQ55, IRQ56, IRQ57, IRQ58, IRQ59, IRQ60, IRQ61, IRQ62, IRQ63, // 48 ~ 63
IRQ64, IRQ65, IRQ66, IRQ67, IRQ68, IRQ69, IRQ70, IRQ71, IRQ72, IRQ73, IRQ74, IRQ75, IRQ76, IRQ77, IRQ78, IRQ79, // 64 ~ 79
IRQ80, IRQ81, IRQ82, IRQ83, IRQ84, IRQ85, IRQ86, IRQ87, IRQ88, IRQ89, IRQ90, IRQ91, IRQ92, IRQ93, IRQ94, IRQ95, // 80 ~ 95
IRQ96, IRQ97, IRQ98, IRQ99, IRQ100, IRQ101, IRQ102, IRQ103, IRQ104, IRQ105, IRQ106, IRQ107, IRQ108, IRQ109, IRQ110, IRQ111, // 96 ~ 111
IRQ112, IRQ113, IRQ114, IRQ115, IRQ116, IRQ117, IRQ118, IRQ119, IRQ120, IRQ121, IRQ122, IRQ123, IRQ124, IRQ125, IRQ126, IRQ127, // 112 ~ 127
IRQ128, IRQ129, IRQ130, IRQ131, IRQ132, IRQ133, IRQ134, IRQ135, IRQ136, IRQ137, IRQ138, IRQ139, IRQ140, IRQ141, IRQ142, IRQ143, // 128 ~ 143
IRQ144, IRQ145, IRQ146, IRQ147, IRQ148, IRQ149, IRQ150, IRQ151, IRQ152, IRQ153, IRQ154, IRQ155, IRQ156, IRQ157, IRQ158, IRQ159, // 144 ~ 159
IRQ160, IRQ161, IRQ162, IRQ163, IRQ164, IRQ165, IRQ166, IRQ167, IRQ168, IRQ169, IRQ170, IRQ171, IRQ172, IRQ173, IRQ174, IRQ175, // 160 ~ 175
IRQ176, IRQ177, IRQ178, IRQ179, IRQ180, IRQ181, IRQ182, IRQ183, IRQ184, IRQ185, IRQ186, IRQ187, IRQ188, IRQ189, IRQ190, IRQ191, // 176 ~ 191
IRQ192, IRQ193, IRQ194, IRQ195, IRQ196, IRQ197, IRQ198, IRQ199, IRQ200, IRQ201, IRQ202, IRQ203, IRQ204, IRQ205, IRQ206, IRQ207, // 192 ~ 207
IRQ208, IRQ209, IRQ210, IRQ211, IRQ212, IRQ213, IRQ214, IRQ215, IRQ216, IRQ217, IRQ218, IRQ219, IRQ220, IRQ221, IRQ222, IRQ223, // 208 ~ 223
IRQ224, IRQ225, IRQ226, IRQ227, IRQ228, IRQ229, IRQ230, IRQ231, IRQ232, IRQ233, IRQ234, IRQ235, IRQ236, IRQ237, IRQ238, IRQ239, // 224 ~ 239
IRQ240, IRQ241, IRQ242, IRQ243, IRQ244, IRQ245, IRQ246, IRQ247, IRQ248, IRQ249, IRQ250, IRQ251, IRQ252, IRQ253, IRQ254, IRQ255, // 240 ~ 255
IRQ_TOTAL
} E_IRQ_NUM;
typedef void (*F_ISR)(void);
/******************************************************************************
* 函数名称: IrqRegister(E_IRQ_NUM irqNmu, F_ISR ifunc)
* 功能说明: 注册中断服务程序
* 输入参数: E_IRQ_NUM irqNmu --中断号
    F_ISR ifunc --中断服务程序
* 输出参数: 无
* 函数返回: E_OK:成功; E_ERR:失败
* 其它说明: 无
******************************************************************************/
E_RET IrqRegister(E_IRQ_NUM irqNmu, F_ISR ifunc);
/******************************************************************************
* 函数名称: IrqInit(void)
* 功能说明: 绑定默认中断服务程序
* 输入参数: 无
* 输出参数: 无
* 函数返回: E_OK:成功; E_ERR:失败
* 其它说明: 由于在创建 IDT 时未绑定默认中断服务程序
    如果此时触发中断会发生未知的错误
    所以必须给所有中断绑定一个默认中断服务程序
******************************************************************************/
E_RET IrqInit(void);
#ifdef __cplusplus
}
#endif
#endif
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/thin-wind/KOS.git
git@gitee.com:thin-wind/KOS.git
thin-wind
KOS
KOS
main

搜索帮助