diff options
Diffstat (limited to 'rust/kernel/alloc/allocator_test.rs')
| -rw-r--r-- | rust/kernel/alloc/allocator_test.rs | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/rust/kernel/alloc/allocator_test.rs b/rust/kernel/alloc/allocator_test.rs index a3074480bd8d..90dd987d40e4 100644 --- a/rust/kernel/alloc/allocator_test.rs +++ b/rust/kernel/alloc/allocator_test.rs @@ -22,6 +22,17 @@ pub type Kmalloc = Cmalloc;  pub type Vmalloc = Kmalloc;  pub type KVmalloc = Kmalloc; +impl Cmalloc { +    /// Returns a [`Layout`] that makes [`Kmalloc`] fulfill the requested size and alignment of +    /// `layout`. +    pub fn aligned_layout(layout: Layout) -> Layout { +        // Note that `layout.size()` (after padding) is guaranteed to be a multiple of +        // `layout.align()` which together with the slab guarantees means that `Kmalloc` will return +        // a properly aligned object (see comments in `kmalloc()` for more information). +        layout.pad_to_align() +    } +} +  extern "C" {      #[link_name = "aligned_alloc"]      fn libc_aligned_alloc(align: usize, size: usize) -> *mut crate::ffi::c_void;  | 
