Crates.io | libacpica |
lib.rs | libacpica |
version | 0.0.8 |
source | src |
created_at | 2021-04-06 23:13:33.248401 |
updated_at | 2021-08-19 04:19:07.201156 |
description | Bindings to the ACPI Component Architecture |
homepage | |
repository | https://github.com/gz/acpica-sys |
max_upload_size | |
id | 380064 |
size | 12,105,202 |
Builds acpica, and has bindings to it. To actually use most of it, various symbols will need to be provided, described in section 9 of the ACPICA reference manual.
This is a fork of the existing acpica-sys crate with minor modifications:
Check https://crates.io/crates/libacpica for more details.
Some steps that might be useful to follow:
cp acpica-old/source/include/platform/acnrk.h acpica/source/include/platform/acnrk.h
acenv.h
in the platform list:Should look like this:
#if defined(NRK)
#include "acnrk.h"
#elif defined(_LINUX) || defined(__linux__)
#include "aclinux.h"
mv src/raw64.rs src/raw64.bak.rs
bash update-bindings.sh
(Make sure rust-bindgen is installed for this step)raw64.rs
see if it approximately represents src/raw64.bak.rs
file.rm src/raw64.bak.rs
rm -rf acpica-old
Some issues that can be expected and what to do about them:
error[E0433]: failed to resolve: maybe a missing crate std?
-> Replace with core, or remove those definiton if unwanted.error[E0308]: mismatched types expected i32, found u32
: Make sure UINT8, UINT32, UINT64 map to u8, u32, u64 respectively (and not i8, i32, i64).| = note: ld: ./target/x86_64-nrk/debug/deps/liblibacpica-e827d49529440c52.rlib(utglobal.o):(.data+0x0): multiple definition of `AcpiGbl_FixedEventInfo'; ./target/x86_64-nrk/debug/deps/liblibacpica-70ca8cf5bc7406ee.rlib(utglobal.o):(.data+0x0): first defined here
Some older version of libacpica creeped in through a transitive dependency (e.g., rust-topology). Clone rust-topology locally and use update libacpica there or use a cargo patch section to override.
| = note: ld: ./target/x86_64-nrk/debug/deps/liblibacpica-1986a2fed1aa7eb7.rlib(utdebug.o): in function `AcpiDebugPrint':
| utdebug.c:(.text+0x169): undefined reference to `strlen'
Check compile time defines for ACPI_USE_STANDARD_HEADERS
and ACPI_USE_SYSTEM_CLIBRARY
.