#pragma once #include "ELF.h" #include "arch/CPU.h" #include "arch/MMU.h" #include "fs/VFS.h" #include "memory/UserVM.h" #include #include #include #include class Thread; class ThreadImage { public: static Result> try_load_from_elf(SharedPtr inode); void apply(Thread* thread); private: OwnedPtr m_vm_allocator; PageDirectory* m_directory { nullptr }; Stack m_user_stack; Stack m_kernel_stack; ELFData m_loaded_image_data; };