From 1b3cad2cd65c86206b33ef707540919378c136b9 Mon Sep 17 00:00:00 2001 From: lizzie Date: Thu, 28 May 2026 17:36:53 +0000 Subject: [PATCH] managarm fixed their memfd --- src/common/host_memory.cpp | 10 +++++----- src/common/host_memory.h | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/common/host_memory.cpp b/src/common/host_memory.cpp index c405ce4053..56a7e4779a 100644 --- a/src/common/host_memory.cpp +++ b/src/common/host_memory.cpp @@ -512,7 +512,7 @@ public: fd = shm_open_anon(O_RDWR | O_CREAT | O_EXCL | O_NOFOLLOW, 0600); #elif defined(__FreeBSD__) fd = shm_open(SHM_ANON, O_RDWR, 0600); -#elif defined(__APPLE__) || defined(__managarm__) +#elif defined(__APPLE__) // macOS doesn't have memfd_create, use anonymous temporary file char template_path[] = "/tmp/eden_mem_XXXXXX"; fd = mkstemp(template_path); @@ -724,7 +724,7 @@ HostMemory::HostMemory(HostMemory&&) noexcept = default; HostMemory& HostMemory::operator=(HostMemory&&) noexcept = default; void HostMemory::Map(size_t virtual_offset, size_t host_offset, size_t length, MemoryPermission perms, bool separate_heap) { -#if !(defined(__OPENORBIS__) || defined(__managarm__)) +#if !defined(__OPENORBIS__) ASSERT(virtual_offset % PageAlignment == 0); ASSERT(host_offset % PageAlignment == 0); ASSERT(length % PageAlignment == 0); @@ -738,7 +738,7 @@ void HostMemory::Map(size_t virtual_offset, size_t host_offset, size_t length, M } void HostMemory::Unmap(size_t virtual_offset, size_t length, bool separate_heap) { -#if !(defined(__OPENORBIS__) || defined(__managarm__)) +#if !defined(__OPENORBIS__) ASSERT(virtual_offset % PageAlignment == 0); ASSERT(length % PageAlignment == 0); ASSERT(virtual_offset + length <= virtual_size); @@ -750,7 +750,7 @@ void HostMemory::Unmap(size_t virtual_offset, size_t length, bool separate_heap) } void HostMemory::Protect(size_t virtual_offset, size_t length, MemoryPermission perm) { -#if !(defined(__OPENORBIS__) || defined(__managarm__)) +#if !defined(__OPENORBIS__) ASSERT(virtual_offset % PageAlignment == 0); ASSERT(length % PageAlignment == 0); ASSERT(virtual_offset + length <= virtual_size); @@ -769,7 +769,7 @@ void HostMemory::ClearBackingRegion(size_t physical_offset, size_t length, u32 f } void HostMemory::EnableDirectMappedAddress() { -#if !(defined(__OPENORBIS__) || defined(__managarm__)) +#if !defined(__OPENORBIS__) if (impl) { impl->EnableDirectMappedAddress(); virtual_size += reinterpret_cast(virtual_base); diff --git a/src/common/host_memory.h b/src/common/host_memory.h index 3ff4cee73a..112cb1907c 100644 --- a/src/common/host_memory.h +++ b/src/common/host_memory.h @@ -77,7 +77,7 @@ private: size_t backing_size{}; size_t virtual_size{}; -#if !(defined(__OPENORBIS__) || defined(__managarm__)) +#if !defined(__OPENORBIS__) // Low level handler for the platform dependent memory routines class Impl; std::unique_ptr impl; @@ -86,7 +86,7 @@ private: u8* virtual_base{}; size_t virtual_base_offset{}; // Windows requires it for kernels whom lack proper support for some functions! -#if defined(__OPENORBIS__) || defined(__managarm__) || defined(_WIN32) +#if defined(__OPENORBIS__) || defined(_WIN32) std::optional> fallback_buffer; #endif };