From 404294a7426a9784afce6b7cb457d0e0272abe6c Mon Sep 17 00:00:00 2001 From: TXuian <1163589503@qq.com> Date: Fri, 1 Nov 2024 15:15:23 +0800 Subject: [PATCH] Fix userland irq response --- Ubiquitous/XiZi_AIoT/softkernel/syscall/sys_register_irq.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Ubiquitous/XiZi_AIoT/softkernel/syscall/sys_register_irq.c b/Ubiquitous/XiZi_AIoT/softkernel/syscall/sys_register_irq.c index a27a7dff2..e884160dc 100644 --- a/Ubiquitous/XiZi_AIoT/softkernel/syscall/sys_register_irq.c +++ b/Ubiquitous/XiZi_AIoT/softkernel/syscall/sys_register_irq.c @@ -76,6 +76,12 @@ static void send_irq_to_user(int irq_num) buf->header.magic = IPC_MSG_MAGIC; buf->header.valid = 1; + struct session_backend* session_backend = irq_forward_table[irq_num].p_kernel_session; + struct Thread* server_to_call = session_backend->server; + if (!enqueue(&server_to_call->sessions_to_be_handle, 0, (void*)&session_backend->server_side)) { + return; + } + assert(!queue_is_empty(&server_to_call->sessions_to_be_handle)); if (irq_forward_table[irq_num].handle_task->state == BLOCKED) { xizi_task_manager.task_unblock(irq_forward_table[irq_num].handle_task); }