#[inline]
pub fn align_offset(x: usize, size: usize) -> usize {
x & (size - 1)
}
#[inline]
pub fn align_offset_u64(x: u64, size: u64) -> u64 {
x & (size - 1)
}
#[allow(dead_code)]
#[inline]
pub fn align_floor(x: usize, size: usize) -> usize {
x - (x & (size - 1))
}
#[allow(dead_code)]
#[inline]
pub fn align_floor_u64(x: u64, size: u64) -> u64 {
x - (x & (size - 1))
}
#[allow(dead_code)]
#[inline]
pub fn align_floor_chunk(x: usize, size: usize) -> usize {
align_floor(x, size) / size
}
#[inline]
pub fn align_ceil(x: usize, size: usize) -> usize {
if x == 0 {
return size;
}
x + (-(x as isize) & (size as isize - 1)) as usize
}
#[allow(dead_code)]
#[inline]
pub fn align_ceil_u64(x: u64, size: u64) -> u64 {
if x == 0 {
return size;
}
x + (-(x as i64) & (size as i64 - 1)) as u64
}
#[allow(dead_code)]
#[inline]
pub fn align_ceil_chunk(x: usize, size: usize) -> usize {
align_ceil(x, size) / size
}