summaryrefslogtreecommitdiff
path: root/src/kernel/ipc/shm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/ipc/shm.h')
-rw-r--r--src/kernel/ipc/shm.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/kernel/ipc/shm.h b/src/kernel/ipc/shm.h
new file mode 100644
index 0000000..b409955
--- /dev/null
+++ b/src/kernel/ipc/shm.h
@@ -0,0 +1,24 @@
+#ifndef DEF_SHM_H
+#define DEF_SHM_H
+
+#include <task/task.h>
+
+struct shmseg {
+ size_t len;
+ uint32_t *frames;
+ struct process* owner;
+};
+
+//Shared memory segment stuff
+struct segment* shmseg_make(size_t len, struct process* owner);
+struct segment_map* shmseg_map(struct segment* seg, struct page_directory *pagedir, size_t offset);
+void shmseg_unmap(struct segment_map*);
+void shmseg_delete(struct segment *seg);
+int shmseg_handleFault(struct segment_map *map, size_t addr, int write);
+
+//Shared memory syscalls
+void shm_create(size_t offset, size_t len);
+void shm_delete(size_t offset);
+
+#endif
+