Linux timer_setup функция - PullRequest
       35

Linux timer_setup функция

0 голосов
/ 25 октября 2018

Когда я пытаюсь вызвать функцию timer_setup (), я получаю следующую ошибку

 error: passing argument 2 of ‘init_timer_key’ from incompatible pointer type   [-Werror=incompatible-pointer-types]
  init_timer_key((_timer), (_fn), (_flags), NULL, NULL)

Код:

/* ... */
#include <linux/timer.h>

static struct timer_list my_timer;

void my_timer_callback(unsigned long data)
{
    pr_info("%s called (%ld).\n", __FUNCTION__, jiffies);
}

static int __init my_init(void)
{
    timer_setup(&my_timer, my_timer_callback, 0);
    return 0;
}

static void my_exit(void)
{
    return;
}

module_init(my_init);
module_exit(my_exit);
/* ... */

Как я могу исправить ошибку?

1 Ответ

0 голосов
/ 25 октября 2018

Я думаю, вы хотите использовать setup_timer(), а не timer_setup(), который имеет прототип

static inline void timer_setup(struct timer_list *timer,
                               void (*callback)(struct timer_list *),
                               unsigned int flags)

или изменить функцию таймера на

void my_timer_callback(struct timer_list  *timer)
{
...
}
...