Implement align_up using align_offset from Rust's standard library

This commit is contained in:
Philipp Oppermann
2020-01-22 11:35:29 +01:00
parent 002d6f255f
commit d1678f5a96

View File

@@ -74,11 +74,8 @@ impl<A> Locked<A> {
} }
} }
/// Align the given address `addr` upwards to alignment `align`.
fn align_up(addr: usize, align: usize) -> usize { fn align_up(addr: usize, align: usize) -> usize {
let remainder = addr % align; let offset = (addr as *const u8).align_offset(align);
if remainder == 0 { addr + offset
addr // addr already aligned
} else {
addr - remainder + align
}
} }