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 }