Ru/api/kernel: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
No edit summary
m (Функция 42 - перенесена)
Line 190: Line 190:


== Функция 42 - работа с данными, полученными по IRQ. ==
== Функция 42 - работа с данными, полученными по IRQ. ==
=== Чтение данных ======-
При возникновении IRQ система может считывать данные из указанных
ранее функцией 44 портов и записывать эти данные в буфер.
Описываемая функция считывает данные из этого буфера в буфер
указанный в качестве параметра.
Параметры:
  * eax = 42 - номер функции
  * bl  = номер IRQ, 0..15
  * bh = номер подфункции, 0
Остальная часть регистра ebx должна быть обнулена.
  * ecx = указатель на буфер, куда будут приниматься данные
Возвращаемое значение: (ситуацию можно различить по значению eax)
  * если поток не является владельцем IRQ
    (или номер IRQ задан неверно):
    * eax = -1
  * если данных нет:
    * eax = 0
  * если всё в порядке и данные были:
    * eax = размер данных, прочитанных из буфера (в байтах)
Смотрите замечания ниже.
=== Узнать размер данных в буфере ===
Параметры:
  * eax = 42 - номер функции
  * bl  = номер IRQ, 0..15
  * bh = номер подфункции, 1
Остальная часть регистра ebx должна быть обнулена.
Возвращаемое значение: (ситуацию можно различить по значению eax)
  * если поток не является владельцем IRQ
    (или номер IRQ задан неверно):
    * eax = -1
  * если всё в порядке, в eax размер данных
Замечания:
  * Предварительно поток должен зарезервировать для себя указанный IRQ
    функцией 45.
  * Размер буфера для данных - 4000 байт, при переполнении
    "свежие" данные перестают записываться в буфер.


== Функция 43 - ввод/вывод в порт. ==
== Функция 43 - ввод/вывод в порт. ==

Revision as of 20:07, 5 April 2010

СИСТЕМНЫЕ ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ Kolibri 0.7.1.0

Номер функции помещается в регистр eax. Вызов системной функции осуществляется командой "int 0x40". Все регистры, кроме явно указанных в возвращаемом значении, включая регистр флагов eflags, сохраняются.


Функция 0 - определить и нарисовать окно.

Определяет окно приложения. Рисует рамку окна, заголовок и рабочую область. Для окон со скином определяет стандартные кнопки закрытия и минимизации.

Описание функции перенесено в отдельную статью: Функция 0