The kernel has 7 heaps for general use by itself, device drivers and file system drivers. They have the following object id mnemonics:
vmkshro
Not all heaps are always built. Note in particular:
hdbsym is not present under the RETAIL kernel.
vmkshrw is used for the krhro1m, krhrw1m, vmkshrw and vmkshro heaps under the RETAIL kernel.
vmkrhrw is used for both vmkrhrw and vmkrhro under the RETAIL kernel.
Notice that each of the heaps is either resident or swappable.
Each heap is partitioned into blocks.
Swappable heap blocks have an 8 byte prefix followed by the block data.
Resident heap blocks have two forms:
Regular: for smaller allocation. These have a 4 byte prefix.
Attributed or extended: These use a 4 byte prefix and an 8 byte suffix.