Fix userland irq response

This commit is contained in:
TXuian 2024-11-01 15:15:23 +08:00
parent 6632bc08e9
commit 404294a742
1 changed files with 6 additions and 0 deletions

View File

@ -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);
}