#
Cerium Update
main 関数はライブラリに閉じました。~
というわけで、ユーザ側の main() は~
1
|
int cerium_main(int argc, char *argv[]);
|
となります。引数は通常の main と同じものが渡されます~
cerium_main で < 0 を返す (例えば -1) と~
プログラムが終了するようにしています。~
cerium_main を正常に抜けると、ライブラリ側で~
main loop が回り、全タスク終了と共にプログラムが終了します。~
ユーザプログラムで main() を書いてしまった場合
1
2
3
4
5
|
/home/gongo/Game_project/Cerium/TaskManager/kernel/main.cc:15: multiple definition of `main'
main.o:/home/gongo/Game_project/Cerium/example/HelloWorld/main.cc:64: first defined here
/usr/bin/ld: Warning: size of symbol `main' changed from 116 in main.o to 472 in
/home/gongo/Game_project/Cerium/TaskManager/libCellManager.a(main.o)
/home/gongo/Game_project/Cerium/TaskManager/libCellManager.a(main.o): In function `main':
|
cerium_main を書いてない場合
1
|
main.cc:(.text+0x158): undefined reference to `cerium_main(int, char**)'
|
とかいうコンパイルorリンカエラーが出ると思うので、参考に。
あと、Cerium の標準オプションとして~
1
2
|
-chelp Print this message
-cpu Number of CPU (default 1)
|
を実装しました。近々増やしていく予定です~
TaskManager へのアクセスですが、今までは
1
|
TaskManager *manager = new TaskManager(CPU_NUM);
|
とかやってたはずですが、現在はライブラリ側で生成しているので、
TaskManager.h を include すると、中で
1
|
extern TaskManager *manager;
|
とかしてるので、すぐ使えます。