Mercurial > hg > Game > Cerium
annotate example/mainMem/ppe/Hello.cc @ 936:178fbcc81fda draft
dead lock on spu/ppu mail
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 31 Jul 2010 05:31:12 +0900 |
parents | d17459601f28 |
children |
rev | line source |
---|---|
312 | 1 #include <stdio.h> |
2 #include "Hello.h" | |
3 #include "Func.h" | |
4 | |
5 /* これは必須 */ | |
6 SchedDefineTask(Hello); | |
7 | |
8 #define PP_STORE 3 | |
9 #define SIZE (4096*sizeof(int)) | |
10 | |
467
839e34d0cc3c
fix all examples. test_render is not working now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
312
diff
changeset
|
11 static int |
839e34d0cc3c
fix all examples. test_render is not working now.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
312
diff
changeset
|
12 run(SchedTask *smanager, void *rbuf, void *wbuf) |
312 | 13 { |
625
94d82f2c842f
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
467
diff
changeset
|
14 long task_id = (long)smanager->get_param(0); |
312 | 15 int *ptr = 0; |
16 #if 1 | |
17 ptr = (int*)smanager->allocate(SIZE); | |
18 | |
19 smanager->mainMem_alloc(0, SIZE); | |
20 | |
21 int i; | |
22 for(i=0;i<4096;i++) { | |
23 ptr[i] = i; | |
24 } | |
25 #endif | |
26 | |
27 void *next = 0; | |
28 #if 1 | |
29 smanager->mainMem_wait(); | |
30 next = (void *)smanager->mainMem_get(0); | |
31 | |
32 smanager->dma_wait(PP_STORE); | |
625
94d82f2c842f
64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
467
diff
changeset
|
33 smanager->dma_store(ptr, (memaddr)next, |
312 | 34 SIZE, PP_STORE); |
35 #endif | |
36 | |
37 | |
828 | 38 //smanager->fprintf(smanager->stderr_,"sizeof(int) = [%d] sizeof(void*)=[%d]\n", (int)sizeof(int),(int)sizeof(void*)); |
39 //smanager->fprintf(smanager->stderr_,"[%d] Main Mem %0lx len %d\n", task_id, (unsigned long)next,(int)SIZE); | |
312 | 40 |
828 | 41 smanager->printf("sizeof(int) = [%d] sizeof(void*)=[%d]\n", (int)sizeof(int),(int)sizeof(void*)); |
42 smanager->printf("[%d] Main Mem %0lx len %d\n", task_id, (unsigned long)next,(int)SIZE); | |
312 | 43 return 0; |
44 } |