From 4617f96a99c0e5dfac1b45b3cff037306e4edc63 Mon Sep 17 00:00:00 2001 From: Nathan Ringo Date: Sat, 31 Aug 2024 00:46:17 -0500 Subject: Adds a static assertion. --- kernel/Cargo.lock | 7 +++++++ kernel/Cargo.toml | 1 + kernel/src/allocators/buddy/mod.rs | 3 +++ 3 files changed, 11 insertions(+) diff --git a/kernel/Cargo.lock b/kernel/Cargo.lock index ca8ef0e..71a1b88 100644 --- a/kernel/Cargo.lock +++ b/kernel/Cargo.lock @@ -51,6 +51,7 @@ dependencies = [ "either", "log", "spin", + "static_assertions", "void", ] @@ -90,6 +91,12 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "syn" version = "1.0.109" diff --git a/kernel/Cargo.toml b/kernel/Cargo.toml index 87a2443..f2bb9ff 100644 --- a/kernel/Cargo.toml +++ b/kernel/Cargo.toml @@ -14,6 +14,7 @@ contracts = { version = "0.6.3", default-features = false } either = { version = "1.13.0", default-features = false } log = { version = "0.4.20", default-features = false } spin = { version = "0.9.8", default-features = false, features = ["mutex", "use_ticket_mutex"] } +static_assertions = { version = "1.1.0", default-features = false } void = { version = "1.0.2", default-features = false } [profile.release] diff --git a/kernel/src/allocators/buddy/mod.rs b/kernel/src/allocators/buddy/mod.rs index 261d076..08b30a7 100644 --- a/kernel/src/allocators/buddy/mod.rs +++ b/kernel/src/allocators/buddy/mod.rs @@ -47,3 +47,6 @@ mod tree; /// The index of the largest size class; i.e., one less than the number of size classes. const MAX_ORDER: usize = 18; + +// The max order comes out to a largest size class of 1GiB pages. +static_assertions::const_assert_eq!(4096 << MAX_ORDER, 1024 * 1024 * 1024); -- cgit v1.2.3