Kprobes を使用して、任意のカーネル関数をプローブできることを知っています。しかし、その文書を調べてみると、それはほとんど一種の受動的な存在であることがわかりました。プローブを実行シーケンスの途中に置くだけです。
しかし、実行シーケンスを気にせずにカーネル関数を直接呼び出したい場合はどうでしょうか。
どうすればそれを達成できますか?
更新日:
注: ユーザー空間アプリケーションからではなく、カーネル モジュール内のカーネル関数を呼び出したいと考えています。
Kprobes を使用して、任意のカーネル関数をプローブできることを知っています。しかし、その文書を調べてみると、それはほとんど一種の受動的な存在であることがわかりました。プローブを実行シーケンスの途中に置くだけです。
しかし、実行シーケンスを気にせずにカーネル関数を直接呼び出したい場合はどうでしょうか。
どうすればそれを達成できますか?
更新日:
注: ユーザー空間アプリケーションからではなく、カーネル モジュール内のカーネル関数を呼び出したいと考えています。
カーネル関数を直接呼び出したい場合はどうすればよいですか
少なくともすべての関数を直接使用できるわけではありません。
あなたのケースでカーネル関数を呼び出すときは、次の点を考慮してください。
例
関数定義 (i2c_smbus_read_byte_data)
http://lxr.free-electrons.com/source/drivers/i2c/i2c-core.c#L2689
ここで使用
http://lxr.free-electrons.com/source/drivers/i2c/i2c-core.c#L350