From 838b142b7374150df63ec02b02377c114a14b314 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Sun, 5 Sep 2021 18:32:08 +0200 Subject: move most of the memory stuff to kernel/mem/ --- src/kernel/mem/virt.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/kernel/mem/virt.h (limited to 'src/kernel/mem/virt.h') diff --git a/src/kernel/mem/virt.h b/src/kernel/mem/virt.h new file mode 100644 index 0000000..98a7a16 --- /dev/null +++ b/src/kernel/mem/virt.h @@ -0,0 +1,28 @@ +/* contains utilities for interacting with virtual memory */ +#pragma once +#include +#include +#include + +struct virt_iter { + void *frag; + size_t frag_len; + size_t prior; // sum of all prior frag_lens + bool error; + + user_ptr _virt; + size_t _remaining; + struct pagedir *_pages; + bool _user; + bool _writeable; +}; + +void virt_iter_new( + struct virt_iter *iter, user_ptr virt, size_t length, + struct pagedir *pages, bool user, bool writeable); + +bool virt_iter_next(struct virt_iter *); + +bool virt_user_cpy( + struct pagedir *dest_pages, user_ptr dest, + struct pagedir *src_pages, const user_ptr src, size_t length); -- cgit v1.2.3