You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<spanclass="gray">(Section written by [@IsaacWoods](https://github.com/IsaacWoods))</span>
35
+
36
36
The `acpi` repository contains crates for parsing the ACPI tables – data structures that the firmware of modern computers use to relay information about the hardware to the OS. Lots of work happened this month:
37
37
38
38
*[Support](https://github.com/rust-osdev/acpi/pull/76) for the `Fixed Memory`, `Word Address Space`, `DWord Address Space`, `QWord Address Space`, `IRQ Format`,
@@ -45,7 +45,7 @@ The `acpi` repository contains crates for parsing the ACPI tables – data struc
45
45
important to the Redox project as it allows parsing of the ACPI tables in userspace. We also used this
46
46
opportunity for breaking changes to clean up a few parts of the library, especially in making our method of
47
47
mapping physical memory ranges safer.
48
-
* A new crate, [rsdp](https://crates.io/crates/rsdp), was split out from `acpi`. This new crate provides methods
48
+
* A new crate, [`rsdp`](https://crates.io/crates/rsdp), was split out from `acpi`. This new crate provides methods
49
49
for searching for the first ACPI table (the Root System Description Pointer (RSDP)) on BIOS systems without
50
50
`alloc` support. This makes it suitable for use from bootloaders and similar applications where heap allocation
51
51
is not supported. All types are reexported by the `acpi` crate, so users can access the same functionality from
@@ -78,7 +78,7 @@ The `volatile` crate provides safe wrapper types for implementing volatile read
78
78
The main advantage of the new reference-based implementation is that it is now possible to work with volatile arrays and slices, at least on nightly Rust. Through the [`index`](https://docs.rs/volatile/0.4.1/volatile/struct.Volatile.html#method.index) and [`index_mut`](https://docs.rs/volatile/0.4.1/volatile/struct.Volatile.html#method.index_mut) methods it is possible to create sub-slices, which can then be read and written efficiently through the [`copy_into_slice`](https://docs.rs/volatile/0.4.1/volatile/struct.Volatile.html#method.copy_into_slice) and [`copy_from_slice`](https://docs.rs/volatile/0.4.1/volatile/struct.Volatile.html#method.copy_from_slice) methods. All these operations perform volatile memory accesses, so that the compiler won't optimize them away.
The [`bootloader` crate](https://github.com/rust-osdev/bootloader) implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we published versions `0.9.9` to `0.9.11` to fix build errors on the latest nightlies.
98
+
The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we published versions `0.9.9` to `0.9.11` to fix build errors on the latest nightlies, caused by the new feature gate names for some `const fn` features.
99
99
100
100
We also made some more progress on the rewrite with UEFI support. It now [passes additional framebuffer information](https://github.com/rust-osdev/bootloader/commit/3237429457d3df58080fa284d9c2b7138e3fff3a) and the [address of the RSDP structure of ACPI](https://github.com/rust-osdev/bootloader/commit/694d3139fe24bce0184da3bb9096e6540ee1fa3d) in the boot info. (We later updated the RSDP code to [use the new `rsdp` crate](https://github.com/rust-osdev/bootloader/commit/cb8345bd3c45fc3c56a631a3b416137c45f828f9)). The bootloader also gained support for [setting up a recursive page table mapping](https://github.com/rust-osdev/bootloader/commit/34a5da852ba8f6b0abfafb5c5a68adc4cae638fa), which makes it almost feature-equivalent with the current implementation. There are still a few things missings, but it should be ready to be published soon.
101
101
@@ -104,6 +104,9 @@ We also made some more progress on the rewrite with UEFI support. It now [passes
104
104
The `cargo-xbuild` project provides `cargo` command wrappers to cross-compile the sysroot crates `core` and `alloc`. This month, we merged some maintenance updates to increase platform compatibility:
105
105
106
106
-[Remove fs2 dependency for broader platform support](https://github.com/rust-osdev/cargo-xbuild/pull/91) <spanclass="gray">(published as `v0.6.1`)</span>
107
+
-[Fix winapi issues from flock() rework](https://github.com/rust-osdev/cargo-xbuild/pull/94) <spanclass="gray">(published as `v0.6.2`)</span>
108
+
109
+
Thanks to [@pfmooney](https://github.com/pfmooney) for these contributions!
107
110
108
111
Even though we still maintain the `cargo-xbuild` crate, we recommend switching to cargo's own `build-std` feature that is always up-to-date with the latest Rust/Cargo changes. We wrote a short guide on how to switch to it, which is available [in our Readme](https://github.com/rust-osdev/cargo-xbuild#alternative-the-build-std-feature-of-cargo).
0 commit comments