From 6d6289f0fb3b07b0d1a02f671df6b096318d4a4c Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Sat, 6 Jul 2024 20:46:22 +0200 Subject: Kernel: Add queue syscall and improve TCP --- kernel/queue.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 kernel/queue.h (limited to 'kernel/queue.h') diff --git a/kernel/queue.h b/kernel/queue.h new file mode 100644 index 0000000..0885f16 --- /dev/null +++ b/kernel/queue.h @@ -0,0 +1,29 @@ +#include +#include +#include + +#define QUEUE_WAIT_READ (1 << 0) +#define QUEUE_WAIT_WRITE (1 << 1) + +#define QUEUE_MOD_ADD 0 +#define QUEUE_MOD_CHANGE 1 +#define QUEUE_MOD_DELETE 2 + +struct queue_entry { + int fd; + u8 listen; + int data_type; + void *data; +}; + +struct queue_list { + struct relist entries; // Store this as a binary tree(red black trees + // are used by epoll) as file + // descriptors will be used for lookups + process_t *process; +}; + +int queue_create(void); +int queue_mod_entries(int fd, int flag, struct queue_entry *entries, + int num_entries); +int queue_wait(int fd, struct queue_entry *events, int num_events); -- cgit v1.2.3