ultimatepp/uppdev/Malloc7/Malloc4.h
cxl 4a1c627474 Adding uppdev....
git-svn-id: svn://ultimatepp.org/upp/trunk@328 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2008-08-15 08:36:24 +00:00

41 lines
901 B
C

#define V4
struct MSmall {
struct FreeLink {
FreeLink *next;
};
enum { HEADERSZ = 48 };
struct Page {
MSmall *heap;
byte klass;
// byte freecount;
byte active;
byte count;
word sz;
FreeLink *freelist;
Page *next;
Page *prev;
void LinkSelf() { prev = next = this; }
void Unlink() { prev->next = next; next->prev = prev; }
void Link(Page *lnk) { prev = lnk; next = lnk->next; next->prev = this; lnk->next = this; }
void Format(int k);
byte *Begin() { return (byte *)this + HEADERSZ; }
};
Page full[16][1];
Page work[16][1];
Page *empty[16];
int emptypages;
void Init();
void *AllocK(int k);
void FreeK(void *ptr, Page *page, int k);
void *Alloc(size_t sz);
void Free(void *ptr);
};