summaryrefslogtreecommitdiff
path: root/firmware/export/kernel.h
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2006-09-16 16:18:11 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2006-09-16 16:18:11 +0000
commita85044bf9eaa0a7206c1978d3cfd57ab2d7fae2f (patch)
treea30695ed540bf32365d577f46398f712c7a494c4 /firmware/export/kernel.h
parentbaf5494341cdd6cdb9590e21d429920b9bc4a2c6 (diff)
downloadrockbox-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.h4
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
56struct event_queue 56struct 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
63struct mutex 64struct 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);
85int tick_add_task(void (*f)(void)); 87int tick_add_task(void (*f)(void));
86int tick_remove_task(void (*f)(void)); 88int tick_remove_task(void (*f)(void));
87 89
88extern void queue_init(struct event_queue *q); 90extern void queue_init(struct event_queue *q, bool register_queue);
89extern void queue_delete(struct event_queue *q); 91extern void queue_delete(struct event_queue *q);
90extern void queue_wait(struct event_queue *q, struct event *ev); 92extern void queue_wait(struct event_queue *q, struct event *ev);
91extern void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks); 93extern void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks);