Commit Graph

74 Commits

Author SHA1 Message Date
aa2bbb1e1c Refactor heap and add dynamic expansion (increments of 64 MiB) 2025-11-20 01:32:04 -07:00
0caa5c51a7 Fix HAVE_PTHREAD_GETTID_NP definition 2025-11-18 22:04:21 -07:00
2304c05ed0 Add getThreadId helper using pthread_{gettid,threadid}_np/gettid 2025-11-18 21:52:23 -07:00
f012b22101 LoadLibraryA: Skip import resolution & DllMain for EXEs 2025-11-11 21:22:09 -07:00
09a7452c77 Implement WaitOnAddress, WakeByAddress*; macOS impl for atomic waits 2025-11-11 10:44:14 -07:00
6c4f332705 Improve synchapi impls; fix heap races & 64-bit fixes 2025-11-10 18:15:33 -07:00
76f97efe07 macOS: Add async_io_kqueue; alloc LDT entry per thread 2025-11-10 00:25:23 -07:00
4a7a6b9d72 Add CMake toolchains and update CI 2025-11-10 00:24:58 -07:00
d85671e3c6 Download and use embedded msvcrt.dll 2025-11-09 13:18:33 -07:00
cc0a887302 Initial macOS support (x86_64 with Rosetta 2) 2025-11-08 01:45:47 -07:00
f56bd8e2a7 More ntdll impls; fix 64-bit Clang assembly 2025-11-08 01:22:11 -07:00
3dd9fb77ff Experimental 64-bit host support 2025-11-06 19:14:48 -07:00
1c53336547 Use patched mimalloc with mi_heap_free+arena fix
See PR: https://github.com/microsoft/mimalloc/pull/1168
2025-11-03 19:51:42 -07:00
4dc599381f 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
2025-11-03 13:58:33 -07:00
52cdd7c811 Fully functional guest<->host trampolines 2025-10-31 00:45:32 -06:00
55a62a27c9 Initial guest-to-host trampoline generation 2025-10-30 02:23:09 -06:00
27860f0300 Implement ntdll NtWriteFile 2025-10-27 14:56:51 -06:00
cf166f828a Disable exceptions and RTTI 2025-10-27 10:47:38 -06:00
50a457c5e3 Begin reworking TLS impl & add TLS loader support 2025-10-27 01:03:30 -06:00
f2743d05e7 Add hybrid epoll/thread pool async I/O backend (#98)
* Add hybrid epoll/thread pool async I/O backend

* Remove thread pool in favor of epoll AIO backend
2025-10-23 23:09:52 -07:00
8e532ccf78 Implement CreateNamedPipeA 2025-10-23 11:31:35 -06:00
fa3541fe2d Add thread pool async I/O backend (#97)
* Add thread pool async I/O backend

* Make it work with older code
2025-10-23 10:29:23 -07:00
24fa3ef419 Implement ole32 CLSIDFromString (#95) 2025-10-22 08:46:53 -07:00
2ffc56f5c2 Improve heapapi implementation 2025-10-08 18:11:37 -06:00
ce57eb44a8 Replace hand-rolled MD5/SHA-1 with faster versions 2025-10-08 18:10:27 -06:00
13bb1a9679 Revamp CLI --help and add --version 2025-10-07 17:09:58 -06:00
061228c971 Make liburing optional; rewrite CMakeLists.txt and enable LTO 2025-10-07 14:12:37 -06:00
df36de18bf Implement async (overlapped) I/O with io_uring 2025-10-06 23:51:09 -06:00
f366e77956 Rewrite FindFirstFile/FindNextFile (again), add comprehensive tests 2025-10-06 17:57:54 -06:00
f52ca2803f Tests for handleapi, synchapi, processes 2025-10-06 10:14:03 -06:00
01ed50c4b4 Fix pipe reads; add tests for NtReadFile & pipes 2025-10-05 23:24:50 -06:00
0d76e541c1 Reorg headers, module_registry -> modules, remove ActCtx msvcr80.dll hack 2025-10-05 17:46:16 -06:00
b87fb5e472 Implement some ActCtx functions for msvcr80.dll 2025-10-05 15:52:38 -06:00
0bc80b6618 Split into HostContextGuard/GuestContextGuard 2025-10-05 14:32:06 -06:00
cd7baffc5e Save/restore fs/gs segments when re-entering host code 2025-10-05 13:58:40 -06:00
166399f143 Move main source files into src/ 2025-10-04 13:34:31 -06:00
390f26b28d New handles, threading and processes subsystems 2025-10-04 13:31:26 -06:00
a9581423a8 VirtualQuery rework 2025-10-02 17:11:28 -06:00
d8150e33b9 Rework thread TIB handling & DLL initialization handling 2025-10-02 16:40:23 -06:00
8330f27479 Add CreatePipe, CON* support for CreateFileA, more for cygwin 2025-10-02 09:47:41 -06:00
694eb85deb Remove advapi32/internal.cpp; move to relevant source files 2025-10-02 09:15:25 -06:00
3249ebf4bf Split advapi32 into separate files (part 2) & more impls for ee-gcc/cygwin 2025-10-02 09:05:27 -06:00
79e1dbf523 Split advapi32 into separate files (part 1) 2025-10-02 01:20:51 -06:00
2cbd624119 Split kernel32 into separate files (part 3) 2025-10-02 01:02:26 -06:00
fa3ed4893a Split kernel32 into separate files (part 2) 2025-10-02 00:20:28 -06:00
9ea5b24b67 Split kernel32 into separate files (part 1) 2025-10-01 18:18:13 -06:00
41f8388bac Totally rework VirtualAlloc and friends 2025-10-01 15:35:57 -06:00
ccd79a256a Reimplement kernel32 time functions, fix HeapReAlloc, debug log improvements 2025-10-01 00:59:11 -06:00
62d8daccac Overlapped I/O support (fixes ProDG compilers) 2025-09-29 23:32:17 -06:00
d69fc8a422 Implement kernel32 Heap* funcs using mimalloc 2025-09-29 14:54:38 -06:00