Skip to content

Commit 0597927

Browse files
committed
Add updates for rust-osdev projects
1 parent 4fd82de commit 0597927

File tree

1 file changed

+57
-1
lines changed

1 file changed

+57
-1
lines changed

content/this-month/2020-10/index.md

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,63 @@ In this section, we give an overview of notable changes to the projects hosted u
3434

3535
The `x86_64` crate provides various abstractions for `x86_64` systems, including wrappers for CPU instructions, access to processor-specific registers, and abstraction types for architecture-specific structures such as page tables and descriptor tables.
3636

37-
In October, …
37+
In October, we merged following changes:
38+
39+
- [Provide functions for accessing the underlying L4 table for mapper types](https://github.com/rust-osdev/x86_64/pull/184)
40+
- [Make `GlobalDescriptorTable::add_entry` a const fn](https://github.com/rust-osdev/x86_64/pull/191)
41+
- [Update docs to suggest `TryFrom` trait](https://github.com/rust-osdev/x86_64/pull/198)
42+
43+
Thanks to [@toku-sa-n](https://github.com/toku-sa-n) for their contribution! We plan to publish the above changes as [version `0.12.3`](https://github.com/rust-osdev/x86_64/pull/200) in the next few days.
44+
45+
### [`volatile`](https://github.com/rust-osdev/volatile)
46+
47+
The `volatile` crate provides a safe wrapper type for implementing volatile read and write operations. This is useful for accessing memory regions that have side-effects, such as memory-mapped hardware registers or framebuffers.
48+
49+
In October, we published a new version to fix the crate's `unstable` feature on newer Rust nighlies:
50+
51+
- [Change `slice::check_range` to `RangeBounds::assert_len`](https://github.com/rust-osdev/volatile/pull/16) <span class="gray">(published as `v0.4.2`)</span>
52+
53+
Thanks to [@vetio](https://github.com/vetio) for this contribution!
54+
55+
56+
### [`bootloader`](https://github.com/rust-osdev/bootloader)
57+
58+
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.
59+
60+
We we didn't merge any changes to the `master` branch this month, we made more progress on the rewrite that adds UEFI support: There is now a [draft pull request](https://github.com/rust-osdev/bootloader/pull/130) that tracks the remaining issues.
61+
62+
### [`uefi-rs`](https://github.com/rust-osdev/uefi-rs)
63+
64+
The `uefi` crate provides safe and performant wrappers for [UEFI](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface), the successor to the BIOS. In October, we merged the following changes:
65+
66+
- [Made `panic_handler` optional](https://github.com/rust-osdev/uefi-rs/pull/179)
67+
- [Fix Clippy lints](https://github.com/rust-osdev/uefi-rs/pull/180)
68+
69+
Thanks to [@Swampman08](https://github.com/Swampman08) for their contribution!
70+
71+
72+
### [`pci_types`](https://github.com/rust-osdev/pci_types)
73+
74+
The `pci_types` library provides types for accessing and configuring PCI devices from Rust operating systems. Lots of this code (e.g. identifying devices by class codes) can be shared
75+
between projects, and would benefit from community contributions.
76+
77+
This month, we published version `0.2.0` with the following changes:
78+
79+
- [Untie accessor from the actual PciHeader type](https://github.com/rust-osdev/pci_types/commit/e1201d7d8986ff1133e2880b0ba62a3b2d7d891b)
80+
- [Split out endpoint header to separate struct](https://github.com/rust-osdev/pci_types/commit/d9cd5809148084d31fe5cc6ddbb5c8129bf23dae)
81+
- [Provide method for accessing BARs on endpoint headers](https://github.com/rust-osdev/pci_types/commit/aeb1b249cf6e4563b815011f7ed759198b283405)
82+
83+
84+
### [`cargo-xbuild`](https://github.com/rust-osdev/cargo-xbuild)
85+
86+
The `cargo-xbuild` project provides `cargo` command wrappers to cross-compile the sysroot crates `core` and `alloc`. This month, we merged the following changes:
87+
88+
- [Document `build-std-features` flag for Cargo's `build-std` feature](https://github.com/rust-osdev/cargo-xbuild/pull/95)
89+
- [Upgrade the crate to edition 2018](https://github.com/rust-osdev/cargo-xbuild/pull/97) <span class="gray">(published as `v0.6.3`)</span>
90+
91+
Thanks to [@luqmana](https://github.com/luqmana) and [@koushiro](https://github.com/koushiro) for these contributions!
92+
93+
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).
3894

3995
## Personal Projects
4096

0 commit comments

Comments
 (0)