#
    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;
  | 
 
とかしてるので、すぐ使えます。