#pragma once #ifndef MODULE #define MODULE "mem" #endif #include "log/Log.h" #include "memory/MemoryManager.h" #include "memory/VMM.h" #include "misc/utils.h" #include Result strdup_from_user(const char* user_string); bool validate_user_readable_page(uintptr_t address); bool validate_user_writable_page(uintptr_t address); bool validate_user_read(uintptr_t address, size_t size); bool validate_user_write(uintptr_t address, size_t size); bool copy_from_user(const void* user_ptr, void* ptr, size_t size); bool copy_to_user(void* user_ptr, const void* ptr, size_t size); template bool copy_typed_from_user(const T* user_ptr, T* ptr) { return copy_from_user(user_ptr, ptr, sizeof(T)); } template bool copy_typed_to_user(T* user_ptr, const T* ptr) { return copy_to_user(user_ptr, ptr, sizeof(T)); }