diff options
author | Miika Pekkarinen <miipekk@ihme.org> | 2006-09-16 16:18:11 +0000 |
---|---|---|
committer | Miika Pekkarinen <miipekk@ihme.org> | 2006-09-16 16:18:11 +0000 |
commit | a85044bf9eaa0a7206c1978d3cfd57ab2d7fae2f (patch) | |
tree | a30695ed540bf32365d577f46398f712c7a494c4 /firmware/export/kernel.h | |
parent | baf5494341cdd6cdb9590e21d429920b9bc4a2c6 (diff) | |
download | rockbox-a85044bf9eaa0a7206c1978d3cfd57ab2d7fae2f.tar.gz rockbox-a85044bf9eaa0a7206c1978d3cfd57ab2d7fae2f.zip |
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
Diffstat (limited to 'firmware/export/kernel.h')
-rw-r--r-- | firmware/export/kernel.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/firmware/export/kernel.h b/firmware/export/kernel.h index 26b1cbe2e7..482516b9dc 100644 --- a/firmware/export/kernel.h +++ b/firmware/export/kernel.h | |||
@@ -56,12 +56,14 @@ struct event | |||
56 | struct event_queue | 56 | struct event_queue |
57 | { | 57 | { |
58 | struct event events[QUEUE_LENGTH]; | 58 | struct event events[QUEUE_LENGTH]; |
59 | struct thread_entry *thread; | ||
59 | unsigned int read; | 60 | unsigned int read; |
60 | unsigned int write; | 61 | unsigned int write; |
61 | }; | 62 | }; |
62 | 63 | ||
63 | struct mutex | 64 | struct mutex |
64 | { | 65 | { |
66 | struct thread_entry *thread; | ||
65 | bool locked; | 67 | bool locked; |
66 | }; | 68 | }; |
67 | 69 | ||
@@ -85,7 +87,7 @@ extern void sleep(int ticks); | |||
85 | int tick_add_task(void (*f)(void)); | 87 | int tick_add_task(void (*f)(void)); |
86 | int tick_remove_task(void (*f)(void)); | 88 | int tick_remove_task(void (*f)(void)); |
87 | 89 | ||
88 | extern void queue_init(struct event_queue *q); | 90 | extern void queue_init(struct event_queue *q, bool register_queue); |
89 | extern void queue_delete(struct event_queue *q); | 91 | extern void queue_delete(struct event_queue *q); |
90 | extern void queue_wait(struct event_queue *q, struct event *ev); | 92 | extern void queue_wait(struct event_queue *q, struct event *ev); |
91 | extern void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks); | 93 | extern void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks); |