09a7452c77
Implement WaitOnAddress, WakeByAddress*; macOS impl for atomic waits
2025-11-11 10:44:14 -07:00
f18f2a929d
setup_linux: Improve segments init & add modify_ldt fallback
2025-11-11 00:28:44 -07:00
6c4f332705
Improve synchapi impls; fix heap races & 64-bit fixes
2025-11-10 18:15:33 -07:00
2494b541b7
x86_64 Linux: Add fallback for CPUs without RDFSBASE/WRFSBASE
2025-11-10 00:25:28 -07:00
76f97efe07
macOS: Add async_io_kqueue; alloc LDT entry per thread
2025-11-10 00:25:23 -07:00
b166b4a41c
Add macOS CI
2025-11-10 00:25:17 -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
463686d01a
GlobalAlloc: Add VirtualAlloc fallback for large sizes
1.0.0-beta.2
2025-11-04 00:15:26 -07:00
a59e002ed0
Fix a few compiler regressions
2025-11-03 23:22:29 -07:00
67c62cf196
Refactor CRT atexit/onexit handling
2025-11-03 22:53:39 -07:00
73b1ffb8d6
Numerous msvcrt/crt fixes; support variable resolution
2025-11-03 21:46:31 -07:00
b62b01ffca
Fix Alpine and Ubuntu builds
2025-11-03 20:06:26 -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
fe28241e8b
Fix crt prototypes using cstdint
2025-11-03 19:30:44 -07:00
8c2b96770b
CMakePresets: Rename ctest presets
2025-11-03 19:30:31 -07:00
8c39e06cca
Use CDECL_NO_CONV for va_list thunks; remove .globl
2025-11-03 19:25:20 -07:00
6f4808401b
CMakePresets: Add debug-clang and release-clang presets
2025-11-03 19:25:13 -07:00
1aabcee04f
tools/script_venv.py: Synchronize venv management
2025-11-03 19:22:13 -07:00
bfba360d30
Implement stack switching in guest<->host trampolines
2025-11-03 19:21:35 -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
9367f003c5
Refactor to use TIB LastErrorValue
2025-10-28 10:01:21 -06:00
8bd15bd272
Fix heapapi ownership checks
...
`mi_heap_check_owned` does not work for allocations that span
multiple blocks; `mi_is_in_heap_region` is a less precise but
working way for us to check if a pointer is in our heap.
See https://github.com/microsoft/mimalloc/issues/298
2025-10-27 17:04:57 -06:00
27860f0300
Implement ntdll NtWriteFile
2025-10-27 14:56:51 -06:00
5ebb15c440
Add BCryptPrimitives.dll ProcessPrng
2025-10-27 14:56:30 -06:00
ac0c6214d0
Support per-module TLS slots (ThreadLocalStoragePointer)
2025-10-27 13:49:15 -06:00
a240e3dc4b
Support TlsExpansionSlots (>64 TLS slots)
2025-10-27 12:27:26 -06:00
cf166f828a
Disable exceptions and RTTI
2025-10-27 10:47:38 -06:00
ac472c9dc9
Clarify wine testing information
2025-10-27 01:09:41 -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
1500a4f815
ReadFile/WriteFile: Require overlapped I/O on overlapped handles ( #99 )
2025-10-23 23:07:56 -07:00
5597da607a
Fix GetOverlappedResult without event & improve overlapped handling
1.0.0-beta.1
2025-10-23 11:33:09 -06:00
4d5caf91e1
Implement ConnectNamedPipe
2025-10-23 11:31:35 -06: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 )
1.0.0-alpha.5
2025-10-22 08:46:53 -07:00
2e2128b4ac
Implement kernel32::FlushViewOfFile and ntdll::memset
1.0.0-alpha.4
2025-10-15 18:33:26 -06:00
0f3b98462e
ProcessManager: use unique_lock when erasing
2025-10-09 17:18:00 -06:00
bb4bee83b7
Fix pidfd reuse race condition
1.0.0-alpha.3
2025-10-09 16:52:12 -06:00
cadb3cd00e
Add .editorconfig & format some files
2025-10-09 16:51:48 -06:00
0c2c0f653b
Add Handles::clear() and run it on exit
2025-10-09 16:48:33 -06:00
e185629d19
Always use _exit to terminate (for now)
2025-10-09 13:14:59 -06:00
dc5a91c480
Simplify process spawning using SYS_clone
1.0.0-alpha.2
2025-10-09 12:33:58 -06:00
3078cef12b
Cleanup various lints and warnings
2025-10-09 12:33:13 -06:00