1
0
Fork 0
forked from len0rd/rockbox
Commit graph

28 commits

Author SHA1 Message Date
Michael Sevakis
32a531b09b Do some simplification in switch_thread regarding interrupt enabling which simplifies kernel objects as well. Simply doing unconditional disable/enable should be fine in the firmware. Not sure about the case in the bootloader for all targets and so will evaluate but that should be fine too if everything is masked.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16107 a1c6a512-1295-4272-9138-f99709370657
2008-01-19 13:27:47 +00:00
Michael Sevakis
6a8379674c Finally, out goes struct spinlock for anything but mutiprocessor targets where it becomes a reenterable corelock.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16105 a1c6a512-1295-4272-9138-f99709370657
2008-01-18 13:12:33 +00:00
Michael Sevakis
a8eeff0fee Improve the fake interrupt stuff on the sim a bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15349 a1c6a512-1295-4272-9138-f99709370657
2007-10-28 16:49:02 +00:00
Nicolas Pennequin
1839edf64a Add queue_peek to the kernel (written by Mike Sevakis), and use it to improve upon my previous commit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15336 a1c6a512-1295-4272-9138-f99709370657
2007-10-27 18:08:18 +00:00
Michael Sevakis
4a5894db1a Correct some commenting left from an earlier set_irq_level version.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15323 a1c6a512-1295-4272-9138-f99709370657
2007-10-26 23:27:04 +00:00
Michael Sevakis
d6af287397 Implement as genuine a set_irq_level function for the sim as possible. The yield added earlier is still nescessary since other threads won't run anyway while viewing the database screen on either sim or target.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15321 a1c6a512-1295-4272-9138-f99709370657
2007-10-26 23:11:18 +00:00
Michael Sevakis
9b1f1dd0b4 Fix a warning (no newline at end of file).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15136 a1c6a512-1295-4272-9138-f99709370657
2007-10-16 01:52:18 +00:00
Michael Sevakis
6f513992b9 Fix the red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15135 a1c6a512-1295-4272-9138-f99709370657
2007-10-16 01:41:16 +00:00
Michael Sevakis
a9b2fb5ee3 Finally full multicore support for PortalPlayer 502x targets with an eye towards the possibility of other types. All SVN targets the low-lag code to speed up blocking operations. Most files are modified here simple due to a name change to actually support a real event object and a param change to create_thread. Add some use of new features but just sit on things for a bit and leave full integration for later. Work will continue on to address size on sensitive targets and simplify things if possible. Any PP target having problems with SWP can easily be changed to sw corelocks with one #define change in config.h though only PP5020 has shown an issue and seems to work without any difficulties.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15134 a1c6a512-1295-4272-9138-f99709370657
2007-10-16 01:25:17 +00:00
Michael Sevakis
035529c487 Enable auto reply for queue messages sent with queue_send. It's only nescessary to use queue_reply to return a value other than zero or to return a result before waiting on the queue again.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14923 a1c6a512-1295-4272-9138-f99709370657
2007-09-30 17:23:13 +00:00
Michael Sevakis
0107dfc827 UISIMULATOR: Give the host OS some needed context switching hints (which _is_ supposed to work on Linux - but I can't tell on VMWare - and does on Windows). I guess I'll know for sure soon. Give sleep() even more genuine behavior. Add some button driver sync with the rockbox threads that should have been there for some time - this is basically interrupt-like processing as any thread not in the kernel pool should be considered. Make the screendump work again by posting the request. Perhaps help out shutting down for some users but not in the way I'd prefer - to think about.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14646 a1c6a512-1295-4272-9138-f99709370657
2007-09-09 01:59:07 +00:00
Michael Sevakis
174ce90371 Fix some warnings in sim kernel.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14640 a1c6a512-1295-4272-9138-f99709370657
2007-09-08 12:32:41 +00:00
Michael Sevakis
f64ebb1c1f Sim I/O and threading that runs more like on target. Tweakable if any genuine slowness imitation is required for any one of them. One point of concern is the sim shutdown on an OS other than Linux just because terminating threads in a manner other than having the do it themselves is kind of dirty IMHO.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14639 a1c6a512-1295-4272-9138-f99709370657
2007-09-08 12:20:53 +00:00
Jens Arnold
ea88571493 Fix red simulator builds. queue_broadcast() was missing...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14293 a1c6a512-1295-4272-9138-f99709370657
2007-08-12 11:59:06 +00:00
Steve Bavin
abf3435ca7 Slightly less hacky sim queue_send(), fixes simulator crashes FS#7051 and FS#7245.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14113 a1c6a512-1295-4272-9138-f99709370657
2007-08-01 09:07:09 +00:00
Jens Arnold
0b7bb31453 Simplification, queue pointers don't wrap (except at INT_MAX, but the calculation is still correct in this case). Implemented queue_count() for the simulator.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13154 a1c6a512-1295-4272-9138-f99709370657
2007-04-14 09:47:47 +00:00
Michael Sevakis
55392f7d3c Perform the obligatory fix-the-sims dance.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12882 a1c6a512-1295-4272-9138-f99709370657
2007-03-21 23:33:49 +00:00
Michael Sevakis
dee43ece20 Put an end to priority inversion in the ata driver. Gave up trying to have fully atomic dual use mutexes so just replaced the ata driver locking with spins. Maybe I'll have better luck later. Things should run smoothly with database updates and such happening in the background.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12688 a1c6a512-1295-4272-9138-f99709370657
2007-03-09 08:03:18 +00:00
Michael Sevakis
4b902679cc Convert queues to use intptr_t for event data and return values as most of the time pointer are not passed and it should make some things a bit cleaner.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11818 a1c6a512-1295-4272-9138-f99709370657
2006-12-19 16:50:07 +00:00
Michael Sevakis
43c15921e4 Add queue_send synchronous message sending. Right now only for SWCODEC. Actual usage to be added to playback and recording shortly in upcoming commits.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11776 a1c6a512-1295-4272-9138-f99709370657
2006-12-16 18:35:12 +00:00
Steve Bavin
46925b32a7 Oops, sim was missing a queue function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11421 a1c6a512-1295-4272-9138-f99709370657
2006-11-03 10:12:15 +00:00
Miika Pekkarinen
a85044bf9e New scheduler, with priorities for swcodec platforms. Frequent task
switching should be more efficient and tasks are stored in linked
lists to eliminate unnecessary task switching to improve performance.
Audio should no longer skip on swcodec targets caused by too CPU
hungry UI thread or background threads.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10958 a1c6a512-1295-4272-9138-f99709370657
2006-09-16 16:18:11 +00:00
Brandon Low
9cde77060a Patch 5107 from Steve Bavin, enable locking on sdl sim, now mutexes actually MUT EX on the SDL sim
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9638 a1c6a512-1295-4272-9138-f99709370657
2006-04-12 15:38:56 +00:00
Dan Everton
d0c65f76b2 Use correct sleep function in simulator queue wait.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9343 a1c6a512-1295-4272-9138-f99709370657
2006-03-29 12:11:28 +00:00
Jens Arnold
b4ada860b3 Allow building simulators on systems where errno is thread-local by using the system's implementation of errno.h for simulator builds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8871 a1c6a512-1295-4272-9138-f99709370657
2006-02-28 23:56:44 +00:00
Linus Nielsen Feltzing
fc72c53758 Patch #1417462 by Dan Everton - Improved SDL simulator
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8546 a1c6a512-1295-4272-9138-f99709370657
2006-02-03 15:19:58 +00:00
Linus Nielsen Feltzing
765e0f89d8 New kernel function, queue_delete(struct event_queue *q)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8424 a1c6a512-1295-4272-9138-f99709370657
2006-01-23 10:53:47 +00:00
Daniel Stenberg
0e419987e4 SDL simulator brought by Nathan Hand and Nick Lanham. This is added as a third
simulator with the hope that once it works fine, we can remove the other two
and only have one unified simulator.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8312 a1c6a512-1295-4272-9138-f99709370657
2006-01-09 11:22:36 +00:00