Skip to content

Commit 3029ef0

Browse files
authored
Merge pull request #228 from rust-osdev/doc
doc: add figures and better discuss chosen design
2 parents aadcf8b + cb3f83c commit 3029ef0

25 files changed

+503
-72
lines changed

.typos.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[files]
44
extend-exclude = [
5-
# "uefi/src/table/boot.rs"
5+
"*.drawio.xml"
66
]
77

88
[default.extend-words]

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Please see:
2+
3+
- [multiboot2/CHANGELOG.md](multiboot2/CHANGELOG.md)
4+
- [multiboot2-header/CHANGELOG.md](multiboot2-header/CHANGELOG.md)
5+
- [multiboot2-common/CHANGELOG.md](multiboot2-common/CHANGELOG.md)

Cargo.lock

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ exclude = [
1313
bitflags = "2.6.0"
1414
derive_more = { version = "~0.99.18", default-features = false, features = ["display"] }
1515
log = { version = "~0.4", default-features = false }
16+
multiboot2 = { version = "0.22.2", default-features = false }
17+
multiboot2-common = { version = "0.1.2", default-features = false }
1618
ptr_meta = { version = "~0.2", default-features = false }
1719

1820
# This way, the corresponding crate dependency can be normalley referenced by
@@ -21,3 +23,4 @@ ptr_meta = { version = "~0.2", default-features = false }
2123
[patch.crates-io]
2224
multiboot2 = { path = "multiboot2" }
2325
multiboot2-common = { path = "multiboot2-common" }
26+
multiboot2-header = { path = "multiboot2-header" }

Changelog.md

-3
This file was deleted.

README.md

+8-12
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1-
# Multiboot2: MBI + Header
1+
# Rusty Wrappers for Multiboot2
22

3-
This repository contains the crates `multiboot2` and `multiboot2-header`.
4-
Please check their individual README-files ([multiboot2](multiboot2/README.md),
5-
[multiboot2-header](multiboot2-header/README.md)).
3+
## Repository Overview
64

7-
The `multiboot2` crate helps to parse the Multiboot2 information structure
8-
(MBI) and is relevant in kernels, that get booted by a bootloader such as
9-
GRUB, for example. `multiboot2-header` helps you to either build
10-
Multiboot2-headers yourself, or to parse Multiboot2 headers in custom bootloader
11-
or similar applications.
5+
- [`multiboot2`](./multiboot2/README.md)
6+
- [`multiboot2-header`](./multiboot2-header/README.md)
7+
- [`multiboot2-common`](./multiboot2-common/README.md)
128

139
## License
1410

@@ -22,6 +18,6 @@ at your option.
2218

2319
### Contribution
2420

25-
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the
26-
work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
27-
additional terms or conditions.
21+
Unless you explicitly state otherwise, any contribution intentionally submitted
22+
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
23+
dual licensed as above, without any additional terms or conditions.

integration-test/bins/Cargo.lock

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

multiboot2-common/CHANGELOG.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Changelog for Crate `multiboot2-common`
2+
3+
## v0.1.2 (2024-08-24)
4+
5+
- Documentation improvements
6+
-
7+
8+
## 0.1.0 / 0.1.1 (2024-08-20)
9+
10+
Initial release.

multiboot2-common/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name = "multiboot2-common"
33
description = """
44
Common helpers for the `multiboot2` and `multiboot2-header` crates.
55
"""
6-
version = "0.1.1"
6+
version = "0.1.2"
77
authors = [
88
"Philipp Schuster <[email protected]>"
99
]

multiboot2-common/Changelog.md

-5
This file was deleted.

multiboot2-common/README.md

+17
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,23 @@
55

66
Common helpers for the `multiboot2` and `multiboot2-header` crates.
77

8+
## Architecture
9+
10+
The following figures, not displayable in `lib.rs` / on `docs.rs` unfortunately,
11+
outline the design of this crate:
12+
13+
![Overview Multiboot2 Structures](./overview-multiboot2-structures.drawio.png "Overview Multiboot2 Structures")
14+
15+
Overview of Multiboot2 structures: Multiboot2 boot information, boot
16+
information tags, Multiboot2 headers, and Multiboot2 header tags all share the
17+
same technical foundation: They have a common header and a possible dynamic
18+
size, depending on the header.
19+
20+
![Crate Architecture Overview](./architecture.drawio.png "Crate Architecture Overview")
21+
22+
Overview of how raw bytes are modelled to be representable by high-level
23+
ABI-compatible rusty types.
24+
825
## MSRV
926

1027
The MSRV is 1.70.0 stable.
183 KB
Loading

0 commit comments

Comments
 (0)