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 для запись из пространства пользователей в пространство ядра. или я что то не правильно понимаю? подскажите пожалуйста, основная идея вытянуть значение переменных из ядра в пользовательское пространство.

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

Linux Device Drivers 3 by Corbet, Rubini

x4DA ★★★★★ ()

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

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

mv ★★★★★ ()

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

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

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