LINUX.ORG.RU

как передать переменную ядра в пользовательское пространство


0

0

Доброго времени суток.

Подскажите пожалуйста, как переменные которые в функциях ядра линукс передать в пользовательское пространство через /proc или как то по другому.
Вот например (src kernel) в /linux-2.6.23.9/kernel/sched.c есть переменная int cpu в функции void scheduler_tick(void){} , мне нужно что бы это значение выводилось где то в пользовательское пространство, например /proc.

У меня была идея через api procfs:
...
proc_entry = create_proc_entry( "example", 0644, NULL );
.....
my_write_function (char *page,
char **buffer_location,
off_t offset, int buffer_length, int zero)
{
......

.......
}
proc_entry->write_proc = my_write_function;

Но я так понимаю в этом случае оно работать не будет, так как write_proc для запись из пространства пользователей в пространство ядра. или я что то не правильно понимаю? подскажите пожалуйста, основная идея вытянуть значение переменных из ядра в пользовательское пространство.

Linux Device Drivers 3 by Corbet, Rubini

x4DA ★★★★★
()

Если просто вытянуть нужно, то можно через системтап. Из плюсов: не нужно модифицировать и пересобирать ядро.

mv ★★★★★
()
Ответ на: комментарий от virvdova

> А есть другой способ?

Другой способ по сравнению с чем?

mv ★★★★★
()

>так как write_proc для запись из пространства пользователей в пространство ядра. или я что то не правильно понимаю?
правильно понимаешь, только что мешает тебе взглянуть на структуру proc_dir_entry, чтобы не задавать RTFSC-вопросов ??

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.