#pragma once #include #include class AnonymousVMObject final : public VMObject { public: virtual ~AnonymousVMObject() override; static NonnullRefPtr create_with_size(size_t); static NonnullRefPtr create_for_physical_range(PhysicalAddress, size_t); virtual NonnullRefPtr clone() override; private: explicit AnonymousVMObject(size_t); explicit AnonymousVMObject(const AnonymousVMObject&); AnonymousVMObject(PhysicalAddress, size_t); AnonymousVMObject& operator=(const AnonymousVMObject&) = delete; AnonymousVMObject& operator=(AnonymousVMObject&&) = delete; AnonymousVMObject(AnonymousVMObject&&) = delete; virtual bool is_anonymous() const override { return true; } };