14 Commits
Author SHA1 Message Date
mirkobrombin 0df657bec7 feat: add registry, locale and event APIs 2026-10-31 19:43:27 +00:00
mirkobrombin fff01045c8 chore: merge pull request #78 from rayzorben/feat/msys-runtime-start 2026-10-30 06:32:59 +00:00
Raymond Bennett 55b2059107 fix: let NtCreateEvent take object attributes without a name
The Cygwin runtime (MSYS2, which MinGit's tools run on) creates its events
with NtCreateEvent and an OBJECT_ATTRIBUTES that names nothing but sets
inheritance and a security descriptor. Raven refused any attributes with
STATUS_NOT_SUPPORTED, and the runtime spun in Sleep(0) for good (a local
git clone hung this way). Attributes without a name now make an unnamed
event, inheritable with OBJ_INHERIT; a named native event is still not
made here. The object contract test checks both.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the attributes handling and its test checks
(cherry picked from commit 5913f893757d284aeedb0580dc83e30559995126)
2026-10-29 02:02:51 -07:00
Raymond Bennett 593a710833 feat: native waits, sleeps and thread alerts
Zig's standard library waits through ntdll: it sleeps with
NtDelayExecution, parks threads with NtWaitForAlertByThreadId and wakes them
with NtAlertThreadByThreadId, interrupts waits with NtAlertThread, and waits
for its children with an alertable NtWaitForSingleObject. These now run on
the scheduler's waits:

- NtDelayExecution sleeps for a native timeout (100 ns units, negative from
  now, positive a system time, none forever) and answers STATUS_USER_APC
  when it ran APCs and STATUS_ALERTED when the thread was alerted.
- NtAlertThread alerts a thread's alertable native wait; NtTestAlert takes
  the alert and runs the APCs.
- NtWaitForAlertByThreadId and NtAlertThreadByThreadId pair as their
  documentation describes, an alert that comes first being kept.
- NtWaitForSingleObject and NtWaitForMultipleObjects wait as
  WaitForSingleObjectEx and WaitForMultipleObjectsEx do, alertable ones
  included, which the object layer refused; their results are the same
  numbers.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the native wait, sleep and alert functions and the object test change
(cherry picked from commit 44686f355a19520c1c9abb10006adaecee34f114)
2026-10-29 01:30:25 -07:00
mirkobrombin 9815ab8f6d perf: serve handle closes and event changes 2026-10-26 02:22:37 +00:00
mirkobrombin 0a0fe4be89 feat: add shared Windows process state and parallel guest execution 2026-10-24 16:24:23 +00:00
Mirko Brombin 93acf0d441 feat: load libraries only mapped, as data or through their own manifest, and read plain files through the LZ functions 2026-10-03 10:21:49 +00:00
Mirko Brombin 26fbeabc78 feat: run Steam's web UI with cross-process handles, per-thread message queues, socket events and process identity 2026-09-03 16:48:12 +02:00
Mirko Brombin 966069f911 feat: run Steam to its web helper with real sockets, TLS chains, child environments and image protection 2026-09-03 02:50:56 +02:00
Mirko Brombin bc37ed5e58 feat: add time slice guest threads and wait on events through the scheduler 2026-08-02 05:26:50 +02:00
Mirko Brombin 88a47aa359 feat: add the 16-bit era file functions 2026-08-01 22:58:07 +02:00
Mirko Brombin efc6104b5b feat: add kernel32 services, guest threads and structured exceptions for PE64 processes 2026-07-31 21:45:18 +02:00
Mirko Brombin 98e8b4b9c4 feat: add native standard file handles and process exit status 2026-07-31 17:13:19 +02:00
Mirko Brombin 154272073d feat: preserve native C++ migration 2026-07-31 16:46:25 +02:00