summaryrefslogtreecommitdiff
path: root/kernel/src/util.rs
diff options
context:
space:
mode:
authorNathan Ringo <nathan@remexre.com>2024-08-27 00:20:19 -0500
committerNathan Ringo <nathan@remexre.com>2024-08-27 00:20:19 -0500
commit251ea035fa2338db7b001af338d65875a9bc65ad (patch)
treef260a8da1b5bfef4337f06ff1567de30ad1d4c70 /kernel/src/util.rs
parentf988949d7e57f005fba0dbc14491ed9b065c2e36 (diff)
Adds a free-list for physical memory.
Diffstat (limited to 'kernel/src/util.rs')
-rw-r--r--kernel/src/util.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/src/util.rs b/kernel/src/util.rs
index 29042c8..dbcb228 100644
--- a/kernel/src/util.rs
+++ b/kernel/src/util.rs
@@ -1,6 +1,6 @@
//! Miscellaneous utilities.
-use core::mem::size_of;
+use core::{mem::size_of, ops::Range};
#[cold]
#[inline(always)]
@@ -51,6 +51,11 @@ macro_rules! dbg {
};
}
+/// Returns whether the two ranges overlap.
+pub fn ranges_overlap<T: Copy + Ord>(r1: &Range<T>, r2: &Range<T>) -> bool {
+ r1.start.max(r2.start) < r1.end.min(r2.end)
+}
+
/// A trait for types that can be converted to from big-endian or little-endian byte slices.
pub trait FromEndianBytes {
/// Converts from a big-endian byte slice.