2014-11-07 2 views
15

Я пытаюсь использовать функцию create_proc_entry() для создания каталога в/proc. Когда я пытаюсь скомпилировать код, я получаю следующую ошибку: неявное объявление функции «create_proc_entry».неявное объявление функции '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 грязного

Мне не хватает заголовков, необходимых для вызова этого метода? Или метод, устаревший в моей версии ядра?

ответ

20

/proc файловая система была реорганизована в 3.10, функция, которую вы ищете, была удалена, вы должны использовать полнофункциональное семейство функций proc_create. Обратите внимание, что подписи разные.

3,10 версия: http://lxr.free-electrons.com/source/include/linux/proc_fs.h?v=3.10

3,9 версия:

Вы можете найти более объяснение использования полной функции признакам/Proc в Drivers книге Linux устройство 4, или, если вы хотите более короткое решение, проверьте эту ссылку (https://github.com/jesstess/ldd4/blob/master/scull/main.c), где вы можете увидеть, как использовался struct file_operations. Вам не нужно настраивать все поля структуры.

+0

Я вижу, что для использования proc_create необходимо создать структуру file_operations. Какова номенклатура создания обратного вызова для члена .write? – theNoobProgrammer

+0

@ theNoobProgrammer Я отредактировал ответ, надеюсь, что это поможет. –

+0

Метод в этой ссылке кажется излишним для моих целей. Я в основном пытаюсь это сделать: http://www.ibm.com/developerworks/linux/library/l-proc/index.html. Я смог запустить это с моего хоста. Созданный каталог (/ proc/fortune) после установки может быть записано и прочитано. Но на устройстве, которое я разрабатываю для не содержит create_proc_entry(), но имеет proc_create(). Я просто пытаюсь изменить обратные вызовы чтения/записи из ссылки для работы с файловыми структурами. Я не думаю, что мне нужно полно работать с последовательными чтениями файлов. – theNoobProgrammer