diff options
Diffstat (limited to 'kernel/ipc.h')
-rw-r--r-- | kernel/ipc.h | 26 |
1 files changed, 26 insertions, 0 deletions
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 <stdbool.h> +#include <typedefs.h> + +#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 |