range-alloc-arceos 0.1.4-pre.1

Generic range allocator
Documentation
  • Coverage
  • 7.69%
    1 out of 13 items documented0 out of 11 items with examples
  • Size
  • Source code size: 34.31 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.36 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 13s Average build duration of successful builds.
  • all releases: 13s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • arceos-hypervisor/range-alloc-arceos
    0 2 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • numpy1314

range-alloc-arceos

Crates.io Docs License CI

range-alloc-arceos is a generic range allocator tailored for the ArceOS ecosystem.

It is a fork of the excellent gfx-rs/range-alloc, adapted for use in kernel development and embedded scenarios (no_std). It allows you to dynamically allocate and free ranges from a predefined memory block or address space.

Features

  • no_std Support: Designed for bare-metal and kernel environments.
  • Generic: Works with any type that satisfies the Range requirements (e.g., memory addresses, port numbers).
  • **`markdown

range-alloc-arceos

Crates.io Docs License CI

range-alloc-arceos is a generic range allocator tailored for the ArceOS ecosystem.

It is a fork of the excellent gfx-rs/range-alloc, adapted for use in kernel development and embedded scenarios (no_std). It allows you to dynamically allocate and free ranges from a predefined memory block or address space.

Features

  • no_std Support: Designed for bare-metal and kernel environments.
  • Generic: Works with any type that satisfies the Range requirements (e.g., memory addresses, port numbers).
  • Efficient: Merges adjacent free ranges to minimize fragmentation.

Usage

Add this to your Cargo.toml:

[dependencies]
range-alloc-arceos = "0.1.0-alpha.1"

Example

use range_alloc_arceos::RangeAllocator;

fn main() {
    // Initialize the allocator with a range (e.g., 0..100)
    let mut allocator = RangeAllocator::new(0..100);

}

License

This project is licensed under either of

at your option.