From 636858dbbd48ed9f5073793b46740302aa202f43 Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Tue, 28 Nov 2023 20:07:50 +0100 Subject: Kernel: Add basic IPC and move to microkernel design. The IPC design is currently a WIP and is nowhere near complete --- kernel/ipc.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 kernel/ipc.h (limited to 'kernel/ipc.h') diff --git a/kernel/ipc.h b/kernel/ipc.h new file mode 100644 index 0000000..cfa9e6d --- /dev/null +++ b/kernel/ipc.h @@ -0,0 +1,26 @@ +#ifndef IPC_H +#define IPC_H +#include +#include + +#define IPC_BUFFER_SIZE 4096 +#define IPC_NUM_DATA 32 + +struct IpcMessage { + u8 is_used; + u32 sender_pid; + u32 size; + u8 buffer[IPC_BUFFER_SIZE]; +}; + +struct IpcMailbox { + u32 read_ptr; + u32 write_ptr; + struct IpcMessage data[IPC_NUM_DATA]; +}; + +bool ipc_register_endpoint(u32 endpoint); +int ipc_write_to_process(int pid, u8 *buffer, u32 length); +int ipc_write(int ipc_id, u8 *buffer, u32 length); +int ipc_read(u8 *buffer, u32 length, u32 *sender_pid); +#endif -- cgit v1.2.3