commit | b7dc0de64b0e1dcd2bddb6efc7a08f75f1c493db | [log] [tgz] |
---|---|---|
author | Yeoreum Yun <yeoreum.yun@arm.com> | Mon Jun 02 20:38:19 2025 +0100 |
committer | Yeoreum Yun <yeoreum.yun@arm.com> | Wed Jun 11 14:42:49 2025 +0100 |
tree | 9ac0502d0c9c2e0d8bb2400985295effc60d4dcf | |
parent | 18b4f5597a4fb0fa05f548a89e06a161f8850ec2 [diff] |
feat: merge dummy entry of transfer list When transfer_list_set_data_size() is called in sequence—first to shrink an entry, then to expand it—the dummy entry created during the shrink is not reused in the expansion. This leaves unused dummy entries that increase the total size of the transfer list unnecessarily. This patch addresses that by: 1. Reusing a following dummy entry when expanding the size of a transfer list entry. 2. Merging adjacent dummy entries when removing an entry, reducing fragmentation and improving reuse. Change-Id: Ieb61b345117bdfe93348995af022a17a00f8728d Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
The Transfer List Library (LibTL) implements the Firmware Handoff specification, providing a streamlined interface for managing transfer lists. LibTL offers a user-friendly interface for:
The library supports building with host tools such as Clang and GCC, and cross compilation with the Aarch64 GNU compiler.
Tool | Minimum Version |
---|---|
Clang-Format | 14 |
CMake | 3.15 |
To configure the project, use the following command. This will default to using GCC as the toolchain and create a build directory named build/
:
cmake -B build
To build the project, use:
cmake --build build
This will output libtl.a in the build directory.
For cross-compilation or selecting a different compiler, specify the target toolchain file using the CMAKE_TOOLCHAIN_FILE
option and the target with CROSS_COMPILE
:
export CROSS_COMPILE=aarch64-none-elf- cmake -B build -DCMAKE_TOOLCHAIN_FILE=toolchains/host/gnu.cmake
Tests for LibTL are provided in the folder test
, to configure the project for test builds, run:
cmake -B build -DTARGET_GROUP=test cmake --build build
Then, to run the tests with ctest
, use:
ctest --test-dir build/