<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rs-dos/rsnix/src/power.rs, branch qemu</title>
<subtitle>Simple, kernel-only, 64bit OS, early stage.
</subtitle>
<id>https://git.2137697.xyz/rs-dos/atom?h=qemu</id>
<link rel='self' href='https://git.2137697.xyz/rs-dos/atom?h=qemu'/>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/rs-dos/'/>
<updated>2026-08-01T01:47:51Z</updated>
<entry>
<title>Bump workspace to edition 2024</title>
<updated>2026-08-01T01:47:51Z</updated>
<author>
<name>salmonik</name>
<email>salmonik@tuta.io</email>
</author>
<published>2026-08-01T01:47:51Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/rs-dos/commit/?id=7c5603b2fed27be86982665a8b10dcd8f1c5a483'/>
<id>urn:sha1:7c5603b2fed27be86982665a8b10dcd8f1c5a483</id>
<content type='text'>
- edition = "2024" in the workspace manifest and rsdosedit
- extern blocks must be unsafe: interrupts.rs ISR stubs -&gt; unsafe extern "C"
- #[no_mangle] -&gt; #[unsafe(no_mangle)] (efi_main, isr_dispatch)
- One missed static-mut read in free_list_insert wrapped in an explicit
  unsafe block (edition 2024 removed the implicit unsafe context inside
  unsafe fns)
- rustfmt reflows for 2024: nested if-lets become let-chains, imports
  re-sorted, rsdosedit help-screen box rows wrapped

No codegen-affecting changes. Validated: cargo check/clippy/fmt clean
(host + uefi target), make test-disk PASS, editor round-trip PASS.
</content>
</entry>
<entry>
<title>power: proper shutdown via UEFI ResetSystem (ACPI S5)</title>
<updated>2026-07-31T14:01:46Z</updated>
<author>
<name>salmonik</name>
<email>salmonik@tuta.io</email>
</author>
<published>2026-07-31T14:01:46Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/rs-dos/commit/?id=ba667148af04963f5d70c647511ea1fad1add21d'/>
<id>urn:sha1:ba667148af04963f5d70c647511ea1fad1add21d</id>
<content type='text'>
- uefi.rs: full EFI_RUNTIME_SERVICES layout with reset_system at index 10
  (spec order); EfiResetSystem type + RESET_* constants
- power.rs: stash the runtime-services table pre-EBS; poweroff() calls
  ResetSystem(EfiResetShutdown) — still callable after ExitBootServices
  because we never call SetVirtualAddressMap, so the pointers keep
  working with physical addresses; falls back to the hlt loop
- shell: 'poweroff' and 'exit' shut the machine down (QEMU exits),
  'halt' keeps the plain hlt loop
</content>
</entry>
</feed>
