malloc.h

Go to the documentation of this file.
00001 /*
00002  * PSP Software Development Kit - http://www.pspdev.org
00003  * -----------------------------------------------------------------------
00004  * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
00005  *
00006  * malloc.h
00007  *
00008  * Copyright (c) 2002-2004 PS2DEV
00009  * Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org>
00010  * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
00011  * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
00012  *
00013  * $Id: malloc.h 1095 2005-09-27 21:02:16Z jim $
00014  */
00015 
00016 #ifndef _MALLOC_H
00017 #define _MALLOC_H
00018 
00019 #include <pspkernel.h>
00020 #include <stddef.h>
00021 #include <stdarg.h>
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 /* stdlib/malloc */
00028 void *  malloc(size_t size);
00029 void *  realloc(void *ptr, size_t size);
00030 void *  calloc(size_t n, size_t size);
00031 void *  memalign(size_t align, size_t size);
00032 void    free(void * ptr);
00033 
00034 /* Memory walkers. Used for debugging/profiling purposes. */
00035 void * __mem_walk_begin(void);
00036 void __mem_walk_read(void * token, u32 * size, void ** ptr, int * valid);
00037 void * __mem_walk_inc(void * token);
00038 int __mem_walk_end(void * token);
00039 
00040 /* Example of use:
00041 
00042   void * i;
00043   
00044   for (i = __mem_walk_begin(); !__mem_walk_end(i); i = __mem_walk_inc(i)) {
00045       u32 block_size;
00046       void * block_ptr;
00047       int valid;
00048 
00049       __mem_walk_read(i, &block_size, &block_ptr, &valid);
00050       if (!valid) {
00051           fprintf(stderr, "Block at token %p is invalid.\n", i);
00052           break;
00053       }
00054       printf("Block at token %p points at a memory block of %i bytes at %p.\n", i, block_size, block_ptr);
00055   }
00056   
00057   note that 'valid' will be always true if DEBUG_ALLOC was not defined when alloc.c got compiled.
00058 
00059 */
00060 
00061 #ifdef __cplusplus
00062 }
00063 #endif
00064 
00065 #endif  // _MALLOC_H
00066 

Generated on Tue Jul 24 15:21:23 2007 for PSPSDK-Rev2272 by  doxygen 1.5.2