mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-23 03:52:45 -05:00
Now memory-page and memory-misc compile fine (others are in stage-development)
Conventions :
* Public headers :
memory.h,config.h,defines.h,inlines.h,types.h,functions.h
* Private headers :
memory-page.h,memory-slab.h (here you can find
prototypes functions or structures we want to share
only between memory-page.c, memory-slab.c,
memory-block.c, memory-misc.c).
* Public or private codes in :
memory-page.c,memory-slab.c,memory-block.c,memory-misc.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@126 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
454be44f8d
commit
c25510f944
10 changed files with 273 additions and 207 deletions
|
|
@ -16,13 +16,12 @@
|
|||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
#ifndef __LIBRARY_MEMORY_C__
|
||||
# error "This header file must be included ONLY from memory.c."
|
||||
#endif
|
||||
#ifndef __LIBRARY_MEMORY_BLOCK_H__
|
||||
# define __LIBRARY_MEMORY_BLOCK_H__
|
||||
#if 0
|
||||
#include <memory.h>
|
||||
#include "memory-page.h"
|
||||
#include "memory-slab.h"
|
||||
|
||||
static struct memory_cache *free_block_cache[MEMORY_PAGE_MINIMAL_ORDER - 2];
|
||||
static struct memory_cache *__memory_free_block_cache[MEMORY_PAGE_MINIMAL_ORDER - 2];
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// MEMORY BLOCK :
|
||||
|
|
@ -32,15 +31,15 @@ static struct memory_cache *free_block_cache[MEMORY_PAGE_MINIMAL_ORDER - 2];
|
|||
// - memory_release_block : release a power-of-2-sized block (or a page)
|
||||
//
|
||||
|
||||
static inline void *allocate_small_block (int order)
|
||||
static inline void *__memory_allocate_block (int order)
|
||||
{
|
||||
struct memory_cache *cache = free_block_cache[order - 2];
|
||||
struct memory_cache *cache = __memory_free_block_cache[order - 2];
|
||||
do
|
||||
{
|
||||
if (cache)
|
||||
return memory_cache_allocate (cache);
|
||||
}
|
||||
while ((free_block_cache[order] = cache = memory_create_cache (size,0,0)));
|
||||
while ((__memory_free_block_cache[order] = cache = memory_create_cache (size,0,0)));
|
||||
return MEMORY_RETURN_FAILURE;
|
||||
}
|
||||
|
||||
|
|
@ -49,15 +48,15 @@ void *memory_allocate_block (int order)
|
|||
if (order < 2)
|
||||
order = 2;
|
||||
if (order < MEMORY_PAGE_MINIMAL_ORDER)
|
||||
return allocate_small_block (order);
|
||||
return __memory_allocate_block (order);
|
||||
if (order < MEMORY_PAGE_MAXIMAL_ORDER)
|
||||
return memory_allocate_page (order);
|
||||
return MEMORY_RETURN_FAILURE;
|
||||
}
|
||||
|
||||
static inline int release_block (int order,void *address)
|
||||
static inline int __memory_release_block (int order,void *address)
|
||||
{
|
||||
struct memory_cache *cache = free_block_cache[order - 2];
|
||||
struct memory_cache *cache = __memory_free_block_cache[order - 2];
|
||||
if (cache)
|
||||
return memory_cache_release (cache,address);
|
||||
return MEMORY_RETURN_FAILURE;
|
||||
|
|
@ -68,7 +67,7 @@ int memory_release_block (int order,void *address)
|
|||
if (order < 2)
|
||||
order = 2;
|
||||
if (order < MEMORY_PAGE_MINIMAL_ORDER)
|
||||
return release_block (order);
|
||||
return __memory_release_block (order);
|
||||
if (order < MEMORY_PAGE_MAXIMAL_ORDER)
|
||||
return memory_release_page (address);
|
||||
return MEMORY_RETURN_FAILURE;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue