mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
interrupt: do userspace check on interrupt return to userspace
This commit is contained in:
@@ -95,6 +95,7 @@ static void dopending(context_t *ctx) {
|
||||
}
|
||||
}
|
||||
|
||||
__attribute__((no_caller_saved_registers)) void sched_userspacecheck(context_t *context);
|
||||
|
||||
void interrupt_isr(int vec, context_t *ctx) {
|
||||
isr_t *isr = &_cpu()->isr[vec];
|
||||
@@ -114,6 +115,9 @@ void interrupt_isr(int vec, context_t *ctx) {
|
||||
if (isr->eoi)
|
||||
isr->eoi(isr);
|
||||
|
||||
if (ARCH_CONTEXT_ISUSER(ctx))
|
||||
sched_userspacecheck(ctx);
|
||||
|
||||
_cpu()->intstatus = ARCH_CONTEXT_INTSTATUS(ctx);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user