rockbox/firmware
Michael Sevakis eefc7c73e2 Fix some problems with playback crashing
I'm not sure all the situations it affects, to be honest. The fix
aimed to address the strange symptom here:
http://forums.rockbox.org/index.php/topic,50793.0.html

It turns out that ringbuf_add_cross was used when handles were
butted up against one another with the first parameter equal to
the last, which it interprets as being an empty case when it should
be interpreted as full in the context it was used. To fix this,
introduce full/empty variants of ringbuf_add_cross and ringbuf_sub
and use them at the appropriate time.

The other way to address the problem is ensure there's always at
least a space byte between the end of one handle and the start of
another but this make the code a bit trickier to reason about than
using additional function variants.

bufopen() may yield after creating a handle and so do some more
locking so that the buffering thread doesn't mess things up by
moving anything or not seeing the yet-to-be linked-in allocation.

Add alignof() macro to use proper method to get alignment of
struct memory_handle. That should be useful in general anyway.
It's merely defined as __alignof__ but looks nicer.

Change-Id: If21739eaa33a4f6c084a28ee5b3c8fceecfd87ce
2017-04-08 18:32:54 -04:00
..
asm Fix dangerous casts 2017-02-04 17:24:47 +01:00
common Dircache: Improve freed name memory recallocation 2017-03-21 23:11:55 -04:00
decompressor
drivers Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
export Fix some problems with playback crashing 2017-04-08 18:32:54 -04:00
include Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
kernel Fix dangerous casts 2017-02-04 17:24:47 +01:00
libc Improve code for gmtime_r() 2017-02-03 14:40:55 -05:00
target Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
test Limit more variables to file scope 2015-01-11 21:40:51 +01:00
usbstack Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
arabjoin.c
arabjoin.h
ata_idle_notify.c Fix reds. 2014-03-14 23:43:45 +01:00
backlight-sw-fading.c Get rid of stupid _backlight_* function names 2015-01-12 11:09:27 +01:00
backlight.c Selective Backlight/Advanced Softlock - Selective actions based on context 2017-01-17 23:06:17 +01:00
bidi.c bidi.c: Check buffer sizes. 2014-01-09 23:30:32 +01:00
buflib.c buflib: Switch from term "cookie" to "metadata" 2015-01-02 19:26:03 +01:00
COPYING
core_alloc.c Make a few local variables static 2015-01-11 18:02:43 +01:00
debug.c
eeprom_settings.c
enc_base.c
events.c Make thirty functions static to reduce binary size 2015-01-05 18:44:36 +01:00
firmware.make Fix makefile not rebuilding rbversion.h in some cases 2016-09-23 23:03:23 +02:00
font.c fonts: Fix regression(s) caused by c23ce62. 2014-01-26 14:01:48 +01:00
font_cache.c fonts: Do not unload completely on USB. 2014-01-15 23:37:39 +01:00
general.c kernel: Break out kernel primitives into separate files and move to separate dir. 2014-03-03 18:11:57 +01:00
hangul.c
ifp_usb_serial.c Make thirty functions static to reduce binary size 2015-01-05 18:44:36 +01:00
load_code.c Fix various reds. Some includes needed fixup. 2014-03-03 19:10:48 +01:00
logf.c Don't add new message to logf when we dump it to file 2016-04-04 11:07:44 +02:00
lru.c
panic.c AMS: Return ascodec to interrupt-based I2C2 driver 2017-01-25 00:05:13 +01:00
pcm.c Greatly reduce volume-change zipper artifacts with SW volume. 2014-03-08 08:04:41 +01:00
pcm_mixer.c
pcm_sampr.c
pcm_sw_volume.c Greatly reduce volume-change zipper artifacts with SW volume. 2014-03-08 08:04:41 +01:00
powermgmt.c iBasso DX50/DX90: Major code cleanup and reorganization. 2015-02-02 21:57:55 +01:00
profile.c
README
rolo.c Fix AMSv2 variant 1 detection if rockbox loaded from SD card 2016-04-22 20:43:45 +00:00
rom.lds rombox: Do not copy .init section to ram on startup. 2014-01-20 10:42:02 +01:00
screendump.c Fix warnings in firmware/screendump.c 2015-02-24 16:55:26 -05:00
scroll_engine.c scroll_engine: Fix FS#12894: Text scrolling stops working after a few seconds/minutes 2014-01-12 21:29:55 +01:00
sdmmc.c
sound.c
SOURCES ipod6g: rename some target files 2017-03-03 22:50:38 +01:00
storage.c Remove I/O priority. It is harmful when used with the new file code. 2014-08-30 14:01:21 -04:00
system.c AMS: Return ascodec to interrupt-based I2C2 driver 2017-01-25 00:05:13 +01:00
timer.c
tuner.c Improve radio RDS driver and framework 2017-02-11 22:19:32 -05:00
usb.c Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00

See docs/README