LibCore/System: Add mmap, munmap for Windows

This commit is contained in:
stasoid 2024-11-20 18:39:13 +05:00 committed by Jelle Raaijmakers
commit 3f7affa825
Notes: github-actions[bot] 2024-11-26 09:01:21 +00:00
4 changed files with 28 additions and 0 deletions

View file

@ -15,6 +15,7 @@
#include <Windows.h>
#include <direct.h>
#include <io.h>
#include <sys/mman.h>
namespace Core::System {
@ -166,4 +167,21 @@ ErrorOr<struct stat> fstatat(int, StringView, int)
VERIFY_NOT_REACHED();
}
ErrorOr<void*> mmap(void* address, size_t size, int protection, int flags, int fd, off_t offset, size_t alignment, StringView)
{
// custom alignment is not supported
VERIFY(!alignment);
void* ptr = ::mmap(address, size, protection, flags, fd, offset);
if (ptr == MAP_FAILED)
return Error::from_syscall("mmap"sv, -errno);
return ptr;
}
ErrorOr<void> munmap(void* address, size_t size)
{
if (::munmap(address, size) < 0)
return Error::from_syscall("munmap"sv, -errno);
return {};
}
}