kallocator.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef KALLOCATOR_H
00027 #define KALLOCATOR_H
00028
00029 #include <qvaluelist.h>
00030 #include "kdelibs_export.h"
00031
00032 class KZoneAllocatorPrivate;
00033
00034
00046 class KDECORE_EXPORT KZoneAllocator
00047 {
00048 public:
00053 KZoneAllocator(unsigned long _blockSize = 8*1024);
00054
00058 ~KZoneAllocator();
00059
00065 void* allocate(size_t _size);
00066
00087 void deallocate(void *ptr);
00088
00109 void free_since(void *ptr);
00110
00111 protected:
00112 class MemBlock;
00113 typedef QValueList<MemBlock *> MemList;
00114 void addBlock(MemBlock *b);
00115 void delBlock(MemBlock *b);
00116 void insertHash(MemBlock *b);
00117 void initHash();
00118 MemBlock *currentBlock;
00119 unsigned long blockSize;
00120 unsigned long blockOffset;
00121 unsigned int log2;
00122 unsigned int num_blocks;
00123 MemList **hashList;
00124 unsigned int hashSize;
00125 bool hashDirty;
00126 private:
00127 KZoneAllocatorPrivate *d;
00128 };
00129
00130 #endif
This file is part of the documentation for kdecore Library Version 3.4.3.