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