Я работаю над модулем ядра Linux.
Структура tcpsp_conn определяется в заголовочном файле следующим образом:
struct tcpsp_conn {
...
struct timer_list timer; /* exp. timer*/
...
};
Затем я объявляю указатель на структуру и пытаюсь назначить функцию:
struct tcpsp_conn *cp;
cp->timer.function = tcpsp_conn_expire;
Функция tcpsp_conn_expire определяется так же, как в struct timer_list ядра:
static void tcpsp_conn_expire(unsigned long data)
Я не понимаю, почему я получаю эту ошибку:
ошибка: присвоение из несовместимого типа указателя [-Werror = incompatible-pointer-types]
cp-> timer.function = tcpsp_conn_expire;
С типами проблем не возникает.