Я знаю все дискуссии о том, почему нельзя читать/записывать файлы из ядра, а как использовать /proc или netlink для этого. Я все равно хочу читать/писать. Я также прочитал Своди меня с ума - вещи, которые вы никогда не должны делать в ядре.
Однако проблема в том, что 2.6.30 не экспортирует sys_read()
. Скорее это завернуто в SYSCALL_DEFINE3
. Поэтому, если я использую его в своем модуле, я получу следующие предупреждения:
WARNING: "sys_read" [xxx.ko] undefined!
WARNING: "sys_open" [xxx.ko] undefined!
Очевидно, insmod
не может загрузить модуль, потому что связывание не происходит правильно.
Вопросы:
- Как читать/писать в ядре после 2.6.22 (где
sys_read()
/sys_open()
не экспортируются)? - В общем, как использовать системные вызовы, заключенные в макрос
SYSCALL_DEFINEn()
изнутри ядра?