summaryrefslogtreecommitdiff
path: root/src/kernel/mem.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/mem.h')
-rw-r--r--src/kernel/mem.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/kernel/mem.h b/src/kernel/mem.h
index b17ba30..78de8db 100644
--- a/src/kernel/mem.h
+++ b/src/kernel/mem.h
@@ -1,4 +1,5 @@
#pragma once
+#include <kernel/arch/generic.h>
#include <kernel/main.h>
#include <stddef.h>
@@ -12,3 +13,23 @@ void page_free(void *first, size_t pages);
void *kmalloc(size_t len);
void kfree(void *ptr);
+
+
+// used for iterating through some part of a process' memory
+struct virt_iter {
+ void *frag;
+ size_t frag_len;
+ bool error;
+
+ void *_virt;
+ size_t _remaining;
+ struct pagedir *_pages;
+ bool _user;
+ bool _writeable;
+};
+
+void virt_iter_new(
+ struct virt_iter *iter, void *virt, size_t length,
+ struct pagedir *pages, bool user, bool writeable);
+
+bool virt_iter_next(struct virt_iter *);