summaryrefslogtreecommitdiff
path: root/firmware/export/kernel.h
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2007-03-26 16:55:17 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2007-03-26 16:55:17 +0000
commit66258a30a407e7ea4600fc2242438ecbd084d5ea (patch)
treeb5fc767011c814a0fde9811731096f11b9f8c9b9 /firmware/export/kernel.h
parent6c487eb5d115e77ae31b22f24b692bb2df3b90b6 (diff)
downloadrockbox-66258a30a407e7ea4600fc2242438ecbd084d5ea.zip
rockbox-66258a30a407e7ea4600fc2242438ecbd084d5ea.tar.gz
rockbox-66258a30a407e7ea4600fc2242438ecbd084d5ea.tar.bz2
rockbox-66258a30a407e7ea4600fc2242438ecbd084d5ea.tar.xz
Make scheduler functions thread safe core wise. A big step towards playback running on COP (not yet possible because more protection on file system level is necessary).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12926 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export/kernel.h')
-rw-r--r--firmware/export/kernel.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/firmware/export/kernel.h b/firmware/export/kernel.h
index 1d27fed..a77ca31 100644
--- a/firmware/export/kernel.h
+++ b/firmware/export/kernel.h
@@ -73,6 +73,9 @@ struct event_queue
struct thread_entry *thread;
unsigned int read;
unsigned int write;
+#if NUM_CORES > 1
+ bool irq_safe;
+#endif
#ifdef HAVE_EXTENDED_MESSAGING_AND_NAME
struct queue_sender_list *send;
#endif
@@ -105,6 +108,11 @@ int tick_add_task(void (*f)(void));
int tick_remove_task(void (*f)(void));
extern void queue_init(struct event_queue *q, bool register_queue);
+#if NUM_CORES > 1
+extern void queue_set_irq_safe(struct event_queue *q, bool state);
+#else
+#define queue_set_irq_safe(q,state)
+#endif
extern void queue_delete(struct event_queue *q);
extern void queue_wait(struct event_queue *q, struct event *ev);
extern void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks);