diff options
Diffstat (limited to 'apps/plugins/pdbox/TLSF-2.4.4/README')
-rw-r--r-- | apps/plugins/pdbox/TLSF-2.4.4/README | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/apps/plugins/pdbox/TLSF-2.4.4/README b/apps/plugins/pdbox/TLSF-2.4.4/README deleted file mode 100644 index d755905b16..0000000000 --- a/apps/plugins/pdbox/TLSF-2.4.4/README +++ /dev/null @@ -1,163 +0,0 @@ - -TLSF Memory Storage allocator implementation. -Version 2.4 Feb 2008 - -Authors: Miguel Masmano, Ismael Ripoll & Alfons Crespo. -Copyright UPVLC, OCERA Consortium. - -TLSF is released in the GPL/LGPL licence. The exact terms of the licence -are described in the COPYING file. - -This component provides basic memory allocation functions: -malloc and free, as defined in the standard "C" library. - -This allocator was designed to provide real-time performance, that is: -1.- Bounded time malloc and free. -2.- Fast response time. -3.- Efficient memory management, that is low fragmentation. - - -The worst response time for both malloc and free is O(1). - - - -How to use it: - -This code is prepared to be used as a stand-alone code that can be -linked with a regular application or it can be compiled to be a Linux -module (which required the BigPhysicalArea patch). Initially the -module was designed to work jointly with RTLinux-GPL, but it can be -used as a stand alone Linux module. - -When compiled as a regular linux process the API is: - -Initialisation and destruction functions ----------------------------------------- - -init_memory_pool may be called before any request or release call: - -- size_t init_memory_pool(size_t, void *); -- void destroy_memory_pool(void *); - -Request and release functions ------------------------------ - -As can be seen, there are two functions for each traditional memory -allocation function (malloc, free, realloc, and calloc). One with the -prefix "tlsf_" and the other with the suffix "_ex". - -The versions with the prefix "tlsf_" provides the expected behaviour, -that is, allocating/releasing memory from the default memory pool. The -default memory pool is the last pool initialised by the -init_memory_pool function. - -On the other hand, the functions with the prefix "_ex" enable the use of several memory pools. - -- void *tlsf_malloc(size_t); -- void *malloc_ex(size_t, void *); - -- void tlsf_free(void *ptr); -- void free_ex(void *, void *); - -- void *tlsf_realloc(void *ptr, size_t size); -- void *realloc_ex(void *, size_t, void *); - -- void *tlsf_calloc(size_t nelem, size_t elem_size); -- void *calloc_ex(size_t, size_t, void *); - -EXAMPLE OF USE: - -char memory_pool[1024*1024]; - -{ - ... - - init_memory_pool(1024*1024, memory_pool); - - ... - - ptr1=malloc_ex(100, memory_pool); - ptr2=tlsf_malloc(100); // This function will use memory_pool - - ... - - tlsf_free(ptr2); - free_ex(ptr1, memory_pool); -} - -Growing the memory pool ------------------------ - -Starting from the version 2.4, the function add_new_area adds an -memory area to an existing memory pool. - -- size_t add_new_area(void *, size_t, void *); - -This feature is pretty useful when an existing memory pool is running -low and we want to add more free memory to it. -EXAMPLE OF USE: - -char memory_pool[1024*1024]; -char memory_pool2[1024*1024]; - -{ - ... - - init_memory_pool(1024*1024, memory_pool); - - ... - - ptr[0]=malloc_ex(1024*256 memory_pool); - ptr[1]=malloc_ex(1024*512, memory_pool); - add_new_area(memory_pool2, 1024*1024, memory_pool); - // Now we have an extra free memory area of 1Mb - // The next malloc may not fail - ptr[2]=malloc_ex(1024*512, memory_pool); - - ... - -} - - -SBRK and MMAP support ---------------------- - -The version 2.4 can use the functions SBRK and MMAP to _automatically_ -growing the memory pool, before running out of memory. - -So, when this feature is enabled, unless the operating system were out -of memory, a malloc operation would not fail due to an "out-of-memory" -error. - -To enable this support, compile tlsf.c with the FLAGS -DUSE_MMAP=1 or --DUSE_SBRK=1 depending on whether you want to use "mmap" or "sbrk" or both. - -** By default (default Makefile) this feature is enabled. - -EXAMPLE OF USE: - -gcc -o tlsf.o -O2 -Wall -DUSE_MMAP=1 -DUSE_SBRK=1 - ---- - -If the sbrk/mmap support is enabled and we are _only_ going to use one -memory pool, it is not necessary to call init_memory_pool - -EXAMPLE OF USE (with MMAP/SBRK support enabled): - -{ - ... - - ptr2=tlsf_malloc(100); // This function will use memory_pool - - ... - - tlsf_free(ptr2); -} - - - - -This work has been supported by the followin projects: -EUROPEAN: IST-2001-35102(OCERA) http://www.ocera.org. -SPANISH: TIN2005-08665-C3-03 |