rockbox/firmware
William Wilgus 7faf6be35f chunk_alloc
chunk_alloc allows arrays (or any data) to be allocated in smaller chunks

you have to save the indices..
 variable data will have variable indices you need to
 store these as [chunk_alloc] doesn't keep track
 if you have a fixed size for each
 alloc you can do indice / sizeof(data)
 or index * sizeof(data) to convert

Lots of debug stuff still in and it needs optimization

User provides chunk_size and max_chunks
max_chunks * struct chunk will be allocated at start
with (1) chunk_size allocation initially

alloc_chunk() with size = 0 shrinks the last allocation to the size of the data used

add OOM checks on buflib_alloc -- oops

move bytes available to the header -- less memory per chunk & better alignment
keep track of the current in use chunk index -- should speed things up a bit

Now allows:
realloc chunk header
larger allocations than chunk size

reallocs smaller than existing will shrink the current array
rather than alloc a new and copy data

Comments welcome :)

Change-Id: I8ed170eef73da95da19430a80b32e5debf0c8276
2023-01-10 23:59:19 -05:00
..
asm Revert "Remove YUV blitting functions and LCD modes" 2022-10-13 11:08:06 -04:00
common Add rectangle utility functions 2022-12-01 12:36:28 -05:00
drivers lcd: Fix 4bpp optimized 16-bit alpha blit 2023-01-08 10:50:39 +00:00
export [BugFix] Fix some Shif related UB -- ASAN 2023-01-04 22:00:25 -05:00
include chunk_alloc 2023-01-10 23:59:19 -05:00
kernel kernel: Fix unsafe cross-section reference in init_tick() 2022-12-18 22:23:52 +00:00
libc Remove strtok_r.c 2022-11-20 23:37:20 -05:00
target x1000: Add INIT_ATTR to various target specific functions 2022-12-31 08:10:41 -05:00
usbstack move buflib_free invalid handle check to the function 2022-10-15 09:26:58 -04:00
arabjoin.c
arabjoin.h
ata_idle_notify.c Fix reds. 2014-03-14 23:43:45 +01:00
backlight-sw-fading.c For backlights that have a wide control, support skipping steps. 2020-10-02 02:45:43 +00:00
backlight.c clean up button.c optimize !filter_first_keypress 2023-01-02 11:04:47 -05:00
bidi.c
buflib.c Revert "buflib.c strip path from alloc name" 2022-12-23 19:59:06 +00:00
chunk_alloc.c chunk_alloc 2023-01-10 23:59:19 -05:00
COPYING
core_alloc.c buflib: add pin/unpin operation 2022-09-19 15:09:51 -04:00
debug.c [1/4] Remove SH support and all archos targets 2020-07-24 21:20:13 +00:00
eeprom_settings.c
enc_base.c
events.c events.c clean-up 2022-12-30 07:23:29 -05:00
firmware.make fonts: Use '08-Rockfont' as FONT_SYSFIXED on targets with 128x64 screens 2020-08-31 13:32:24 -04:00
font.c replace strlcpy with strmemccpy 2022-11-14 23:56:16 -05:00
font_cache.c
general.c replace strlcpy with strmemccpy 2022-11-14 23:56:16 -05:00
hangul.c
linuxboot.c move buflib_free invalid handle check to the function 2022-10-15 09:26:58 -04:00
load_code.c Fix various reds. Some includes needed fixup. 2014-03-03 19:10:48 +01:00
logf.c logf: Fix an incorrect fix in 835d0c737a 2021-08-15 09:03:16 -04:00
lru.c
panic.c mips: consolidate exception handling, add exception backtraces 2022-10-17 09:04:18 -04:00
pcm.c pcm: Further cleanup of unused bits of the PCM ACPI: 2020-11-12 15:59:09 +00:00
pcm_mixer.c pcm_mixer: Fix an idle frame calculation bug introduced in 2e708c48c5 2020-10-24 02:00:50 +00:00
pcm_sampr.c pcm: Missed a file for the 192/176K playback. 2020-09-30 22:03:34 -04:00
pcm_sw_volume.c move PCM_NATIVE_BITDEPTH definiton into global config code 2021-08-07 11:18:19 -04:00
powermgmt.c apps: Add ability to do a clean reboot 2022-04-16 14:36:39 +01:00
profile.c
README
rolo.c x1000: support new binary header in rolo 2022-03-11 11:15:56 -05:00
rom.lds h300: add support for ROM image generation 2020-10-26 01:37:42 +00:00
screendump.c Fix path buffer overflow in screendump 2021-08-06 15:46:53 +00:00
scroll_engine.c lcd: Remove internal function get_viewport() 2022-10-09 22:07:48 +01:00
sdmmc.c
sound.c Revert "sound: add sound_numdecimals() to round out the sound setting query API" 2021-04-09 10:52:02 +00:00
SOURCES chunk_alloc 2023-01-10 23:59:19 -05:00
storage.c FS#13154: Don't discard return code in storage_init() 2020-08-24 14:37:23 -04:00
system.c Add ability to dump cpu boost log to disk, include thread names 2021-09-30 21:13:22 -04:00
timer.c Fix timer Agptek Rocker (other hosted players) 2019-10-17 21:19:00 +02:00
tuner.c [1/4] Remove SH support and all archos targets 2020-07-24 21:20:13 +00:00
usb.c usb: add debounce interval for USB status by event 2022-09-25 06:49:11 -04:00

See docs/README