summaryrefslogtreecommitdiffstats
path: root/firmware/core_alloc.c
diff options
context:
space:
mode:
authorThomas Jarosch <tomj@simonv.com>2015-01-02 18:41:30 +0100
committerThomas Jarosch <tomj@simonv.com>2015-01-02 18:51:15 +0100
commit66df5f3891779f8d55dd5afba1db466cea2cc2e9 (patch)
tree45d076287808f91ca434e27c1dac4066b3c48e73 /firmware/core_alloc.c
parent726537508737351d028c6730d30d9ec38fa34e4e (diff)
downloadrockbox-66df5f3891779f8d55dd5afba1db466cea2cc2e9.tar.gz
rockbox-66df5f3891779f8d55dd5afba1db466cea2cc2e9.tar.bz2
rockbox-66df5f3891779f8d55dd5afba1db466cea2cc2e9.zip
Improve core_alloc() / buflib_alloc() documentation
Document the fact that buffers are movable by default. Care must be taken to not pass them to functions that yield(). Also clarify other things: - Passing NULL as "ops" to buflib_alloc_ex() causes buffers to be movable by default (but not shrinkable). - If you want shrinkable buffers during compaction, you have to provide a shrink callback. - To disable buffer movement, you have to pass NULL for the move_callback inside the callback structure. - The concept of default callbacks was removed long ago, remove the only reference of it. Change-Id: I3bf0ea6b08b507d80a19f3c2c835aca32b3f7800
Diffstat (limited to 'firmware/core_alloc.c')
-rw-r--r--firmware/core_alloc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/firmware/core_alloc.c b/firmware/core_alloc.c
index 58e12141e1..53e5bf4a97 100644
--- a/firmware/core_alloc.c
+++ b/firmware/core_alloc.c
@@ -52,6 +52,12 @@ bool core_test_free(void)
return ret;
}
+/* Allocate memory in the "core" context. See documentation
+ * of buflib_alloc_ex() for details.
+ *
+ * Note: Buffers allocated by this functions are movable.
+ * Don't pass them to functions that call yield()
+ * like disc input/output. */
int core_alloc(const char* name, size_t size)
{
return buflib_alloc_ex(&core_ctx, size, name, NULL);