mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-18 12:16:31 +00:00
解决了在用户态下进行系统调用会禁用中断的问题
This commit is contained in:
@ -475,18 +475,16 @@ void do_IRQ(struct pt_regs *rsp, ul number)
|
||||
}
|
||||
}
|
||||
|
||||
else if (number >= 0x80 && number != 250)
|
||||
else if (number == 0x80) // 系统调用
|
||||
{
|
||||
do_syscall_int(rsp, 0);
|
||||
}
|
||||
else if (number > 0x80)
|
||||
|
||||
{
|
||||
printk_color(RED, BLACK, "SMP IPI [ %d ]\n", number);
|
||||
apic_local_apic_edge_ack(number);
|
||||
}
|
||||
else if (number == 250) // 系统调用
|
||||
{
|
||||
kdebug("receive syscall");
|
||||
kdebug("rflags=%#010lx", rsp->rflags);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
|
||||
|
@ -50,7 +50,7 @@ hardware_intr_controller HPET_intr_controller =
|
||||
|
||||
void HPET_handler(uint64_t number, uint64_t param, struct pt_regs *regs)
|
||||
{
|
||||
printk("(HPET)");
|
||||
//printk("(HPET)");
|
||||
switch (param)
|
||||
{
|
||||
case 0: // 定时器0中断
|
||||
@ -76,7 +76,6 @@ void HPET_handler(uint64_t number, uint64_t param, struct pt_regs *regs)
|
||||
if (sched_cfs_ready_queue.cpu_exec_proc_jiffies <= 0)
|
||||
{
|
||||
current_pcb->flags |= PROC_NEED_SCHED;
|
||||
kdebug("need_sched. proc_jiffies=%ld", sched_cfs_ready_queue.cpu_exec_proc_jiffies);
|
||||
}
|
||||
|
||||
break;
|
||||
|
Reference in New Issue
Block a user