u32値を読み書きするためのdebugfsファイルの生成

u32値を読み書きするためのdebugfsファイルの生成

次の仕様でファイルを作成しようとしています。

debugfsサブディレクトリの "myfile"ファイルは次のとおりです。読み取り専用すべてのユーザーが読み取り、読み取ったときに jiffies カーネルタイマーの現在の値を返す必要があります。

my_init直接呼び出される関数に次のコード行を書きましたmodule_init(my_init)

if (!debugfs_create_u32("myfile", 0444, handle, (u32*)&myfile))
        goto fail;

実行すると、make次のエラーが発生します。

error: invalid use of void expression
  if (!debugfs_create_u32("myfile", 0444, handle, (u32*)&myfile))

誰かがこのエラーを解決するのに役立つことができれば良いでしょう。よろしくお願いします:)

ベストアンサー1

戻り値debugfs_create_u32がから削除されました。2b07021a940ce1cdec736ec0cacad6af77717afcv5.7入力:

debugfs: debugfs_create_u32() の戻り値を削除します。 debugfs_create_u32() の戻り値は必要ないため、誰も確認しないので、今後は誰もこれを試みないように戻り値を void に設定します。

だからあなたはそれを削除することができますif

私にとって問題は、モジュールがアンロードされた後にdebugfsファイルを削除したいのですが、私のエントリはdebugfsの最上位レベルにあり、NULLなので、ただできないということですdebugfs_remove_recursive

だから私は歯科治療を受けると思いました。

debugfs_lookup("basename", NULL)

複数のエントリがある場合は、名前空間が汚染されすぎるため、最上位レベルでdebugfsエントリを作成しないでください。

しかし、いくつかの非常に似た呼び出しは、まだ一貫性のないファイルを返します。たとえば、次のようになります。

struct dentry *debugfs_create_ulong

だから私はこれが単にAPIのバグだと思います。カーネル開発者は私がかつて考えていた完璧な神ではありませんか? :-永久

おすすめ記事