Rev 1111 | Rev 1125 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1111 | Rev 1113 | ||
|---|---|---|---|
| Line 31... | Line 31... | ||
| 31 | #include <stdio.h> |
31 | #include <stdio.h> |
| 32 | #include <unistd.h> |
32 | #include <unistd.h> |
| 33 | #include <stdlib.h> |
33 | #include <stdlib.h> |
| 34 | #include <ns.h> |
34 | #include <ns.h> |
| 35 | #include <thread.h> |
35 | #include <thread.h> |
| - | 36 | #include <psthread.h> |
|
| 36 | #include <futex.h> |
37 | #include <futex.h> |
| 37 | 38 | ||
| 38 | int a; |
39 | int a; |
| 39 | atomic_t ftx; |
40 | atomic_t ftx; |
| 40 | 41 | ||
| Line 250... | Line 251... | ||
| 250 | ipc_call_async_2(PHONE_NS, NS_PING, 1, 0xbeefbee2, |
251 | ipc_call_async_2(PHONE_NS, NS_PING, 1, 0xbeefbee2, |
| 251 | "Pong1", got_answer); |
252 | "Pong1", got_answer); |
| 252 | ipc_wait_for_call(&data, 0); |
253 | ipc_wait_for_call(&data, 0); |
| 253 | } |
254 | } |
| 254 | 255 | ||
| - | 256 | static int ptest(void *arg) |
|
| 255 | 257 | { |
|
| - | 258 | printf("Pseudo thread-1\n"); |
|
| - | 259 | ps_preempt(); |
|
| - | 260 | printf("Pseudo thread-2\n"); |
|
| - | 261 | ps_preempt(); |
|
| - | 262 | printf("Pseudo thread-3\n"); |
|
| - | 263 | ps_preempt(); |
|
| - | 264 | printf("Pseudo thread-4\n"); |
|
| - | 265 | ps_preempt(); |
|
| - | 266 | printf("Pseudo finish\n"); |
|
| - | 267 | return 0; |
|
| - | 268 | } |
|
| 256 | 269 | ||
| 257 | int main(int argc, char *argv[]) |
270 | int main(int argc, char *argv[]) |
| 258 | { |
271 | { |
| - | 272 | pstid_t ptid; |
|
| 259 | int tid; |
273 | int tid; |
| - | 274 | ||
| 260 | version_print(); |
275 | version_print(); |
| 261 | 276 | ||
| 262 | /* test_printf(); */ |
277 | /* test_printf(); */ |
| 263 | // test_ping(); |
278 | // test_ping(); |
| 264 | // test_async_ipc(); |
279 | // test_async_ipc(); |
| Line 271... | Line 286... | ||
| 271 | if (futex_down(&ftx) < 0) |
286 | if (futex_down(&ftx) < 0) |
| 272 | printf("Futex failed.\n"); |
287 | printf("Futex failed.\n"); |
| 273 | if (futex_up(&ftx) < 0) |
288 | if (futex_up(&ftx) < 0) |
| 274 | printf("Futex failed.\n"); |
289 | printf("Futex failed.\n"); |
| 275 | 290 | ||
| - | 291 | if ((tid = thread_create(utest, NULL, "utest") != -1)) { |
|
| - | 292 | printf("Created thread tid=%d\n", tid); |
|
| - | 293 | } |
|
| - | 294 | ||
| 276 | if (futex_down(&ftx) < 0) |
295 | if (futex_down(&ftx) < 0) |
| 277 | printf("Futex failed.\n"); |
296 | printf("Futex failed.\n"); |
| 278 | 297 | ||
| 279 | if ((tid = thread_create(utest, NULL, "utest") != -1)) { |
298 | if ((tid = thread_create(utest, NULL, "utest") != -1)) { |
| 280 | printf("Created thread tid=%d\n", tid); |
299 | printf("Created thread tid=%d\n", tid); |
| Line 286... | Line 305... | ||
| 286 | ; |
305 | ; |
| 287 | 306 | ||
| 288 | if (futex_up(&ftx) < 0) |
307 | if (futex_up(&ftx) < 0) |
| 289 | printf("Futex failed.\n"); |
308 | printf("Futex failed.\n"); |
| 290 | 309 | ||
| - | 310 | ptid = psthread_create(ptest, NULL); |
|
| - | 311 | printf("Main thread-1\n"); |
|
| - | 312 | ps_preempt(); |
|
| - | 313 | printf("Main thread-2\n"); |
|
| - | 314 | ps_preempt(); |
|
| - | 315 | printf("main thread-3\n"); |
|
| - | 316 | ||
| - | 317 | ps_join(ptid); |
|
| - | 318 | printf("Main exiting\n"); |
|
| - | 319 | ||
| 291 | printf("Main thread exiting.\n"); |
320 | printf("Main thread exiting.\n"); |
| 292 | return 0; |
321 | return 0; |
| 293 | } |
322 | } |