Неявное объявление функции при компиляции модуля ядра
Я новичок в работе в пространстве ядра, поэтому я надеюсь, что кто-то может помочь мне с моей проблемой.
Я видел много вопросов, связанных с неявным объявлением функций для пользовательских программ на языке c/ C++, но я думаю, что проблема, с которой я сталкиваюсь, может быть решена по-разному в пространстве ядра.
Код, над которым я работаю, состоит в том, чтобы проверить сигнализацию пользовательского приложения от драйвера, с которым я работаю, но проблема заключалась в том, что я не мог использовать функцию send_sig_info, объявленную в linux/signal.h, пока я не объявил ее в заголовке мой собственный источник драйверов. Я решил, что если бы я добавил корректный заголовок для доступа к объявленному там вызову функции, он должен работать.
Так что без объявления send_sig_info в моем собственном заголовке:
error: implicit declaration of function ‘send_sig_info’
И затем добавив в мой заголовочный файл:
static int send_sig_info(int sig, struct siginfo *info, struct task_struct *p);
позволит мой код для компиляции просто отлично.
У кого-нибудь есть идея, почему это так?
Благодарю.