gint/include/gint
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
..
defs keydev: add a keyboard device layer to abstract away globals 2021-03-05 09:31:34 +01:00
drivers keydev: add a keyboard device layer to abstract away globals 2021-03-05 09:31:34 +01:00
mpu spu: starter driver, supporting direct CPU access to SPU memory 2020-10-21 18:29:04 +02:00
std std/string: add strchr(), strrchr(), and strchrnul() 2021-02-15 17:28:11 +01:00
bfile.h bfile: add BFile syscalls on fx-CG 50 (still unstable) 2020-05-16 17:11:55 +02:00
clock.h cpg, tmu: add spin waiting and spin delay functions for drivers 2020-10-21 14:49:34 +02:00
config.h.in kmalloc: implement a custom segregated list allocator 2021-03-15 15:04:24 +01:00
display-cg.h bopti: deprecate image_t, renamed to bopti_image_t 2020-06-01 12:11:59 +02:00
display-fx.h remove features that are deprecated as of v2.1 2020-07-26 11:47:23 +02:00
display.h display: add a dfont_default() function to get the default font 2021-02-28 22:28:12 +01:00
dma.h code review and display driver changes 2020-02-23 16:05:25 +01:00
drivers.h some cleanup in src/core and in the repository 2020-06-20 11:41:13 +02:00
exc.h kernel: dynamic loading of GMAPPED functions to user RAM 2020-09-17 14:48:54 +02:00
gint.h show version in header for static version resolution 2020-12-30 18:35:06 +01:00
gray.h remove features that are deprecated as of v2.1 2020-07-26 11:47:23 +02:00
hardware.h add a dynamic setting for keyboard scan frequency 2021-02-02 18:19:10 +01:00
intc.h spu: starter driver, supporting direct CPU access to SPU memory 2020-10-21 18:29:04 +02:00
keyboard.h getkey: use the new keydev interface 2021-03-05 14:49:24 +01:00
keycodes.h way too much, including bopti/topti, timers, and more. 2019-02-21 21:00:26 +01:00
kmalloc.h kmalloc: implement a custom segregated list allocator 2021-03-15 15:04:24 +01:00
kprint.h kprint: add floating-point formatting based in Grisu2b 59,56 2021-02-02 22:18:15 +01:00
mmu.h mmu: add an mmu_uram_size() function detecting static RAM size 2021-02-05 18:20:16 +01:00
rtc.h rtc: add an rtc_ticks() function similar to RTC_GetTicks() 2021-02-02 18:19:08 +01:00
timer.h cpg, tmu: add spin waiting and spin delay functions for drivers 2020-10-21 14:49:34 +02:00