Инструменты пользователя

Инструменты сайта


interrupt

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
interrupt [2026/10/25 16:57] – geckointerrupt [2026/10/25 17:06] (текущий) – gecko
Строка 67: Строка 67:
 } }
 </code> </code>
 +
 +Поскольку такой подход может привести к конфликтам, не рекомендуется навешивать на одну и ту же линию прерываний более одного обработчика.
  
 ===== Функции BIOS, относящиеся к обработке прерываний ===== ===== Функции BIOS, относящиеся к обработке прерываний =====
Строка 73: Строка 75:
  
   * С(03h) - SysDeqIntRP(priorityIndex, handler) - убирает обработчик прерывания из очереди.   * С(03h) - SysDeqIntRP(priorityIndex, handler) - убирает обработчик прерывания из очереди.
 +
 +  * B(18h) - ResetEntryInt() - удаляет все пользовательские обработчики.
  
   * int EnterCriticalSection(), вызов через syscall с номером 0x01 в регистре $a0 - отключает обработку прерываний, зануляя биты 2 и 10 регистра SR (cop0r12). Возвращает 1, если оба бита были установлены, и 0 в противном случае. Эту функцию нужно вызывать в редких случаях, когда нужно выполнить код, который не должен прерываться.   * int EnterCriticalSection(), вызов через syscall с номером 0x01 в регистре $a0 - отключает обработку прерываний, зануляя биты 2 и 10 регистра SR (cop0r12). Возвращает 1, если оба бита были установлены, и 0 в противном случае. Эту функцию нужно вызывать в редких случаях, когда нужно выполнить код, который не должен прерываться.
interrupt.1792947448.txt.gz · Последнее изменение: — gecko

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki