hbm 0.1.6

A hardware buffer allocator
Documentation
# HBM

HBM is a hardware buffer allocator.

`hbm` crate provides a Rust library to allocate, export/import, and access
hardware buffers.

`hbm-minigbm` crate provides an unstable C API for
[minigbm](https://chromium.googlesource.com/chromiumos/platform/minigbm/)'s
internal use.

`hbm-gralloc` crate will (it is currently empty) provide a HAL service for
[Graphics
Allocator](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/main/graphics/allocator/aidl/)
interface and an SP-HAL for [Graphics
Mapper](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/main/graphics/mapper/stable-c)
interface on Android.  It is mainly built via the Android build system rather
than via cargo.

## TODOs

- multi-backend
  - e.g., drm-kms adds alignment and modifier constraints, vulkan decides
    the layout, dma-heap allocates dma-buf, and vulkan again maps/copies
- more backends, such as vaapi, v4l2, libcamera, etc.
- policy backend
  - collect constraints and generate a policy offline
  - load constraints from the policy at runtime
  - this is useful when sandboxed or for non-queryable constraints
- require modifiers
- `no_std`
- `hbm-gralloc`
  - aidl codegen
  - implement allocator and mapper