Здравствуйте.
При разработке драйвера устройства столкнулся со следующей проблемой.
драйвер должен совместно работать с прикладной программой (демоном) и должен передавать этой программе сигналы о готовности данных (после аппаратного прерывания).
Для этих целей я воспользовался механизмом передачи сигналов, в частности, передачей SIGUSR1.
для этого в модуле инициализации драйвера заполнил структуру task_struct:
p = find_task_by_name("my_daemon");
саму структуру объявил глобально, так как она используется в нескольких модулях драйвера:
static struct task_struct *p;
затем в обработчике прерывания собственно генерирую SIGUSR1;
sigaddset(&p->pending.signal, SIGUSR1);
p->sigpending = 1;
в ответ на это компилятор выдаёт ошибки:
error: 'struct task_struct' has no member named 'sigpending' в обработчике прерывания и
вопрос: В чём я лоханулся?
ядро - 2.6.23, пропатченное под olimex sam9-l9260
кросс-компилирую, соответственно, под arm (arm-at91)