|
| | | | M E M _ C L R _ H E A D
| | | | | SOURCE: qdev_structures.txt 1.10 (15/08/2014) English struct mem_clr_head
{
struct mem_clr_head *ch_next;
struct SignalSemaphore ch_sem;
ULONG ch_size;
ULONG ch_chunks;
ULONG ch_flags;
ULONG ch_total;
ULONG ch_list;
UBYTE ch_space[QDEV_MEM_PRV_MINSPCLEN];
};
ch_next - This will point at another cluster that had to be linked in due
to exhaustion of the current one. Merging is trasparent.
ch_sem - Semaphore that is used to arbitrate parallel memory requests.
ch_size - Size of one chunk of memory that is to be requested.
ch_chunks
- Number of memory chunks this cluster consists of initially.
ch_flags - Standard memory allocation flags. Please note that MEMF_LARGEST
flag is all valid and enables cluster merging!
ch_list - Singly linked list of free chunks. Each chunk node is first 4
bytes. When chunk is not allocated it points at another chunk,
but when it is allocated structure pointer is stuffed in.
ch_space - Raw cluster area. No new members allowed beyond this point for
obvious reason.
| |
| | | | |
|