#allocator #slab #heap #kernel #no-std #linked-list

nightly no-std slab_allocator

为 no_std 系统设计的 Slab 分配器。使用多个不同大小的块和链表来管理大于 4096 字节的块

7 个版本

使用旧的 Rust 2015

0.3.5 2018 年 9 月 6 日
0.3.4 2018 年 9 月 6 日
0.3.3 2018 年 7 月 15 日
0.3.2 2018 年 6 月 24 日
0.1.0 2018 年 1 月 8 日

#43#slab

MIT 许可证

23KB
476

slab_allocator

Build Status

文档

用法

在根模块中创建一个静态分配器

use slab_allocator::LockedHeap;

#[global_allocator]
static ALLOCATOR: LockedHeap = LockedHeap::empty();

在使用此分配器之前,您需要初始化它

pub fn init_heap() {
    let heap_start =;
    let heap_end =;
    let heap_size = heap_end - heap_start;
    unsafe {
        ALLOCATOR.init(heap_start, heap_size);
    }
}

许可证

此包受 MIT 许可证的约束。有关详细信息,请参阅 LICENSE。

依赖关系

~225KB