diff options
| author | Linus Nielsen Feltzing <linus@haxx.se> | 2006-10-19 11:43:13 +0000 |
|---|---|---|
| committer | Linus Nielsen Feltzing <linus@haxx.se> | 2006-10-19 11:43:13 +0000 |
| commit | 4950b5583718bf4f995a3a0751bd400cfc155dca (patch) | |
| tree | 68e2ebfa93fa4ee8eb7274f44a76326e82c44bb1 /firmware/kernel.c | |
| parent | 74a102dde2d03aaca61f19ccfc688db8b4b87db7 (diff) | |
| download | rockbox-4950b5583718bf4f995a3a0751bd400cfc155dca.zip rockbox-4950b5583718bf4f995a3a0751bd400cfc155dca.tar.gz rockbox-4950b5583718bf4f995a3a0751bd400cfc155dca.tar.bz2 rockbox-4950b5583718bf4f995a3a0751bd400cfc155dca.tar.xz | |
Patch #6052 - More responsive skip on Archos
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11273 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/kernel.c')
| -rw-r--r-- | firmware/kernel.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/firmware/kernel.c b/firmware/kernel.c index 4a6d615..b18b923 100644 --- a/firmware/kernel.c +++ b/firmware/kernel.c @@ -184,6 +184,19 @@ void queue_clear(struct event_queue* q) set_irq_level(oldlevel); } +void queue_remove_from_head(struct event_queue *q, long id) +{ + int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL); + + while (q->read != q->write && + q->events[(q->read) & QUEUE_LENGTH_MASK].id == id) + { + q->read++; + } + + set_irq_level(oldlevel); +} + int queue_broadcast(long id, void *data) { int i; |