next up previous
次へ: releaseメソッド 上へ: システムコールとメソッド(その1: dio_open, dio_release) 戻る: システムコールとメソッド(その1: dio_open, dio_release)

openメソッド

ユーザ空間のアプリケーションからカーネル空間のopenメソッドを呼び出 すにはopenシステムコールを使う。

openメソッドのプロトタイプは次のようになる。


\begin{boxedminipage}{11cm}
\begin{verbatim}int (*open)(struct inode *inode, struct file *filp)\end{verbatim}
\end{boxedminipage}

(「L.D.D.3」P.50)

ユーザ空間のopenシステムコールで呼び出されるカーネル空間のopenメソッドは、デバイス制御を行う前に必ず実行される必要がある。

この実験ではopenメソッドの関数名をDIO(digital input output) ボードにちなんでdio_openとする。

通常、openメソッドでは主に初期化処理等が行われるが、今回の実験で は、dio_openが呼ばれた時に、単に「dio_openが呼ばれ た。」というメッセージだけを出力することにする。(今回は引数の inodfilpは使わない)なお、プログラムではメッセージとして ローマ字で次のように[dio_open] ga Yobareta.と出力することにする。


\begin{boxedminipage}{11cm}
\begin{verbatim}int dio_open(struct inode *inode,...
...''[dio_open] ga Yobareta. \n'');
return 0;
}\end{verbatim}
\end{boxedminipage}



MANOME Yoichi 平成19年1月6日