From 4536dc81b4be9a62328826455664cd6d696df8fb Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Sun, 25 Feb 2024 01:45:19 +0100 Subject: IPC: Inform the scheduler the process is waiting for a IPC message --- kernel/ipc.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'kernel/ipc.c') diff --git a/kernel/ipc.c b/kernel/ipc.c index bce346a..eb7c1b7 100644 --- a/kernel/ipc.c +++ b/kernel/ipc.c @@ -2,7 +2,6 @@ #include #include #include -#include #include #include @@ -45,6 +44,16 @@ int ipc_get_mailbox(u32 id, struct IpcMailbox **out) { return 1; } +int ipc_has_data(process_t *p) { + if (!p) { + p = get_current_task(); + } + struct IpcMailbox *handler = &p->ipc_mailbox; + u32 read_ptr = handler->read_ptr; + struct IpcMessage *ipc_message = &handler->data[read_ptr]; + return ipc_message->is_used; +} + int ipc_read(u8 *buffer, u32 length, u32 *sender_pid) { struct IpcMailbox *handler = &get_current_task()->ipc_mailbox; -- cgit v1.2.3