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.0.