rockbox/firmware
Michael Sevakis 533d396761 Add multi-reader, single-writer locks to kernel.
Any number of readers may be in the critical section at a time and writers
are mutually exclusive to all other threads. They are a better choice when
data is rarely modified but often read and multiple threads can safely
access it for reading.

Priority inheritance is fully implemented along with other changes to the
kernel to fully support it on multiowner objects.

This also cleans up priority code in the kernel and updates some associated
structures in existing objects to the cleaner form.

Currently doesn't add the mrsw_lock.[ch] files since they're not yet
needed by anything but the supporting improvements are still useful.

This includes a typed bitarray API (bitarray.h) which is pretty basic
for now.

Change-Id: Idbe43dcd9170358e06d48d00f1c69728ff45b0e3
Reviewed-on: http://gerrit.rockbox.org/801
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
2014-08-06 02:47:47 +02:00
..
asm zen/zenxfi: switch lcd driver to 24-bit mode 2014-06-24 18:07:55 +02:00
common crc-mi4: use const lookup table for crc 2014-07-07 12:54:50 +02:00
decompressor Add KEEP() around vectors in linker scripts. 2011-12-18 06:43:08 +00:00
drivers Ak4537: Optimization of the code. 2014-07-26 15:36:12 +00:00
export Samsung YH-820: enable battery monitoring 2014-07-27 12:09:36 +02:00
include Add multi-reader, single-writer locks to kernel. 2014-08-06 02:47:47 +02:00
kernel Add multi-reader, single-writer locks to kernel. 2014-08-06 02:47:47 +02:00
libc Make errno a thread-local variable. 2014-05-09 23:14:58 +02:00
target Add multi-reader, single-writer locks to kernel. 2014-08-06 02:47:47 +02:00
test Make fat test tool build again, and make its sector size configurable. 2014-01-03 23:57:32 +01:00
usbstack Coding style fix for bde5394 2014-02-10 07:46:13 +01:00
arabjoin.c
arabjoin.h
ata_idle_notify.c Fix reds. 2014-03-14 23:43:45 +01:00
backlight-sw-fading.c change order of include headers and at the same time fix warning about 2014-03-27 19:50:47 +00:00
backlight.c All kernel objects in code shared amongs targets (core, plugins, codecs) should be declared SHAREDBSS_ATTR as any core could potentially touch them even though they seem only to involve threads on one core. The exception is target code for particular CPUs where proper allocation is fixed. playlist.c was a little odd too-- use one mutex for the current playlist and a separate one for created playlists (still pondering the necessity of more than one). 2011-02-14 11:27:45 +00:00
bidi.c bidi.c: Check buffer sizes. 2014-01-09 23:30:32 +01:00
buflib.c buflib: Add a define telling the per-alloc overhead. 2014-02-02 19:40:38 +01:00
COPYING
core_alloc.c buflib: Properly support allocations without any name, to avoid wasting space 2014-02-02 19:40:38 +01:00
debug.c Redirect (L)DEBUGFs to adb logcat in DEBUG enabled builds. 2010-09-20 17:38:47 +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 Fix stupid typo in 470989b that triggered panics easily. 2014-03-15 02:23:43 +01:00
firmware.make kernel: Break out kernel primitives into separate files and move to separate dir. 2014-03-03 18:11:57 +01: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 firmware/ : use lcd_putsf() (only in debug code) 2010-08-28 23:12:11 +00:00
load_code.c Fix various reds. Some includes needed fixup. 2014-03-03 19:10:48 +01:00
logf.c events: Rework event subsystem (add_event, send_event) to be more versatile. 2014-03-14 23:36:30 +01:00
lru.c Revert r30818 2011-10-22 08:02:38 +00:00
panic.c Print `last logf lines on panic(). 2014-01-11 11:37:18 +01:00
pcm.c Greatly reduce volume-change zipper artifacts with SW volume. 2014-03-08 08:04:41 +01:00
pcm_mixer.c Enable setting of global output samplerate on certain targets. 2013-07-06 04:22:04 +02:00
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 Add set_sleeptimer_duration function in minutes 2012-10-06 11:59:13 +02:00
profile.c Remove last traces of sprintf.h 2010-05-07 02:13:47 +00:00
README
rolo.c Fix reds. Also apply the new scrolling to lcd charcell (this even uncovered an 2013-12-15 00:38:48 +01:00
rom.lds rombox: Do not copy .init section to ram on startup. 2014-01-20 10:42:02 +01:00
screendump.c lcd-24bit: Introduce a 24-bit mid-level LCD driver 2014-06-21 00:15:53 +02: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 Various minor cleanups 2010-08-01 10:07:05 +00:00
sound.c Add DAC's oversampling filter roll-off selection to sound settings. 2013-05-24 11:18:16 +04:00
SOURCES Add multi-reader, single-writer locks to kernel. 2014-08-06 02:47:47 +02:00
storage.c Cleanup MV/MD macros a little. 2013-08-17 12:18:22 -04:00
system.c Fix reds. 2011-12-24 12:21:16 +00:00
timer.c
tuner.c Add stub STFM1000 tuner driver 2012-05-19 16:10:52 +02:00
usb.c USB: Detect charging-only mode upon cable insert, not host detect. 2013-05-22 02:28:31 -04:00

See docs/README