use core::{num::NonZeroU32, ptr::NonNull};
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct PerCpuRegion {
runtime_base: NonNull<u8>,
area_stride: usize,
area_count: NonZeroU32,
}
unsafe impl Send for PerCpuRegion {}
unsafe impl Sync for PerCpuRegion {}
impl PerCpuRegion {
pub const fn new(
runtime_base: NonNull<u8>,
area_stride: usize,
area_count: NonZeroU32,
) -> Self {
Self {
runtime_base,
area_stride,
area_count,
}
}
pub fn runtime_base(self) -> usize {
self.runtime_base.as_ptr() as usize
}
pub const fn area_stride(self) -> usize {
self.area_stride
}
pub const fn area_count(self) -> NonZeroU32 {
self.area_count
}
}