Mercurial > hg > Game > Cerium
annotate TaskManager/kernel/main.cc @ 397:ce86b0186a4a draft
delete manager (in kernel/ppe/TaskManager.h)
don't move.
author | game@henri.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Sun, 20 Sep 2009 18:55:26 +0900 |
parents | f22280772f20 |
children | 5e5e8eb8da5a |
rev | line source |
---|---|
109 | 1 #include <stdlib.h> |
275 | 2 #include <string.h> |
109 | 3 #include <SDL.h> |
4 #include "TaskManager.h" | |
5 | |
321 | 6 /*! |
7 User が書いた TMmain() (*名前は固定) を実行する | |
8 */ | |
9 | |
216
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
109
diff
changeset
|
10 /* User main function */ |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
321
diff
changeset
|
11 extern int TMmain(TaskManager* manager, int argc, char *argv[]); |
216
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
109
diff
changeset
|
12 |
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
109
diff
changeset
|
13 /* Default TMend function */ |
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
109
diff
changeset
|
14 static void |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
321
diff
changeset
|
15 defaultTMend(TaskManager *manager) {} |
109 | 16 |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
321
diff
changeset
|
17 //TaskManager *manager; |
321 | 18 |
19 /*! | |
20 const char *usr_help_str を User 側で指定する必要がある | |
21 -help で出力される文字列 | |
22 */ | |
253
0c9c9906d777
usr_help_str is nessesary for example
tkaito@localhost.localdomain
parents:
242
diff
changeset
|
23 const char *help_str = "\n\ |
109 | 24 * Cerium program option *\n\ |
253
0c9c9906d777
usr_help_str is nessesary for example
tkaito@localhost.localdomain
parents:
242
diff
changeset
|
25 -help Print this message \n\ |
109 | 26 -cpu Number of CPU (default 1) \n"; |
27 | |
253
0c9c9906d777
usr_help_str is nessesary for example
tkaito@localhost.localdomain
parents:
242
diff
changeset
|
28 extern const char *usr_help_str; |
0c9c9906d777
usr_help_str is nessesary for example
tkaito@localhost.localdomain
parents:
242
diff
changeset
|
29 |
109 | 30 int |
31 main(int argc, char *argv[]) | |
32 { | |
253
0c9c9906d777
usr_help_str is nessesary for example
tkaito@localhost.localdomain
parents:
242
diff
changeset
|
33 int machineNum = 1; |
109 | 34 |
35 for (int i = 1; argv[i]; ++i) { | |
36 if (strcmp(argv[i], "-cpu") == 0) { | |
253
0c9c9906d777
usr_help_str is nessesary for example
tkaito@localhost.localdomain
parents:
242
diff
changeset
|
37 machineNum = atoi(argv[++i]); |
109 | 38 } |
253
0c9c9906d777
usr_help_str is nessesary for example
tkaito@localhost.localdomain
parents:
242
diff
changeset
|
39 if (strcmp(argv[i], "-help") == 0) { |
0c9c9906d777
usr_help_str is nessesary for example
tkaito@localhost.localdomain
parents:
242
diff
changeset
|
40 if (usr_help_str) { |
0c9c9906d777
usr_help_str is nessesary for example
tkaito@localhost.localdomain
parents:
242
diff
changeset
|
41 printf("%s", usr_help_str); |
0c9c9906d777
usr_help_str is nessesary for example
tkaito@localhost.localdomain
parents:
242
diff
changeset
|
42 } |
0c9c9906d777
usr_help_str is nessesary for example
tkaito@localhost.localdomain
parents:
242
diff
changeset
|
43 printf("%s", help_str); |
109 | 44 return EXIT_SUCCESS; |
45 } | |
46 } | |
47 | |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
321
diff
changeset
|
48 TaskManager *manager = new TaskManager(machineNum); |
109 | 49 manager->init(); |
50 | |
216
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
109
diff
changeset
|
51 manager->set_TMend(defaultTMend); |
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
109
diff
changeset
|
52 |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
321
diff
changeset
|
53 if (TMmain(manager, argc, argv) < 0) { |
109 | 54 goto FINISH; |
55 } | |
56 | |
57 manager->run(); | |
58 | |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
321
diff
changeset
|
59 (manager->tm_end)(manager); |
216
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
109
diff
changeset
|
60 |
109 | 61 FINISH: |
62 delete manager; | |
63 | |
64 return EXIT_SUCCESS; | |
65 } |