summaryrefslogtreecommitdiff
path: root/firmware/kernel/include/kernel.h (unfollow)
Commit message (Collapse)Author
2014-08-08Do some kernel cleanupMichael Sevakis
* Seal away private thread and kernel definitions and declarations into the internal headers in order to better hide internal structure. * Add a thread-common.c file that keeps shared functions together. List functions aren't messed with since that's about to be changed to different ones. * It is necessary to modify some ARM/PP stuff since GCC was complaining about constant pool distance and I would rather not force dump it. Just bl the cache calls in the startup and exit code and let it use veneers if it must. * Clean up redundant #includes in relevant areas and reorganize them. * Expunge useless and dangerous stuff like remove_thread(). Change-Id: I6e22932fad61a9fac30fd1363c071074ee7ab382
2014-08-06Add multi-reader, single-writer locks to kernel.Michael Sevakis
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-03-03kernel: Break out kernel primitives into separate files and move to separate ↵Thomas Martitz
dir. No code changed, just shuffling stuff around. This should make it easier to build only select parts kernel and use different implementations. Change-Id: Ie1f00f93008833ce38419d760afd70062c5e22b5
2012-01-04Reorganise USB initialisation to not depend on a specific enumeration ↵Frank Gevaerts
sequence, by Bartosz Fabianowski, with minor tweaks by Michael Sevakis (FS#12497) FreeBSD apparently sends a SET_ADDRESS first, which confused our code. This patch fixes that, and also simplifies the connection handling a bit. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31582 a1c6a512-1295-4272-9138-f99709370657
2011-12-31usb-target.h: removeRafaël Carré
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31498 a1c6a512-1295-4272-9138-f99709370657
2011-12-31usb_init_device(): move prototype to usb.hRafaël Carré
Get rid of some usb-target.h files git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31487 a1c6a512-1295-4272-9138-f99709370657
2011-12-21Add missing includes found using -Wmissing-declarations.Boris Gjenero
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31396 a1c6a512-1295-4272-9138-f99709370657
2011-12-15Simplify and neaten-up usb.c a bit. USB_INSERTED and USB_EXTRACTED are ↵Michael Sevakis
always used as events to indicate cable state. USB_HOSTED is posted to indicated that a host was detected. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31263 a1c6a512-1295-4272-9138-f99709370657
2011-09-14Scrub r30546 bootloader build errors.Michael Sevakis
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30548 a1c6a512-1295-4272-9138-f99709370657
2011-09-14Move AMSv1 (AMSv2 had been done already) to using setup packet request to ↵Michael Sevakis
detect a host. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30547 a1c6a512-1295-4272-9138-f99709370657
2011-01-29Convert AMS target USB detection to event-based (no more polling in a tick). ↵Michael Sevakis
Seems well on my Clip v1 and Fuze v2. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29156 a1c6a512-1295-4272-9138-f99709370657
2010-12-21Make usb_detect() return USB_UNPOWERED instead of USB_EXTRACTED. Without ↵Frank Gevaerts
that, not all needed disconnect handling is done in usb.c git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28874 a1c6a512-1295-4272-9138-f99709370657
2010-12-12Only return USB_POWERED if USB_DETECT_BY_DRV is actually defined, which ↵Frank Gevaerts
might not be the case for e.g. bootloaders (also fix red) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28820 a1c6a512-1295-4272-9138-f99709370657
2010-12-12Move AMSv1 USB to the USB_DETECT_BY_DRV model, so connecting to a dumb ↵Frank Gevaerts
charger works without interrupting playback git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28819 a1c6a512-1295-4272-9138-f99709370657
2010-08-19Sansa AMSv2: don't prevent USB detection to work when rockbox USB stack is usedRafaël Carré
(USB stack is not used by default) This makes debugging the USB driver easier git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27847 a1c6a512-1295-4272-9138-f99709370657
2010-08-17AMSv2: don't reboot on USB plugRafaël Carré
Users will have to reboot to OF manually or to power off, and then plug USB No message is displayed because usb_detect() is run from a tick This lacks documentation but should be OK for Unstable devices, and will hopefully prevent clueless users from opening their devices and breaking them definitely, instead of waiting for the battery to power off. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27837 a1c6a512-1295-4272-9138-f99709370657
2010-05-27as3525: don't export empty usb_init_device(), declare it as empty inlineRafaël Carré
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26326 a1c6a512-1295-4272-9138-f99709370657
2010-05-17as3514/as3543 fixesRafaël Carré
- Enable end of charge monitoring once, it doesn't need to be disabled - Acknowledge the first (wrong) end of charge interrupt on charger enable (this had been broken in r25299) - Centralize reads to ENRD* registers and cache the results when needed - on PP it is not needed because reads are atomic, we only check for end of charge when the charging, and for charger presence when discharging as3525v2 (using as3543) specifics - I got the datasheet today from AMS, thanks to them for being so fast and not require me to sign tons of papers! - USB detection now works on as3525v2 using the as3543. Clip+ won't reboot to OF yet, it needs mkamsboot support first (usbstack disabled) - Charging should work, the CHARGER register is at a different place, it is an extended PMU register -> use ascodec_read/write_charger() to access it - real interrupts are not used yet for ENRD, we get thousands of interrupts per second, apparently only limited by the i2c clock. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26116 a1c6a512-1295-4272-9138-f99709370657
2010-05-16as3525: don't use incomplete USB code when chargingRafaël Carré
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26083 a1c6a512-1295-4272-9138-f99709370657
2010-04-13Fuzev2: USB detection isn't reliable in factRafaël Carré
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25639 a1c6a512-1295-4272-9138-f99709370657
2010-04-03Clipv2: reboot to OF when USB is insertedRafaël Carré
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25447 a1c6a512-1295-4272-9138-f99709370657
2010-04-03as3525v2: acknowledge USB connection/deconnection in SD threadRafaël Carré
Fuzev2: detect USB connection and reboot to OF git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25446 a1c6a512-1295-4272-9138-f99709370657
2010-03-23No intentional warnings.Björn Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25308 a1c6a512-1295-4272-9138-f99709370657
2010-03-23Make this properly dependend on the right defines instead of a blacklist.Tobias Diedrich
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25306 a1c6a512-1295-4272-9138-f99709370657
2010-03-23Limit AUDIO_IRQ handling to AS3525, since it doesn't work on the newer SoC ↵Tobias Diedrich
in SANSA_CLIPPLUS yet. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25305 a1c6a512-1295-4272-9138-f99709370657
2010-03-23Add handler for audio irq.Tobias Diedrich
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25299 a1c6a512-1295-4272-9138-f99709370657
2009-10-15Sansa Fuze & e200v2 : do not enable USBSTACK in the bootloaderRafaël Carré
Don't implement usb_enable() is HAVE_USBSTACK is not defined git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23185 a1c6a512-1295-4272-9138-f99709370657
2009-10-15Sansa AMS USB driver : still not workingRafaël Carré
Implement usb_enable() Reorder/Modify usb_drv_init() to match closer the OF and remove a freeze (USB registers were accessed before the USB module was enabled) Add a panic in USB isr to be sure we notice when it's called Reset GPIOA direction for usb_detect() to notice extraction Add some comments git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23184 a1c6a512-1295-4272-9138-f99709370657
2009-04-12Fix #includes in usb-as3525.cBertrik Sikken
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20698 a1c6a512-1295-4272-9138-f99709370657
2008-12-30Fixed m200v4 red build.Björn Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19616 a1c6a512-1295-4272-9138-f99709370657
2008-12-30Cleaner usb detection.Björn Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19615 a1c6a512-1295-4272-9138-f99709370657
2008-12-29Added usb_detect() for Clip, Fuze, E200v2 and C200v2.Björn Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19614 a1c6a512-1295-4272-9138-f99709370657
2008-11-10Revert r19069 - the m200s can't charge. Also, don't use charger_inserted() ↵Dave Chapman
as a method for detecting USB (this gives a false positive with USB wall chargers), and protect the definition of charger_inserted() with #if CONFIG_CHARGING. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19071 a1c6a512-1295-4272-9138-f99709370657
2008-11-10Fix Clip firmware building by adding missing symbolsRafaël Carré
Implement some of the new functions Use as3514 rtc Add AS3525 case in rolo.c Copy card_get_info_target() from ata-sd-pp.c , and use the correct 32bits words order git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19064 a1c6a512-1295-4272-9138-f99709370657
2008-06-28Updated our source code header to explicitly mention that we are GPL v2 orDaniel Stenberg
later. We still need to hunt down snippets used that are not. 1324 modified files... http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-05-03More static / header file cleanup.Bertrik Sikken
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17341 a1c6a512-1295-4272-9138-f99709370657
2008-04-11D2: Remove USB detection as it's not actually on GPIOC26 (that's a charging ↵Rob Purchase
indicator). Remove those warnings as I'm well aware USB isn't implemented. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17078 a1c6a512-1295-4272-9138-f99709370657
2008-03-22D2: Fix inverted USB detection.Rob Purchase
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16746 a1c6a512-1295-4272-9138-f99709370657
2008-01-14Initial Cowon D2 commit:Rob Purchase
* bootloader test program (basic LCD & button drivers, reads touchscreen) * work-in-progress stubs for main build git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16090 a1c6a512-1295-4272-9138-f99709370657
2007-09-21Merge the Gigabeat S branch back into trunk. Fingers crossed nothing breaks.Will Robertson
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14805 a1c6a512-1295-4272-9138-f99709370657
2007-04-19move the iriver ifp7xx and other pnx0101 related files together in the ↵Marcoen Hirschberg
target tree git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13207 a1c6a512-1295-4272-9138-f99709370657
2006-11-10Forgot to add new files for iFP move to target tree.Tomasz Malesinski
Fixed conifg-ifp7xx.h so that the simulator works. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11494 a1c6a512-1295-4272-9138-f99709370657
2006-09-01Add backlight support for H10Barry Wardell
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10848 a1c6a512-1295-4272-9138-f99709370657
2006-08-03Barry Wardell's initial work for the iriver H10 portDaniel Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10447 a1c6a512-1295-4272-9138-f99709370657
2006-07-26Remote LCD communication driver for X5, very loosely based on patch FS#5634 ↵Linus Nielsen Feltzing
by Rani Hod git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10331 a1c6a512-1295-4272-9138-f99709370657
2006-03-22Backlight for iAudio X5Linus Nielsen Feltzing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9185 a1c6a512-1295-4272-9138-f99709370657
2006-03-22USB mode for iAudio X5Linus Nielsen Feltzing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9179 a1c6a512-1295-4272-9138-f99709370657
2006-03-07iAudio X5 target-specific ATA driver codeLinus Nielsen Feltzing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8947 a1c6a512-1295-4272-9138-f99709370657
2003-01-22Code for alarm mod. Enable with adding -DHAVE_ALARM_MOD in Makefile ↵Uwe Freese
(EXTRA_DEFINES). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3150 a1c6a512-1295-4272-9138-f99709370657
2002-09-24Moved on_screen, f2_screen, f3_screen and handle_usb (renamed usb_screen) to ↵Björn Stenberg
a new file: screens.c. typedef Menu replaced with a bool. All code now calls usb_screen() for usb handling. Nearly all code now deals with USB connect/disconnect properly. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2401 a1c6a512-1295-4272-9138-f99709370657