rockbox/firmware
Aidan MacDonald b12427741a buflib: clean up and refactor to improve maintainability
Buflib is written with a lot of hardcoded offsets to header fields,
arbitrary pointer arithmetic, and similar but not quite duplicated
code, making maintenance a nightmare.

Most of the pointer arithmetic involving header fields is replaced
by indexing from two well-defined pointers, the block start and end
pointers. The start pointer points to the first header field, and
he end pointer is one past the end of the header.

Hardcoded field indices are replaced by two enums. Forward indices
(fidx_XXX) are used to access fields from a block start pointer and
negated backward indices (-bidx_XXX) are used to index from a block
end pointer. There is no overlap between the indices because of the
variable length name field in the middle of the header. The length
of the fixed fields in the block header is now a #define'd constant
rather than being open coded.

There is now a function to acquire the block end pointer from the
user data pointer (ie. the pointer stored in the handle table). The
old code was not consistent in this; some functions would handle a
non-aligned user pointer, which may occur as a result of shrinking,
while other uses just assumed the user pointer was aligned.

Block CRC calculations have also been factored out to a function
that accepts block start and end pointers.

Change-Id: I6a7e8a8c58aec6c6eaf0e5021400032d8e5f841e
2022-09-19 15:09:51 -04:00
..
asm Fix sim build for glibc >=2.34 2022-04-18 09:54:07 -04:00
common Add path_strip_last_volume 2022-04-01 11:40:02 -04:00
drivers viewports, set flags to VP_DEFAULT_FLAGS 2022-04-17 10:59:56 -04:00
export ipod6g: increase plugin buffer size from 512 KiB to 2 MiB 2022-07-12 01:01:47 -04:00
include firmware: Add load/store with endianness functions 2022-06-26 17:19:40 +01:00
kernel kernel: remove unused function mutex_test() 2022-05-14 11:29:55 -04:00
libc libc: atoi() is supposed to return 0 if handed a NULL pointer 2021-07-30 01:41:13 +00:00
target x1000: add support for GD5F1GQ4xExx NAND flash 2022-09-17 10:14:26 -04:00
usbstack buflib: add a common dummy callbacks struct & use it 2022-02-12 10:24:32 -05: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 apps: Add ability to do a clean reboot 2022-04-16 14:36:39 +01:00
bidi.c bidi.c: Check buffer sizes. 2014-01-09 23:30:32 +01:00
buflib.c buflib: clean up and refactor to improve maintainability 2022-09-19 15:09:51 -04:00
COPYING
core_alloc.c Sansa E200v1 Bootloader attempt at enabling USB in boot loader 2021-10-04 10:56:33 -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 FS#12378 : Remove various unused code, and comment out some unused code and data for reference or future use. 2011-12-14 21:45:25 +00:00
events.c Make thirty functions static to reduce binary size 2015-01-05 18:44:36 +01: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 misc: Only include rbpaths.h and string-extra.h in places that need it 2021-04-10 12:08:12 -04:00
font_cache.c fonts: Do not unload completely on USB. 2014-01-15 23:37:39 +01:00
general.c [3/4] Completely remove HWCODEC support 2020-07-24 21:20:13 +00:00
hangul.c
linuxboot.c linuxboot: add meaningful error codes 2022-03-24 23:40:07 +00: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: add native backtrace implementation 2022-05-22 07:16:11 -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 ClipPlus BOOTLOADER DONT FIT! 2020-10-23 20:38:59 -04: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 x1000: spl: remove selectable boot option support 2022-03-25 21:36:51 +00: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: remove "Ask" USB Mode (FS#13317) 2022-06-21 18:11:53 -04:00

See docs/README