Размаскировать аппаратное прерывание
#include <sys/neutrino.h>int InterruptUnmask( int intr,int id );
-1
, если требуется указать ядру не отслеживать количество маскирований и размаскирований для каждого обработчика.
Идентификатор id игнорируется, если не использовался флаг _NTO_INTR_FLAGS_TRK_MSK при подключении обработчика. |
libc
Системный вызов InterruptUnmask() размаскирует аппаратное прерывание intr для обработчика с идентификатором id, когда счётчик количества маскирований достигает нуля. Может вызваться из потока или из обработчика прерывания. Перед вызовом этой функции поток должен запросить привилегии ввода-вывода, вызвав:
ThreadCtl( _NTO_TCTL_IO, 0 );
Если поток этого не сделает, он может получить SIGSEGV
при вызове InterruptUnmask().
Вызовы InterruptMask() вложенные; прерывание не размаскируется до тех пор, пока InterruptUnmask() не будет вызвана столько же раз, сколько была вызвана InterruptMask().
Счётчик текущего количества маскирований.
Если возникла ошибка, функция возвращает -1
, код ошибки записывается в errno.
-1
. ЗОСРВ «Нейтрино»
InterruptAttach(), InterruptAttachEvent(), InterruptDisable(), InterruptEnable(), InterruptLock(), InterruptMask(), InterruptUnlock(), ThreadCtl()
Предыдущий раздел: Описание API системной библиотеки