トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Diary/2008-2-26の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!FreeBSDのカーネルモジュールの作り方
{{category FreeBSD}}
/usr/share/examples/kldとかmanとか見ると詳しく書いてある。
 gcc -D_KERNEL -DKLD_MODULE -c test1.c -o test1.o
 ld -d -warn-common -r -d -o test1.kld test1.o
 ld -Bshareable -d -warn-common -o test1.ko test1.kld
で、何もしないカーネルモジュール
 #include <sys/param.h>
 #include <sys/kernel.h>
 #include <sys/module.h>
 
 static int
 test1_modevent(module_t mod, int type, void *unused)
 {
         switch (type) {
         case MOD_LOAD:
                 return 0;
         case MOD_UNLOAD:
                 return 0;
         }
         return EINVAL;
 }
 
 static moduledata_t test1_mod = {
         "test1",
         test1_modevent,
         0
 };
 DECLARE_MODULE(test1, test1_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
 MODULE_VERSION(test1, 1);