#pragma once #include "fs/VFS.h" #include "fs/devices/Device.h" #include #include #include struct SharedMemory { Vector frames; off_t offset; int prot; SharedPtr inode {}; SharedPtr device {}; int refs { 0 }; SharedMemory() = default; SharedMemory(SharedMemory&&) = default; static Result create(u8* mem, off_t offset, usize count); Result grow_forward(u8* mem, usize count); Result grow_backward(u8* mem, usize count); Result map(u64 virt, int flags, off_t offset, usize count); void free(); ~SharedMemory() = default; }; extern HashMap g_shared_memory_map;