Я пытаюсь заставить программу уровня пользователя взаимодействовать с ядром через /proc.
.
Я следовал инструкциям на tldp и успешно смог создать собственный файл proc, динамически загрузить его с помощью insmod и прочитать (cat) и записать (echo) в файл proc из пользовательского пространства.
Теперь мой вопрос: как мне получить доступ к переменной / proc (это байтовый буфер) из другой части ядра, скажем, инфраструктуры системных вызовов? Так как пользовательский файл proc динамически загружается и связывается, как я могу ссылаться на него из статически скомпилированного кода ядра?
Технические характеристики системы: Ubuntu 10.10 работает в VMWare Fusion на MacBook Pro 13 "(2009).
Редактировать: соответствующий код (по запросу) -
procfile.c
//This function is called when the module is loaded
int init_module()
{
/* create the /proc file */
EXPORT_SYMBOL(procfs_buffer);
EXPORT_SYMBOL(procfs_buffer_size);
...
...
}
get_procvariable.c (в другой части ядра)
//The buffer used to store character for this module
extern char * procfs_buffer;
//The size of the buffer
extern unsigned long procfs_buffer_size;
int get_procvariable(void)
{
.. do something
return procfs_buffer; // LD Error: Undefined reference
}
Дайте мне знать в комментариях, если вам нужна дополнительная информация. Заранее спасибо.