1
0
Fork 0
forked from len0rd/rockbox
foxbox/firmware/test/memory/memory-slab.h
Alan Korr c25510f944 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
2002-04-17 15:00:28 +00:00

62 lines
1.6 KiB
C

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id:
*
* Copyright (C) 2002 by Alan Korr
*
* All files in this archive are subject to the GNU General Public License.
* See the file COPYING in the source tree root for full license agreement.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef __LIBRARY_MEMORY_SLAB_H__
#define __LIBRARY_MEMORY_SLAB_H__
struct memory_free_block
{
struct memory_free_block
*link;
};
struct memory_slab
{
struct memory_slab
*less,*more;
unsigned int // left == number of free blocks left
left;
struct memory_free_block
*free;
};
struct memory_cache
{
struct memory_cache
*less,*more,*same;
unsigned int
left; // number of free slabs
struct memory_slab
*used;
struct memory_slab
*free;
struct memory_slab
*reap;
unsigned int
size,original_size;
unsigned int
page_size;
unsigned int
blocks_per_slab;
int
page_order;
unsigned int
flags;
};
#endif