uffs_mem.c File Reference

uffs native memory allocator More...

#include <string.h>
#include "uffs/uffs_types.h"
#include "uffs/uffs_public.h"
#include "uffs/uffs_os.h"
#include "uffs/uffs_mem.h"

Go to the source code of this file.

Defines

#define ALLOC_OFFSET   12
#define ALLOC_PAGE_BIT_OFFSET   5
#define ALLOC_PAGE_MASK   (ALLOC_PAGE_SIZE - 1)
#define ALLOC_PAGE_SIZE   (1 << ALLOC_PAGE_BIT_OFFSET)
#define ALLOC_THRESHOLD   (ALLOC_PAGE_SIZE * 1)
#define HEAP_MAGIC_SIZE   8
#define HEAP_NODE_ALLOCED   0xaa551234
#define HEAP_NODE_FREE   0x123455aa
#define K_HEAP_ALLOCK_BEST_FIT
#define PFX   "mem:"

Typedefs

typedef _HEAPNODE HEAPNODE

Functions

void uffs_InitHeapMemory (void *addr, int size)
 Add a new memory region to the free heap.
URET uffs_initNativeMemAllocator (uffs_Device *dev)
int uffs_releaseNativeMemAllocator (uffs_Device *dev)


Detailed Description

uffs native memory allocator

Author:
Ricky Zheng, created 23th Feb, 2007

Definition in file uffs_mem.c.


Define Documentation

#define ALLOC_OFFSET   12

Definition at line 39 of file uffs_mem.c.

#define ALLOC_PAGE_BIT_OFFSET   5

Definition at line 30 of file uffs_mem.c.

#define ALLOC_PAGE_MASK   (ALLOC_PAGE_SIZE - 1)

Definition at line 32 of file uffs_mem.c.

#define ALLOC_PAGE_SIZE   (1 << ALLOC_PAGE_BIT_OFFSET)

Definition at line 31 of file uffs_mem.c.

Referenced by uffs_InitHeapMemory().

#define ALLOC_THRESHOLD   (ALLOC_PAGE_SIZE * 1)

Definition at line 33 of file uffs_mem.c.

#define HEAP_MAGIC_SIZE   8

Definition at line 18 of file uffs_mem.c.

#define HEAP_NODE_ALLOCED   0xaa551234

Definition at line 37 of file uffs_mem.c.

Referenced by uffs_InitHeapMemory().

#define HEAP_NODE_FREE   0x123455aa

Definition at line 36 of file uffs_mem.c.

Referenced by uffs_InitHeapMemory().

#define K_HEAP_ALLOCK_BEST_FIT

Definition at line 26 of file uffs_mem.c.

#define PFX   "mem:"

Definition at line 15 of file uffs_mem.c.


Typedef Documentation

typedef struct _HEAPNODE HEAPNODE


Function Documentation

void uffs_InitHeapMemory ( void *  addr,
int  size 
)

Add a new memory region to the free heap.

This function is called during initialization.

Applications typically do not call this function.

Parameters:
addr Start address of the memory region.
size Number of bytes of the memory region.

Definition at line 483 of file uffs_mem.c.

References ALLOC_PAGE_SIZE, HEAP_NODE_ALLOCED, HEAP_NODE_FREE, NULL, uffs_CriticalEnter(), and uffs_CriticalExit().

Referenced by InitFileSystem().

URET uffs_initNativeMemAllocator ( uffs_Device dev  ) 

Definition at line 786 of file uffs_mem.c.

References uffs_memAllocatorSt::calloc, uffs_memAllocatorSt::free, uffs_memAllocatorSt::malloc, uffs_DeviceSt::mem, NULL, uffs_memAllocatorSt::realloc, uffs_memAllocatorSt::tbl, U_FAIL, and U_SUCC.

int uffs_releaseNativeMemAllocator ( uffs_Device dev  ) 

Definition at line 809 of file uffs_mem.c.

References uffs_DeviceSt::mem, and uffs_memAllocatorSt::tbl.


Generated on Sat Mar 17 15:45:45 2007 for uffs-doc by  doxygen 1.5.0