как использовать код модуля ядра в других ядерных ф-иях

XRENANTES

хелп срочно. собрал модуль для ядра. но теперь надо в net/ipv4/tcp.c его заюзать. как это сделать?

vall

если пару каллбаков прокинуть то хватит rcu:
void (*cb;
EXPORT_SYMBOL(cb);
init:
rcu_assign_pointer(cb, cb_func);
exit:
rcu_assign_pointer(cb, NULL);
synchronize_rcu;
call:
rcu_read_lock
tmp=rcu_dereference(cb)
if (tmp)
  tmp
rcu_read_unlock
но для этого модуль должен быть ЖПЛьный

XRENANTES

а. а экспорт_символ можно юзать?

vall

я так понимаю тебе нужно чтоб из ядра звать модуль, но чтоб модуль можно было выгружать.

vall

а тебе стандартных нетфильтровских каллбаков не хватит?

XRENANTES

да нет, мне не обязательно, чтобы модуль можно было выгружать.
я сделал кольцевой буфер в прок для трассы экспериментов.
мне теперь нужно засунуть функции записи в буфер в tcp.c ктр в ipv4. вот эта задача убила уже у меня минут 40(

vall

тогда не ломай голову. линкуй всё статически. пропиши где нужно вызов и всё.
Оставить комментарий
Имя или ник:
Комментарий: