Lephe
18f9a18925
The new allocator uses a segregated best-fit algorithm with exact-size lists for all sizes between 8 bytes (the minimum) and 60 bytes, one list for blocks of size 64-252 and one for larger blocks. Arenas managed by this allocator have built-in statistics that track used and free memory (accounting for block headers), peak memory, and various allocation results. In addition, the allocator has self-checks in the form of integrity verifications, that can be enabled with -DGINT_KMALLOC_DEBUG=1 at configuration time or with the :dev configuration for GiteaPC. This is used by gintctl. The kmalloc interface is extended with a new arena covering all unused memory in user RAM, managed by gint's allocator. It spans about 4 kB on SH3 fx-9860G, 16 kB on SH4 fx-9860G, and 500 kB on fx-CG 50, in addition to the OS heap. This new arena is now the default arena for malloc(), except on SH3 where some heap problems are currently known. |
||
---|---|---|
.. | ||
cpu.h | ||
cpu.s | ||
drivers.h | ||
exch.c | ||
exch.s | ||
hardware.c | ||
inth.S | ||
kernel.c | ||
kernel.h | ||
osmenu.c | ||
start.c | ||
syscalls.S | ||
tlbh.S | ||
vbr.h |