Я пишу системный вызов в Linux, и для него я хочу создать несколько потоков, используя kthread_run
. Однако когда я передаю указатель на функцию, я получаю:
error: passing argument 1 of ‘kthread_create_on_node’ from incompatible pointer type
Вот соответствующий код:
//method to do nothing for 100 milliseconds
int exist()
{
mdelay(100);
return 0;
}
//function pointer to exist
int (*exist_ptr)(void) = ∃
//create processes and delta queues
for (i = PROC_NUM - 1; i >= 0; i--)
{
char name[6] = {'d', 'e', 'l', 't', 'a', i2};
delta_entry de = {
.task = kthread_run(exist_ptr, NULL, name);
.list = linked_list;
.delta_time = PROC_NUM * MILSEC_GAP;
.position = i2;
}
enqueue(&linked_list, &de, i2 - 1);
i2++;
}
Это явно не весь код, потому что я не хотел делать пост слишком длинным. Спасибо!