Refactor memory management into wibo::heap

- Removes blockUpper2GB hack; we now start early in the process
  and reserve all (available) space in the lower 2GB address
  space, leaving the upper 2GB untouched for host code
- All virtual memory operations flow through wibo::heap for
  bookkeeping
- All guest code uses a guest mimalloc area + thread-local heaps
  reserved in the guest address space
This commit is contained in:
2025-11-02 20:18:23 -07:00
parent 52cdd7c811
commit 4dc599381f
23 changed files with 1558 additions and 753 deletions

View File

@@ -3,6 +3,7 @@
#include "entry.h"
#include "entry_trampolines.h"
#include "files.h"
#include "heap.h"
#include "modules.h"
#include "processes.h"
#include "strutil.h"
@@ -501,10 +502,7 @@ int main(int argc, char **argv) {
kernel32::setLastError(0);
// Invoke the damn thing
{
GUEST_CONTEXT_GUARD(&tib);
call_EntryProc(entryPoint);
}
call_EntryProc(entryPoint);
DEBUG_LOG("We came back\n");
wibo::shutdownModuleRegistry();
wibo::tls::cleanupTib(&tib);