mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-09 15:26:47 +00:00
调整local apic向量表的大小
This commit is contained in:
parent
d18a69ac2f
commit
23b3f4c712
@ -488,7 +488,7 @@ void do_IRQ(struct pt_regs *rsp, ul number)
|
||||
irq->handler(number, irq->parameter, rsp);
|
||||
}
|
||||
}
|
||||
else if (number >= 150 && number < 160)
|
||||
else if (number >= 150 && number < 200)
|
||||
{
|
||||
irq_desc_t *irq = &local_apic_interrupt_desc[number - 150];
|
||||
|
||||
|
@ -191,7 +191,7 @@ int irq_register(ul irq_num, void *arg, void (*handler)(ul irq_num, ul parameter
|
||||
irq_desc_t *p = NULL;
|
||||
if (irq_num >= 32 && irq_num < 0x80)
|
||||
p = &interrupt_desc[irq_num - 32];
|
||||
else if (irq_num >= 150 && irq_num < 160)
|
||||
else if (irq_num >= 150 && irq_num < 200)
|
||||
p = &local_apic_interrupt_desc[irq_num - 150];
|
||||
else
|
||||
{
|
||||
|
@ -15,8 +15,10 @@
|
||||
|
||||
#include <process/ptrace.h>
|
||||
|
||||
#define IRQ_NUM 24
|
||||
#define SMP_IRQ_NUM 10
|
||||
#define LOCAL_APIC_IRQ_NUM 10
|
||||
#define LOCAL_APIC_IRQ_NUM 50
|
||||
|
||||
extern void (*interrupt_table[24])(void);
|
||||
extern void do_IRQ(struct pt_regs *regs, ul number);
|
||||
|
||||
@ -84,7 +86,7 @@ extern void (*local_apic_interrupt_table[LOCAL_APIC_IRQ_NUM])(void);
|
||||
0x80 system call
|
||||
0x81 system interrupt 系统中断
|
||||
|
||||
150 ~ 200 Local APIC
|
||||
[150,200) Local APIC
|
||||
150 CMCI
|
||||
151 Timer
|
||||
152 Thermal Monitor
|
||||
@ -127,10 +129,10 @@ typedef struct
|
||||
ul flags;
|
||||
} irq_desc_t;
|
||||
|
||||
#define IRQ_NUM 24
|
||||
// 这两个表一定要放在这里,否则在HPET初始化后收到中断,会产生page fault
|
||||
|
||||
// 这几个表一定要放在这里,否则在HPET初始化后收到中断,会产生page fault
|
||||
irq_desc_t interrupt_desc[IRQ_NUM] = {0};
|
||||
irq_desc_t local_apic_interrupt_desc[20] = {0};
|
||||
irq_desc_t local_apic_interrupt_desc[LOCAL_APIC_IRQ_NUM] = {0};
|
||||
irq_desc_t SMP_IPI_desc[SMP_IRQ_NUM] = {0};
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user