Mercurial > hg > Members > kono > Cerium
comparison example/MemList/main.cc @ 373:eab18aa0c7f6
MemList not working
author | kazz@kazzone.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Fri, 31 Jul 2009 17:52:27 +0900 |
parents | 4435c9990988 |
children | 8c5fa57128cb |
comparison
equal
deleted
inserted
replaced
372:6ff4f651162b | 373:eab18aa0c7f6 |
---|---|
11 //extern void task_init(void); | 11 //extern void task_init(void); |
12 | 12 |
13 extern TaskManager *manager; | 13 extern TaskManager *manager; |
14 | 14 |
15 const char *usr_help_str = "Usage: ./hello [-cpu spe_num] [-count N]\n\ | 15 const char *usr_help_str = "Usage: ./hello [-cpu spe_num] [-count N]\n\ |
16 -cpu Number of SPE (default 1) \n \ | 16 -cpu Number of SPE (default 1) \n \ |
17 -count Number of task is print \"Hello, World!!\""; | 17 -count Number of task is print \"Hello, World!!\""; |
18 | 18 |
19 void | 19 void |
20 test1(MemList* active, MemList* freelist, uint32 size, uint32 count) | 20 test1(MemList* active, MemList* freelist, uint32 size, uint32 count) |
21 { | 21 { |
22 /*! | 22 /*! |
23 active からランダムに要素を取り出してそこの size の領域を書き潰す | 23 active からランダムに要素を取り出してそこの size の領域を書き潰す |
24 そこを moveToFirst を繰り返すテスト | 24 そこを moveToFirst を繰り返すテスト |
25 */ | 25 */ |
26 for (uint32 i = 0; i < count; i++) { | 26 for (uint32 i = 0; i < count; i++) { |
27 int index = manager->get_random()%count; | 27 int index = manager->get_random()%count; |
28 MemorySegment* e = active->get(index); | 28 MemorySegment* e = active->get(index); |
29 active->moveToFirst(e); | 29 active->moveToFirst(e); |
30 bzero(e->data, size); | 30 bzero(e->data, size); |
31 } | 31 } |
32 printf("test1\n"); | 32 printf("test1\n"); |
33 } | 33 } |
34 | 34 |
35 int | 35 int |
36 TMmain(int argc, char *argv[]) | 36 TMmain(int argc, char *argv[]) |
37 { | 37 { |
38 uint32 size = 128; | 38 uint32 size = 128; |
39 uint32 count = 64; | 39 uint32 count = 64; |
40 | 40 |
41 MemList* active = manager->createMemList(size, 0); | 41 MemList* active = manager->get_scheduler()->createMemList(size, 0); |
42 MemList* freelist = manager->createMemList(size, count); | 42 MemList* freelist = manager->get_scheduler()->createMemList(size, count); |
43 | 43 |
44 // 配列! | 44 // 配列! |
45 uint32 i = 0; | 45 uint32 i = 0; |
46 for (;; i++) { | 46 for (;; i++) { |
47 MemorySegment* m = freelist->poll(); | 47 MemorySegment* m = freelist->poll(); |
48 if (m == 0) { | 48 if (m == 0) { |
49 break; | 49 break; |
50 } | 50 } |
51 active->addFirst(m); | 51 active->addFirst(m); |
52 } | 52 } |
53 | 53 |
54 assert(i==count); | 54 assert(i==count); |
55 printf("count = %d\n", i); | 55 printf("count = %d\n", i); |
56 | 56 |
57 test1(active, freelist, size, count); | 57 test1(active, freelist, size, count); |
58 delete active; | 58 delete active; |
59 delete freelist; | 59 delete freelist; |
60 | 60 |
61 return 0; | 61 return 0; |
62 } | 62 } |