Handle IRQs inside the kernel
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m42s
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m42s
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
#include <libk/std.h>
|
||||
#include <libk/string.h>
|
||||
#include <limine/requests.h>
|
||||
#include <mm/liballoc.h>
|
||||
#include <mm/malloc.h>
|
||||
#include <mm/pmm.h>
|
||||
#include <proc/capability.h>
|
||||
#include <proc/proc.h>
|
||||
@@ -319,14 +319,12 @@ void proc_wait_for (struct proc* proc, struct reschedule_ctx* rctx, struct proc*
|
||||
proc_sq_suspend (proc, &wait_proc->done_sq, NULL, 0, rctx);
|
||||
}
|
||||
|
||||
static void proc_irq_sched (void* arg, void* regs, struct reschedule_ctx* rctx) {
|
||||
static void proc_irq_sched (void* arg, void* regs, bool user, struct reschedule_ctx* rctx) {
|
||||
(void)arg, (void)regs, (void)rctx;
|
||||
|
||||
#if defined(__x86_64__)
|
||||
struct saved_regs* sr = regs;
|
||||
if (sr->cs != (GDT_UCODE | 0x3))
|
||||
if (!user) {
|
||||
return;
|
||||
#endif
|
||||
}
|
||||
|
||||
proc_sched ();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user