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:
Alan Korr 2002-04-17 15:00:28 +00:00
parent 454be44f8d
commit c25510f944
10 changed files with 273 additions and 207 deletions

View file

@ -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;