Changed keys from raw int to templated class
MemoryPoolKey<Type> template has indirection operator
to enable simpler code at the point of use.
Updated FixedSizeMemoryPool to deduce mask and bitshift
values from max block count. Enabled for MemoryPool, so
that 32 bit keys can be used.
Added handling to switch key semantics between limited /
unlimited blocks. In the normal case, the block count is
limited, and the maximum block size is 1M entries, so
a block id range of 0-31 is sufficient. In the other case,
the block count is unlimited, so the key is the Nth item
in the memory pool across all blocks. Whilst this may be slower
to dereference, in practice, this mode isn't used.
Change-Id: Id7827d1beded831307b12ce8a3ef46e32366f82b
22 files changed: