rust-osdev / acpi

Rust library for parsing ACPI tables and interpreting AML
Apache License 2.0
203 stars 65 forks source link

Add hack to get `aml` compiling on 32-bit platforms #159

Closed IsaacWoods closed 1 year ago

IsaacWoods commented 1 year ago

This should hopefully allow aml to compile on 32-bit platforms for the mean time. In the future we need to sit down and understand how to solve this properly, or rip bitvec out and replace it with an implementation that doesn't have this limitation.

I have locally confirmed that this compiles on i686-unknown-linux-gnu, but don't have a 32-bit kernel setup to test this properly on. I wonder if lots of the these machines will expect a legacy AML implementation (one that models integers as 32-bit anyway), so a future direction could simply be to use u32 on those platforms (this is easier said than done though, I think).

cc @rw-vanc - could you give this a quick check-over for logic and see if it works for you? I'm not sure if you are using a fork or the crates.io version for Redox - do you need this to be published?

IsaacWoods commented 1 year ago

cc #146 - this does not resolve the issue satisfactorily, but should be a hack to get around Redox's immediate problem

rw-vanc commented 1 year ago

We are using crates.io. We have a temporary patch with aml excluded, but we will clone and build with the fix.

IsaacWoods commented 1 year ago

Sure - lmk if it works and I can merge & publish

rw-vanc commented 1 year ago

It compiles on i686 and does not crash our acpi driver. I can't confirm that bitfields are working, but the compilation is fixed.

IsaacWoods commented 1 year ago

:rocket: Published as aml v0.16.3