Commit Graph

59 Commits

Author SHA1 Message Date
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
195f6c1408 Un-stub FileTime functions; impl TerminateProcess, HeapDestroy 2025-09-29 09:25:19 -06:00
f941a1e642 Initial threading support & more impls for compilers 2025-09-28 22:44:35 -06:00
8884c9597e Merge remote-tracking branch 'origin/main' into dll 2025-09-28 20:40:26 -06:00
8cac50e50e Rewrite BCryptGenRandom and add tests 2025-09-28 17:20:43 -06:00
f23224bbcc cl.exe works! but I didn't review most of this code 2025-09-26 17:38:24 -06:00
104e9e869d Add proper testing framework & integrate with CI 2025-09-26 10:39:09 -06:00
01ddf95d36 Add proper resource implementation 2025-09-26 01:51:25 -06:00
836f485d66 Initial external DLL support 2025-09-26 00:55:35 -06:00
c80b7cb3d0 Integrate mimalloc (#88) 2025-08-15 10:03:13 -06:00
ConorB
a85e589de5 [TEMPORARY FIX] Fix issues with the stack not being resized correctly (#65) 2023-12-23 15:34:37 -07:00
5a4af7d51b Ensure we don't reallocate during 2GB address space block (#49)
* Ensure we don't reallocate during 2GB address space block

* Use std::string_view and std::from_chars to avoid allocations

* Use MAP_FIXED instead of MAP_FIXED_NOREPLACE

* Use raw syscalls and stack buffer

* Use exit(1)
2023-10-03 21:26:30 -04:00
Ethan Roseman
8a6aacb82d GetLocaleInfoW (#47)
* GetLocaleInfoW for ee-as.exe 991111b

* Try to do it the right way

* 3rd time's the charm?

* round 4

* it doesn't matter now what happens i will never give up the fight

* comments

* fin
2023-09-22 09:13:56 +09:00
ConorB
218b4d7d76 Implement enough process handling logic to make psyq4.0 happy (#46)
* Implement enough process handling logic to make psyq4.0 happy

* revert gitignore

* data type update

* PR review

* DEBUG_LOG mistake

---------

Co-authored-by: ConorBobbleHat <c.github@firstpartners.net>
2023-09-18 15:05:47 +09:00
Ethan Roseman
6a420668e5 CorExitProcess for armcc_41_1440 (#44)
* Implement CorExitProcess for armcc_41_1440

* Fix function signature, add dll coverage
2023-09-12 22:44:56 +09:00
Ethan Roseman
b7e8e5fb80 3 msvcrt funcs (#42)
* msvcrt funcs

* fix empty final line

* Promment
2023-09-11 04:22:01 +09:00