GSoC/Buflib: Add buflib memory alocator to the core.gsoc2-buflib-insertion3-flat
commit97b13fee6cad7f90ae926c4d214a692bf33122e3
authorThomas Martitz <kugel@rockbox.org>
Thu, 4 Aug 2011 11:21:28 +0000 (4 13:21 +0200)
committerThomas Martitz <kugel@rockbox.org>
Thu, 4 Aug 2011 11:21:28 +0000 (4 13:21 +0200)
tree19919016127ad8c5f53b817cfed4f65e0c279897
parent366dfe71d761ccb25a9f20590ba459204f420632
GSoC/Buflib: Add buflib memory alocator to the core.

The buflib memory allocator is handle based and can free and
compact, move or resize memory on demand. This allows to effeciently
allocate memory dynamically without an MMU, by avoiding fragmentation
through memory compaction.

This patch adds the buflib library to the core, along with
convinience wrappers to omit the context parameter. Compaction is
not yet enabled, but will be in a later patch. Therefore, this acts as a
replacement for buffer_alloc/buffer_get_buffer() with the benifit of a debug
menu.

See buflib.h for some API documentation.
24 files changed:
apps/debug_menu.c
apps/dsp.c
apps/filetypes.c
apps/gui/skin_engine/skin_engine.c
apps/main.c
apps/mpeg.c
apps/playback.c
apps/playlist.c
apps/playlist.h
apps/scrobbler.c
apps/tagcache.c
apps/tagtree.c
apps/talk.c
apps/tdspeed.c
apps/tree.c
firmware/SOURCES
firmware/buflib.c [new file with mode: 0644]
firmware/common/dircache.c
firmware/core_alloc.c [new file with mode: 0644]
firmware/include/buflib.h [new file with mode: 0644]
firmware/include/core_alloc.h [new file with mode: 0644]
firmware/rolo.c
firmware/target/arm/ata-nand-telechips.c
firmware/target/arm/tms320dm320/creative-zvm/ata-creativezvm.c