summaryrefslogtreecommitdiff
path: root/uisimulator/sdl/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'uisimulator/sdl/kernel.c')
-rw-r--r--uisimulator/sdl/kernel.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/uisimulator/sdl/kernel.c b/uisimulator/sdl/kernel.c
index fa573a3cc9..dddfa70066 100644
--- a/uisimulator/sdl/kernel.c
+++ b/uisimulator/sdl/kernel.c
@@ -53,7 +53,8 @@ static void queue_fetch_sender(struct queue_sender_list *send,
53 53
54/* Puts the specified return value in the waiting thread's return value 54/* Puts the specified return value in the waiting thread's return value
55 and wakes the thread - a sender should be confirmed to exist first */ 55 and wakes the thread - a sender should be confirmed to exist first */
56static void queue_release_sender(struct queue_sender **sender, void *retval) 56static void queue_release_sender(struct queue_sender **sender,
57 intptr_t retval)
57{ 58{
58 (*sender)->retval = retval; 59 (*sender)->retval = retval;
59 *sender = NULL; 60 *sender = NULL;
@@ -72,7 +73,7 @@ static void queue_release_all_senders(struct event_queue *q)
72 &q->send->senders[i & QUEUE_LENGTH_MASK]; 73 &q->send->senders[i & QUEUE_LENGTH_MASK];
73 if(*spp) 74 if(*spp)
74 { 75 {
75 queue_release_sender(spp, NULL); 76 queue_release_sender(spp, 0);
76 } 77 }
77 } 78 }
78 } 79 }
@@ -154,7 +155,7 @@ void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks)
154 } 155 }
155} 156}
156 157
157void queue_post(struct event_queue *q, long id, void *data) 158void queue_post(struct event_queue *q, long id, intptr_t data)
158{ 159{
159 int oldlevel = set_irq_level(15<<4); 160 int oldlevel = set_irq_level(15<<4);
160 unsigned int wr = q->write++ & QUEUE_LENGTH_MASK; 161 unsigned int wr = q->write++ & QUEUE_LENGTH_MASK;
@@ -170,7 +171,7 @@ void queue_post(struct event_queue *q, long id, void *data)
170 if(*spp) 171 if(*spp)
171 { 172 {
172 /* overflow protect - unblock any thread waiting at this index */ 173 /* overflow protect - unblock any thread waiting at this index */
173 queue_release_sender(spp, NULL); 174 queue_release_sender(spp, 0);
174 } 175 }
175 } 176 }
176#endif 177#endif
@@ -179,7 +180,7 @@ void queue_post(struct event_queue *q, long id, void *data)
179} 180}
180 181
181#ifdef HAVE_EXTENDED_MESSAGING_AND_NAME 182#ifdef HAVE_EXTENDED_MESSAGING_AND_NAME
182void * queue_send(struct event_queue *q, long id, void *data) 183intptr_t queue_send(struct event_queue *q, long id, intptr_t data)
183{ 184{
184 int oldlevel = set_irq_level(15<<4); 185 int oldlevel = set_irq_level(15<<4);
185 unsigned int wr = q->write++ & QUEUE_LENGTH_MASK; 186 unsigned int wr = q->write++ & QUEUE_LENGTH_MASK;
@@ -195,7 +196,7 @@ void * queue_send(struct event_queue *q, long id, void *data)
195 if(*spp) 196 if(*spp)
196 { 197 {
197 /* overflow protect - unblock any thread waiting at this index */ 198 /* overflow protect - unblock any thread waiting at this index */
198 queue_release_sender(spp, NULL); 199 queue_release_sender(spp, 0);
199 } 200 }
200 201
201 *spp = &sender; 202 *spp = &sender;
@@ -211,7 +212,7 @@ void * queue_send(struct event_queue *q, long id, void *data)
211 212
212 /* Function as queue_post if sending is not enabled */ 213 /* Function as queue_post if sending is not enabled */
213 set_irq_level(oldlevel); 214 set_irq_level(oldlevel);
214 return NULL; 215 return 0;
215} 216}
216 217
217#if 0 /* not used now but probably will be later */ 218#if 0 /* not used now but probably will be later */
@@ -223,7 +224,7 @@ bool queue_in_queue_send(struct event_queue *q)
223#endif 224#endif
224 225
225/* Replies with retval to any dequeued message sent with queue_send */ 226/* Replies with retval to any dequeued message sent with queue_send */
226void queue_reply(struct event_queue *q, void *retval) 227void queue_reply(struct event_queue *q, intptr_t retval)
227{ 228{
228 if(q->send && q->send->curr_sender) 229 if(q->send && q->send->curr_sender)
229 { 230 {
@@ -270,7 +271,7 @@ void queue_remove_from_head(struct event_queue *q, long id)
270 if(*spp) 271 if(*spp)
271 { 272 {
272 /* Release any thread waiting on this message */ 273 /* Release any thread waiting on this message */
273 queue_release_sender(spp, NULL); 274 queue_release_sender(spp, 0);
274 } 275 }
275 } 276 }
276#endif 277#endif