| # Copyright (c) 2021,2023 Intel Corporation |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| menu "Memory Blocks" |
| |
| config SYS_MEM_BLOCKS |
| bool "(Yet Another) Memory Blocks Allocator" |
| help |
| This enables support for memory block allocator where: |
| () All memory blocks have a single fixed size. |
| () Multiple blocks can be allocated or freed at the same time. |
| () A group of blocks allocated together may not be contiguous. |
| This is useful for operations such as scatter-gather DMA |
| transfers. |
| () Bookkeeping of allocated blocks is done outside of |
| the associated buffer (unlike memory slab). This allows |
| the buffer to reside in memory regions where these can be |
| powered down to conserve energy. |
| |
| config SYS_MEM_BLOCKS_LISTENER |
| bool "Memory Blocks Allocator event notifications" |
| depends on SYS_MEM_BLOCKS |
| select HEAP_LISTENER |
| help |
| This allows application to listen for memory blocks allocator |
| events, such as memory allocation and de-allocation. |
| |
| config SYS_MEM_BLOCKS_RUNTIME_STATS |
| bool "Memory blocks runtime statistics" |
| depends on SYS_MEM_BLOCKS |
| help |
| This option enables the tracking and reporting of the memory |
| blocks statistics related to the current and maximum number |
| of allocations in a given memory block. |
| |
| config OBJ_CORE_SYS_MEM_BLOCKS |
| bool "Kernel object for memory blocks" |
| depends on SYS_MEM_BLOCKS && OBJ_CORE |
| default y if SYS_MEM_BLOCKS && OBJ_CORE |
| help |
| This option allows object cores to be integrated into memory block |
| objects. |
| |
| config OBJ_CORE_STATS_SYS_MEM_BLOCKS |
| bool "Object core statistics for memory blocks" |
| depends on SYS_MEM_BLOCKS && OBJ_CORE_STATS |
| default y if SYS_MEM_BLOCKS && OBJ_CORE_STATS |
| select SYS_MEM_BLOCKS_RUNTIME_STATS |
| help |
| This option integrates the object core statistics framework into |
| the memory blocks. |
| |
| endmenu |