Как использовать системные вызовы в модулях Linux - PullRequest
0 голосов
/ 20 июля 2011

Я пытался использовать системные вызовы, такие как sys_sendto, при программировании модуля ядра.Но компилятор предупредил меня, что символ 'sys_sendto' не определен.Я уверен, что вложил заголовочный файл syscalls.h, поэтому, пожалуйста, помогите мне и спасибо.PS: моя версия для Linux - 2.6.32

Ответы [ 2 ]

0 голосов
/ 20 июля 2011

Чтобы модуль связывался с символом в ядре, таким как sys_sendto (), он должен быть экспортирован ядром. Не все системные вызовы экспортируются. Смотри здесь

0 голосов
/ 20 июля 2011

http://www.ibm.com/developerworks/linux/library/l-system-calls/ Вот полное объяснение их написания и использования. Они не используются прямыми вызовами методов, потому что они должны выполняться в режиме ядра. Процессор загружает номер системного вызова в регистр, а затем выдает аппаратное прерывание, которое ядро ​​обрабатывает и обрабатывает для выполнения вашего системного вызова.

...