@Crazed123: This is actually how 'dlmalloc' works, AFAIK.
The reason why I chose to get the attributes (size/free...) out of the user data area is mainly that I wanted to use this mechanism as a virtual page allocator, that can also operate on chunks that are not yet mapped (where you want to map something else into, like a file), thus I couldn't afford to write into this area. Then this was extended with a size-field, and we have a block allocator. (I think it's already a beginning for a slab-allocator)
cheers Joe