gint/src
Lephe 18f9a18925
kmalloc: implement a custom segregated list allocator
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.
2021-03-15 15:04:24 +01:00
..
3rdparty kprint: add floating-point formatting based in Grisu2b 59,56 2021-02-02 22:18:15 +01:00
cpg cpg, tmu: add spin waiting and spin delay functions for drivers 2020-10-21 14:49:34 +02:00
dma core: remove some useless hardware info 2020-06-20 19:23:50 +02:00
gray display: add a maximum size parameter to dtext_opt() 2021-02-15 18:37:06 +01:00
intc spu: starter driver, supporting direct CPU access to SPU memory 2020-10-21 18:29:04 +02:00
kernel kmalloc: implement a custom segregated list allocator 2021-03-15 15:04:24 +01:00
keysc getkey: use the new keydev interface 2021-03-05 14:49:24 +01:00
kmalloc kmalloc: implement a custom segregated list allocator 2021-03-15 15:04:24 +01:00
kprint kprint: add floating-point formatting based in Grisu2b 59,56 2021-02-02 22:18:15 +01:00
mmu mmu: add an mmu_uram_size() function detecting static RAM size 2021-02-05 18:20:16 +01:00
r61524 remove the .gint.data section 2020-07-10 16:36:05 +02:00
render display: add a dfont_default() function to get the default font 2021-02-28 22:28:12 +01:00
render-cg display: add a maximum size parameter to dtext_opt() 2021-02-15 18:37:06 +01:00
render-fx display: add a maximum size parameter to dtext_opt() 2021-02-15 18:37:06 +01:00
rtc rtc: add an rtc_ticks() function similar to RTC_GetTicks() 2021-02-02 18:19:08 +01:00
spu spu: more complete initialization 2020-10-24 17:40:05 +02:00
std kmalloc: create the kmalloc interface 2021-03-12 17:24:49 +01:00
t6k11 remove the .gint.data section 2020-07-10 16:36:05 +02:00
tmu cpg, tmu: add spin waiting and spin delay functions for drivers 2020-10-21 14:49:34 +02:00
font5x7.png render: refactor to share functions, and basic text on fxcg50 2019-06-15 01:05:31 -04:00
font8x9.png topti: custom character and word spacing (#13) 2020-10-05 16:14:12 +02:00
fxconv-metadata.txt switch build system to CMake 2021-01-25 15:31:20 +01:00