use crate::PageFlags;
#[derive(Debug, Default)]
#[repr(C, align(32))]
pub struct PageFrame {
pub flags: PageFlags,
pub order: u8,
pub next: u32,
pub prev: u32,
pub size_class: u8,
pub rc: u16,
pub freelist_va: usize,
pub _pad: u8,
}
impl PageFrame {
pub const fn new() -> Self {
Self {
flags: (*unsafe { core::mem::transmute::<&usize, &PageFlags>(&0) }).clone(),
order: 0,
next: 0,
prev: 0,
size_class: 0,
rc: 0,
freelist_va: 0,
_pad: 0,
}
}
pub fn reset(&mut self) {
self.flags = (*unsafe { core::mem::transmute::<&usize, &PageFlags>(&0) }).clone();
self.order = 0;
self.next = 0;
self.prev = 0;
self.freelist_va = 0;
self.rc = 0;
self.size_class = 0;
}
}