KasperskyOS Community Edition 1.1

KnIoAttachIrq()

Функция объявлена в файле coresrv/io/irq.h.

Retcode KnIoAttachIrq(Handle rid, rtl_uint32_t flags, Handle *handle);

Функция привязывает вызывающий поток к прерыванию.

Входные параметры:

  • rid – дескриптор прерывания, полученный с помощью вызова KnRegisterIrq();
  • flags – флаги прерывания.

Выходной параметр handle содержит IPC-дескриптор, посредством которого вызывающий поток будет ожидать прерывание, выполнив вызов Recv().

В случае успеха функция возвращает rcOk, иначе возвращает код ошибки.

Флаги прерывания

  • IRQ_LEVEL_LOW – генерация по низкому уровню;
  • IRQ_LEVEL_HIGH – генерация по высокому уровню;
  • IRQ_EDGE_RAISE – генерация по переднему фронту;
  • IRQ_EDGE_FALL – генерация по заднему фронту;
  • IRQ_SHARED – разделяемое прерывание;
  • IRQ_PRIO_LOW – низкий приоритет прерывания;
  • IRQ_PRIO_NORMAL – нормальный приоритет;
  • IRQ_PRIO_HIGH – высокий приоритет;
  • IRQ_PRIO_RT – приоритет реального времени.