diff options
Diffstat (limited to 'uisimulator/sdl/kernel.c')
-rw-r--r-- | uisimulator/sdl/kernel.c | 19 |
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 */ |
56 | static void queue_release_sender(struct queue_sender **sender, void *retval) | 56 | static 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 | ||
157 | void queue_post(struct event_queue *q, long id, void *data) | 158 | void 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 |
182 | void * queue_send(struct event_queue *q, long id, void *data) | 183 | intptr_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 */ |
226 | void queue_reply(struct event_queue *q, void *retval) | 227 | void 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 |