1use super::Alloc;
2use crate::vm::{PageFlags, Vm};
3use core::sync::atomic::{AtomicUsize, Ordering};
4
5pub fn small_alloc(vm: &Vm, flags: Alloc) {
12 static UNK: AtomicUsize = AtomicUsize::new(0);
15
16 let req = ((((u32::from(flags) & 0x100) >> 2) - (u32::from((u32::from(flags) & 0x401) == 1))
18 + 0x22)
19 | 0x100)
20 .into();
21 let page = loop {
22 match vm.alloc_page(None, UNK.fetch_add(1, Ordering::Relaxed), req) {
23 Some(v) => break v,
24 None => todo!(),
25 }
26 };
27
28 let ps = page.state.lock();
30
31 if flags.has_any(Alloc::Zero) && !ps.flags.has_any(PageFlags::Zero) {
32 todo!()
33 }
34
35 todo!()
36}