|
|
@@ -1,6 +1,5 @@
|
|
|
-use super::mem::AsMemoryBlock;
|
|
|
+use super::mem::{AsMemoryBlock, GlobalPageAlloc};
|
|
|
use arch::{PercpuArea, CPU};
|
|
|
-use buddy_allocator::BuddyAllocator;
|
|
|
use core::{alloc::Layout, pin::Pin, ptr::NonNull};
|
|
|
use eonix_mm::paging::Page;
|
|
|
use eonix_sync::LazyLock;
|
|
|
@@ -18,7 +17,7 @@ pub unsafe fn local_cpu() -> Pin<&'static mut CPU> {
|
|
|
pub fn percpu_allocate(layout: Layout) -> NonNull<u8> {
|
|
|
// TODO: Use page size defined in `arch`.
|
|
|
let page_count = layout.size().div_ceil(arch::PAGE_SIZE);
|
|
|
- let page = Page::<BuddyAllocator>::alloc_at_least(page_count);
|
|
|
+ let page = Page::alloc_at_least_in(page_count, GlobalPageAlloc::buddy_alloc());
|
|
|
let page_data = page.as_memblk().as_byte_ptr();
|
|
|
core::mem::forget(page);
|
|
|
|