From a2671839daddfaaec63f43132854c606c556558a Mon Sep 17 00:00:00 2001
From: Steven Le Rouzic <steven.lerouzic@gmail.com>
Date: Fri, 5 Apr 2024 18:05:56 +0200
Subject: Add virtual memory API

---
 deimos/core/os.h | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

(limited to 'deimos/core/os.h')

diff --git a/deimos/core/os.h b/deimos/core/os.h
index fa1762a..9aea509 100644
--- a/deimos/core/os.h
+++ b/deimos/core/os.h
@@ -36,13 +36,27 @@ public:
     virtual void* GetSymbol(OsDll*, gsl::czstring) = 0;
 };
 
+class OsVirtualMemoryApi
+{
+public:
+    OsVirtualMemoryApi() = default;
+    deimos_NO_COPY_MOVE(OsVirtualMemoryApi);
+    virtual ~OsVirtualMemoryApi() = default;
+
+    virtual gsl::owner<void*> Map(int64_t size) = 0;
+    virtual void Unmap(gsl::owner<void*>) = 0;
+    virtual gsl::owner<void*> Reserve(int64_t size) = 0;
+    virtual void Commit(void* ptr, int64_t size) = 0;
+};
+
 class OsApi
 {
 public:
     static constexpr IdName kApiName{"deimos::OsApi"};
 
-    OsConsoleApi* console{};
-    OsDllApi* dll{};
+    OsConsoleApi*           console{};
+    OsDllApi*               dll{};
+    OsVirtualMemoryApi*     virtual_memory{};
 };
 
 class OsConsoleWriter : public IWriter
-- 
cgit