annotate example/MemList/main.cc @ 619:0decff4e867b

RenewTask removal
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 15 Nov 2009 02:02:30 +0900
parents 00fe05184a02
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
364
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
1 #include <stdio.h>
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
2 #include <stdlib.h>
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
3 #include <string.h>
370
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
4 #include <assert.h>
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
5 #include <strings.h>
364
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
6 #include "TaskManager.h"
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
7 #include "Func.h"
368
126f90e8582c change TaskManager
aaa
parents: 366
diff changeset
8 #include "MemList.h"
126f90e8582c change TaskManager
aaa
parents: 366
diff changeset
9 #include "MemorySegment.h"
364
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
10
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
11
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
12 const char *usr_help_str = "Usage: ./hello [-cpu spe_num] [-count N]\n\
373
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
13 -cpu Number of SPE (default 1) \n \
364
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
14 -count Number of task is print \"Hello, World!!\"";
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
15
395
8c5fa57128cb chain on SPE
game@localhost.localdomain
parents: 373
diff changeset
16
370
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
17 void
400
00fe05184a02 Fix examples.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 395
diff changeset
18 test1(TaskManager *manager, MemList* active, MemList* freelist, uint32 size, uint32 count)
370
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
19 {
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
20 /*!
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
21 active からランダムに要素を取り出してそこの size の領域を書き潰す
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
22 そこを moveToFirst を繰り返すテスト
373
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
23 */
370
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
24 for (uint32 i = 0; i < count; i++) {
373
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
25 int index = manager->get_random()%count;
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
26 MemorySegment* e = active->get(index);
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
27 active->moveToFirst(e);
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
28 bzero(e->data, size);
370
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
29 }
373
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
30 printf("test1\n");
370
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
31 }
364
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
32
395
8c5fa57128cb chain on SPE
game@localhost.localdomain
parents: 373
diff changeset
33
364
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
34 int
400
00fe05184a02 Fix examples.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 395
diff changeset
35 TMmain(TaskManager *manager, int argc, char *argv[])
364
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
36 {
366
09f33c51a204 rename include/TaskManager/* and add memory
aaa
parents: 364
diff changeset
37 uint32 size = 128;
373
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
38 uint32 count = 64;
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
39
619
0decff4e867b RenewTask removal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 400
diff changeset
40 MemList* active = manager->createMemList(size, 0);
0decff4e867b RenewTask removal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 400
diff changeset
41 MemList* freelist = manager->createMemList(size, count);
373
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
42
366
09f33c51a204 rename include/TaskManager/* and add memory
aaa
parents: 364
diff changeset
43 // 配列!
370
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
44 uint32 i = 0;
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
45 for (;; i++) {
373
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
46 MemorySegment* m = freelist->poll();
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
47 if (m == 0) {
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
48 break;
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
49 }
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
50 active->addFirst(m);
370
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
51 }
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
52
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
53 assert(i==count);
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
54 printf("count = %d\n", i);
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
55
400
00fe05184a02 Fix examples.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 395
diff changeset
56 test1(manager, active, freelist, size, count);
370
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
57 delete active;
4435c9990988 change TaskManger & memory/* & Random
aaa
parents: 369
diff changeset
58 delete freelist;
373
eab18aa0c7f6 MemList not working
kazz@kazzone.cr.ie.u-ryukyu.ac.jp
parents: 370
diff changeset
59
366
09f33c51a204 rename include/TaskManager/* and add memory
aaa
parents: 364
diff changeset
60 return 0;
364
87462f8d3761 uint32 to memaddr(uint64)
tkaito@localhost.localdomain
parents:
diff changeset
61 }
619
0decff4e867b RenewTask removal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 400
diff changeset
62
0decff4e867b RenewTask removal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 400
diff changeset
63 /* end */