00001 // AUTOMATICALLY GENERATED -- DO NOT EDIT! -*- c++ -*- 00002 00003 #ifndef list_alloc_h 00004 #define list_alloc_h 00005 00006 // 00007 // INTERFACE definition follows 00008 // 00009 00010 00011 00012 class List_alloc 00013 { 00014 private: 00015 friend class List_alloc_sanity_guard; 00016 00017 struct Mem_block 00018 { 00019 Mem_block *next; 00020 unsigned long size; 00021 }; 00022 00023 Mem_block *_first; 00024 00025 public: 00026 void dump(); 00027 00028 List_alloc(); // : _first(0) 00029 00030 inline void init(); 00031 00032 void free(void *block, unsigned long size); 00033 00034 void * alloc(unsigned long size, unsigned align); 00035 00036 unsigned long avail(); 00037 00038 private: 00039 inline void check_overlap(void *, unsigned long ); 00040 00041 inline void sanity_check_list(char const *, char const *); 00042 00043 inline void merge(); 00044 }; 00045 00046 // 00047 // IMPLEMENTATION of inline functions (and needed classes) 00048 // 00049 00050 00051 00052 00053 inline void 00054 List_alloc::init() 00055 { _first = 0; } 00056 00057 #endif // list_alloc_h