Skip to content

Remove some AML-triggerable panics from library#276

Merged
IsaacWoods merged 10 commits intorust-osdev:mainfrom
IsaacWoods:main
Apr 23, 2026
Merged

Remove some AML-triggerable panics from library#276
IsaacWoods merged 10 commits intorust-osdev:mainfrom
IsaacWoods:main

Conversation

@IsaacWoods
Copy link
Copy Markdown
Member

@IsaacWoods IsaacWoods commented Mar 15, 2026

  • Handle lack of FACS on hardware-reduced ACPI
  • Work out what to do with incorrect operation arguments
  • Handle CopyObject
  • Correct DefStore behaviour

- Do not panic by default on fatal errors
- Do not panic on encountering `DefLoad` or `DefLoadTable`
- Do not panic on `DefNotify`
- Add correct object type for `RawDataBuffer`s
- Correctly handle `AccessField` and `ExtendedAccessField`
- Partially handle stores to names
@IsaacWoods
Copy link
Copy Markdown
Member Author

I'm feeling like it's probably worth getting this merged here - the remaining items are fairly involved and this PR already makes some changes it'll become increasingly hard to reconcile other changesets against.

Thoughts on remaining items:

  • ConnectField is quite hard. The spec has been tightened-up from when I developed my mental model of field lists, and it has become clear that you need to be able to handle almost-arbitrary AML within a field list. This will probably require a large refactor to make field lists a special type of block or something (just to be able to handle a DerefOf to some buffer data in a ConnectField or whatever).
  • There are still a fair few panics around, which will need to be removed.
  • There are a few potential approaches to DefMatch parsing for those random interspersed bytes - they probably need to be tried to see which one will be cleanest. The actual logic is way simpler than I thought, as apparently the NT interpreter only bothers to handle integer data in their DefMatch logic

@IsaacWoods IsaacWoods changed the title Remove AML-triggerable panics from library Remove some AML-triggerable panics from library Apr 23, 2026
@IsaacWoods IsaacWoods marked this pull request as ready for review April 23, 2026 12:09
@IsaacWoods IsaacWoods merged commit 936e008 into rust-osdev:main Apr 23, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant