summaryrefslogtreecommitdiff
path: root/firmware/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/kernel.c')
-rw-r--r--firmware/kernel.c21
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;