web-dev-qa-db-ja.com

関数 'create_proc_entry'の暗黙の宣言

Create_proc_entry()関数を使用して/ procの下にディレクトリを作成しようとしています。コードをコンパイルしようとすると、次のエラーが発生します:関数 'create_proc_entry'の暗黙の宣言。

これらは、.cファイルに含めたヘッダーです。

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
#include <linux/vmalloc.h>
#include <linux/uaccess.h>

コンパイルしようとしているマシンのカーネルバージョンは、3.10.33-g7954807-dirtyです。

このメソッドを呼び出すために必要なヘッダーがありませんか?または、私のバージョンのカーネルではこのメソッドは廃止されていますか?

18

/ procファイルシステムは3.10でリファクタリングされ、探している関数は削除されました。フル機能のproc_create関数ファミリーを使用する必要があります。署名が異なることに注意してください。

3.10バージョン: http://lxr.free-electrons.com/source/include/linux/proc_fs.h?v=3.1

3.9バージョン: http://lxr.free-electrons.com/source/include/linux/proc_fs.h?v=3.9

フル機能の/ proc関数の使用に関する詳細な説明は、書籍Linux Device Drivers 4で見つけることができます。短い解決策が必要な場合は、このリンク( https://github.com/jesstess/ldd4/blob/ master/scull/main.c )ここで、struct file_operationsの使用方法を確認できます。構造体のすべてのフィールドに設定する必要はありません。

23
Felipe Lavratti