Bug: 230395700

Clone this repo:
  1. 3ebe7e4 Upgrade buddy_system_allocator to 0.9.0 am: f5036be98c by Jeff Vander Stoep · 7 weeks ago master
  2. f5036be Upgrade buddy_system_allocator to 0.9.0 by Jeff Vander Stoep · 7 weeks ago
  3. 8df5284 Remove TEST_MAPPING. am: 2a7bbc0cc3 by Andrew Walbran · 3 months ago
  4. 2a7bbc0 Remove TEST_MAPPING. by Andrew Walbran · 3 months ago main-16k-with-phones
  5. bf48771 Update to 0.9.0. am: 79e515e284 by Andrew Walbran · 3 months ago


Crates.io version docs.rs

An (almost) drop-in replacement for phil-opp/linked-list-allocator. But it uses buddy system instead.


To use buddy_system_allocator for global allocator:

use buddy_system_allocator::LockedHeap;

static HEAP_ALLOCATOR: LockedHeap = LockedHeap::<32>::empty();

To init the allocator:

unsafe {
    HEAP_ALLOCATOR.lock().init(heap_start, heap_size);
    // or
    HEAP_ALLOCATOR.lock().add_to_heap(heap_start, heap_end);

You can also use FrameAllocator and LockedHeapWithRescue, see their documentation for usage.


  • use_spin (default): Provide a LockedHeap type that implements the GlobalAlloc trait by using a spinlock.
  • const_fn (nightly only): Provide const fn version of LockedHeapWithRescue::new.


Some code comes from phil-opp's linked-list-allocator.

Licensed under MIT License. Thanks phill-opp's linked-list-allocator for inspirations and interface.