NetBSD-2.1(i386版)で、sysarchを追加してユーザランドプロセスからカーネルを好き勝手に操作できるようにしてみる。sysarchについては、NetBSDのmanページを参照のこと。
まず、sysarchの番号を追加する。番号はカーネルソースコードの arch/i386/include/sysarch.h に定義されている。
例えば以下のように、"I386_TESTSYS"を追加する。
#define I386_TESTSYS
続いて、sysarchの実行コードを作成する。i386のsysarchコードは、カーネルソースコードの arch/i386/i386/sys_machdep.c に記述されている。このファイルの sys_sysarch() 関数内のswitch文がsysarch()の切り分けを行っている箇所なので、その部分に case文(追加したsysarch番号のI386_TESTSYS)を追加する。
以上で、カーネルの設定は完了。カーネルをコンパイルしなおせばOK
ユーザランドプログラムから追加したsysarchを参照できるようにするため、ヘッダファイルを /usr/include 配下に反映させることを忘れないこと!