Introduce object pool allocator
authorSandrine Bailleux <sandrine.bailleux@arm.com>
Fri, 1 Jun 2018 12:17:08 +0000 (14:17 +0200)
committerSandrine Bailleux <sandrine.bailleux@arm.com>
Thu, 11 Oct 2018 14:11:18 +0000 (16:11 +0200)
commit9cc4651c9d7098e8ef659e067e501f436f488988
tree634d232ddaf2442d9a6073a8898b77226dd0b9de
parentf7a18268ad2201176ffc882b43c900f9d025bde1
Introduce object pool allocator

The object pool allocator provides a simplistic interface to manage
allocation in a fixed-size static array. The caller creates a static
"object pool" out of such an array and may then call pool_alloc() to
get the next available object within the pool. There is also a variant
to get multiple consecutive objects: pool_alloc_n().

Note that this interface does not provide any way to free the objects
afterwards. This is by design and it is not a limitation. We do not
want to introduce complexity induced by memory freeing, such as
use-after-free bugs, memory fragmentation and so on.

Change-Id: Iefc2e153767851fbde5841a295f92ae48adda71f
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
include/lib/object_pool.h [new file with mode: 0644]