测试IPI

This commit is contained in:
fslongjin
2022-04-07 20:21:28 +08:00
parent ac2508224e
commit 279de4c7f9
14 changed files with 265 additions and 81 deletions

View File

@ -112,6 +112,38 @@ void (*interrupt_table[24])(void) =
IRQ0x37interrupt,
};
/**
* @brief 声明10个IPI消息处理程序向量号从200(0xc8)开始
*
*/
Build_IRQ(0xc8)
Build_IRQ(0xc9)
Build_IRQ(0xca)
Build_IRQ(0xcb)
Build_IRQ(0xcc)
Build_IRQ(0xcd)
Build_IRQ(0xce)
Build_IRQ(0xcf)
Build_IRQ(0xd0)
Build_IRQ(0xd1)
// 初始化IPI中断服务程序数组
void (*SMP_interrupt_table[SMP_IRQ_NUM])(void) =
{
IRQ0xc8interrupt,
IRQ0xc9interrupt,
IRQ0xcainterrupt,
IRQ0xcbinterrupt,
IRQ0xccinterrupt,
IRQ0xcdinterrupt,
IRQ0xceinterrupt,
IRQ0xcfinterrupt,
IRQ0xd0interrupt,
IRQ0xd1interrupt,
};
/**
* @brief 中断注册函数
*

View File

@ -15,9 +15,13 @@
#include "../process/ptrace.h"
#define SMP_IRQ_NUM 10
extern void (*interrupt_table[24])(void);
extern void do_IRQ(struct pt_regs *regs, ul number);
extern void (*SMP_interrupt_table[SMP_IRQ_NUM])(void);
/* ========= 中断向量分配表 ==========
0~255 IDT
@ -121,6 +125,9 @@ typedef struct
#define IRQ_NUM 24
irq_desc_t interrupt_desc[IRQ_NUM] = {0};
irq_desc_t SMP_IPI_desc[SMP_IRQ_NUM];
/**
* @brief 中断注册函数
*