diff options
| author | Michael Sevakis <jethead71@rockbox.org> | 2006-12-19 16:50:07 +0000 |
|---|---|---|
| committer | Michael Sevakis <jethead71@rockbox.org> | 2006-12-19 16:50:07 +0000 |
| commit | 4b902679cc5fcca7f4e8d83b25112754f7903736 (patch) | |
| tree | 7853f7d80a4254f521107c2c6e7191d3a1e1974e /firmware/kernel.c | |
| parent | d152b6492a2371c261c195494864c3744609cf3c (diff) | |
| download | rockbox-4b902679cc5fcca7f4e8d83b25112754f7903736.zip rockbox-4b902679cc5fcca7f4e8d83b25112754f7903736.tar.gz rockbox-4b902679cc5fcca7f4e8d83b25112754f7903736.tar.bz2 rockbox-4b902679cc5fcca7f4e8d83b25112754f7903736.tar.xz | |
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
Diffstat (limited to 'firmware/kernel.c')
| -rw-r--r-- | firmware/kernel.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/firmware/kernel.c b/firmware/kernel.c index 55d78e0..01adfcc 100644 --- a/firmware/kernel.c +++ b/firmware/kernel.c @@ -107,7 +107,8 @@ static void queue_fetch_sender(struct queue_sender_list *send, /* Puts the specified return value in the waiting thread's return value and wakes the thread - a sender should be confirmed to exist first */ -static void queue_release_sender(struct queue_sender **sender, void *retval) +static void queue_release_sender(struct queue_sender **sender, + intptr_t retval) { (*sender)->retval = retval; wakeup_thread(&(*sender)->thread); @@ -127,7 +128,7 @@ static void queue_release_all_senders(struct event_queue *q) &q->send->senders[i & QUEUE_LENGTH_MASK]; if(*spp) { - queue_release_sender(spp, NULL); + queue_release_sender(spp, 0); } } } @@ -242,7 +243,7 @@ void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks) } } -void queue_post(struct event_queue *q, long id, void *data) +void queue_post(struct event_queue *q, long id, intptr_t data) { int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL); unsigned int wr = q->write++ & QUEUE_LENGTH_MASK; @@ -258,7 +259,7 @@ void queue_post(struct event_queue *q, long id, void *data) if(*spp) { /* overflow protect - unblock any thread waiting at this index */ - queue_release_sender(spp, NULL); + queue_release_sender(spp, 0); } } #endif @@ -268,7 +269,7 @@ void queue_post(struct event_queue *q, long id, void *data) } #ifdef HAVE_EXTENDED_MESSAGING_AND_NAME -void * queue_send(struct event_queue *q, long id, void *data) +intptr_t queue_send(struct event_queue *q, long id, intptr_t data) { int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL); unsigned int wr = q->write++ & QUEUE_LENGTH_MASK; @@ -284,7 +285,7 @@ void * queue_send(struct event_queue *q, long id, void *data) if(*spp) { /* overflow protect - unblock any thread waiting at this index */ - queue_release_sender(spp, NULL); + queue_release_sender(spp, 0); } *spp = &sender; @@ -298,7 +299,7 @@ void * queue_send(struct event_queue *q, long id, void *data) /* Function as queue_post if sending is not enabled */ wakeup_thread(&q->thread); set_irq_level(oldlevel); - return NULL; + return 0; } #if 0 /* not used now but probably will be later */ @@ -310,7 +311,7 @@ bool queue_in_queue_send(struct event_queue *q) #endif /* Replies with retval to any dequeued message sent with queue_send */ -void queue_reply(struct event_queue *q, void *retval) +void queue_reply(struct event_queue *q, intptr_t retval) { if(q->send && q->send->curr_sender) { @@ -360,7 +361,7 @@ void queue_remove_from_head(struct event_queue *q, long id) if(*spp) { /* Release any thread waiting on this message */ - queue_release_sender(spp, NULL); + queue_release_sender(spp, 0); } } #endif @@ -370,7 +371,7 @@ void queue_remove_from_head(struct event_queue *q, long id) set_irq_level(oldlevel); } -int queue_broadcast(long id, void *data) +int queue_broadcast(long id, intptr_t data) { int i; |