00001 /* 00002 * mlogsup.h 00003 * 00004 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE COMMON PUBLIC LICENSE 00005 * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE 00006 * CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. 00007 * 00008 * You can obtain a current copy of the Common Public License from 00009 * http://oss.software.ibm.com/developerworks/opensource/license-cpl.html 00010 * 00011 * Author: Adrian Schuur <schuur@de.ibm.com> 00012 * Contributors: 00013 * 00014 * Description: Functions to log and free malloc'ed areas. 00015 */ 00016 00017 00018 #ifdef __cplusplus 00019 extern "C" { 00020 #endif 00021 00022 typedef struct mLogHeader { 00023 int max,cur; 00024 void* area[1]; 00025 } MLogHeader; 00026 00027 00028 typedef struct mLogIndex { 00029 int max,free; 00030 union { 00031 MLogHeader* hdr[1]; 00032 unsigned int nextFree[1]; 00033 } entry; 00034 } MLogIndex; 00035 00036 00037 extern int makeMLog(); 00038 extern void* addToMLog(int idx,void* area); 00039 extern void freeMLog(int idx); 00040 extern void freeMLogAll(); 00041 00042 #ifdef __cplusplus 00043 } 00044 #endif 00045 00046 00047