summaryrefslogtreecommitdiff
path: root/firmware/kernel/include/semaphore.h (unfollow)
Commit message (Collapse)Author
2014-08-16Base scheduler queues off linked lists and do cleanup/consolidationMichael Sevakis
Abstracts threading from itself a bit, changes the way its queues are handled and does type hiding for that as well. Do alot here due to already required major brain surgery. Threads may now be on a run queue and a wait queue simultaneously so that the expired timer only has to wake the thread but not remove it from the wait queue which simplifies the implicit wake handling. List formats change for wait queues-- doubly-linked, not circular. Timeout queue is now singly-linked. The run queue is still circular as before. Adds a better thread slot allocator that may keep the slot marked as used regardless of the thread state. Assists in dumping special tasks that switch_thread was tasked to perform (blocking tasks). Deletes alot of code yet surprisingly, gets larger than expected. Well, I'm not not minding that for the time being-- omlettes and break a few eggs and all that. Change-Id: I0834d7bb16b2aecb2f63b58886eeda6ae4f29d59
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-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
2010-08-27Use system headers a bit more: use host's fcntl.h for O_RDONLY etc.Thomas Martitz
Removes the need to fix up those in the simulator. Also work around some posix-mingw incompatibilities (e.g. getcwd()). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27904 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-05Convert the whole codebase to UTF-8, except docs/COMMITTERS and ↵Nicolas Pennequin
tools/creative.c, which need checking. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17369 a1c6a512-1295-4272-9138-f99709370657
2006-03-29Add support for loadable vkeyboard layoutsFrank Dischner
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9347 a1c6a512-1295-4272-9138-f99709370657
2002-12-04Added virtual keyboard for text input, loosely based on John Wood's codeBjörn Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2928 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
2002-09-06Renamed menu item 'Screensavers' to more descriptive 'Demos'. Added snow, ↵Björn Stenberg
removed blank and boxes. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2215 a1c6a512-1295-4272-9138-f99709370657
2002-08-23Remade the menu system slightly. All functions invoked from menus now useDaniel Stenberg
the Menu typedef as return type, and *ALL* menus that intercept USB connect can then return MENU_REFRESH_DIR so that the parent (any parent really) that do file or dir-accesses knows that and can do the refresh. If no refresh is needed by the parent, MENU_OK is returned. Somewhat biggish commit this close to 1.3, but we need to sort out this refresh-after-usb-connected business. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1948 a1c6a512-1295-4272-9138-f99709370657
2002-06-24games and screensavers are now in submenusRobert Hak
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1142 a1c6a512-1295-4272-9138-f99709370657
2002-05-13Changing to C99 'bool' typeBjörn Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@561 a1c6a512-1295-4272-9138-f99709370657
2002-04-26Simpler API and remove interrupt codeBjörn Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@250 a1c6a512-1295-4272-9138-f99709370657
2002-04-23Moved driver to 'drivers' subdirBjörn Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@189 a1c6a512-1295-4272-9138-f99709370657
2002-04-20Fixed REG and REG_ADDR style macrosBjörn Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@150 a1c6a512-1295-4272-9138-f99709370657
2002-03-28First versionBjörn Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@60 a1c6a512-1295-4272-9138-f99709370657
2002-03-26updatesDaniel Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26 a1c6a512-1295-4272-9138-f99709370657
2002-03-26lcd_update() works for X11 now...Daniel Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15 a1c6a512-1295-4272-9138-f99709370657
2002-03-26generic and specific LCD functionsDaniel Stenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14 a1c6a512-1295-4272-9138-f99709370657