Ru/api/kernel: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
Line 565: Line 565:
== Функция 60 - Inter Process Communication (IPC). ==
== Функция 60 - Inter Process Communication (IPC). ==


IPC применяется для посылок сообщений от одного процесса/потока
Описание функции перенесено в отдельную статью: [[SysFn60/ru | Функция 60]]
другому. При этом следует предварительно договориться о том, как
интерпретировать конкретное сообщение.
 
=== Подфункция 1 - установить область для получения IPC ===
Вызывается процессом-приёмником.
Параметры:
  * eax = 60 - номер функции
  * ebx = 1 - номер подфункции
  * ecx = указатель на буфер
  * edx = размер буфера
Возвращаемое значение:
  * eax = 0 - всегда успешно
Формат IPC-буфера:
  * +0: dword: если здесь не 0, то буфер считается заблокированным;
    блокируйте/разблокируйте буфер, когда вы с ним активно работаете
    и вам надо, чтобы извне не изменялись данные буфера
    (не поступали новые сообщения)
  * +4: dword: занято места в буфере (в байтах)
  * +8: первое сообщение
  * +8+n: второе сообщение
  * ...
Формат сообщения:
  * +0: dword: PID процесса/потока, пославшего сообщение
  * +4: dword: длина сообщения (не считая этот заголовок)
  * +8: n*byte: данные сообщения
 
=== Подфункция 2 - послать сообщение IPC. ===-
Вызывается процессом-инициатором.
Параметры:
  * eax = 60 - номер функции
  * ebx = 2 - номер подфункции
  * ecx = PID приёмника
  * edx = указатель на данные сообщения
  * esi = длина сообщения (в байтах)
Возвращаемое значение:
  * eax = 0 - успешно
  * eax = 1 - приёмник не определил буфер для IPC-сообщений
    (может быть, ещё не успел, а может быть, это не тот поток,
    который нужен)
  * eax = 2 - приёмник заблокировал IPC-буфер;
    попробуйте немного подождать
  * eax = 3 - переполнение IPC-буфера приёмника
  * eax = 4 - процесса/потока с таким PID не существует
Замечания:
  * Система сразу после записи IPC-сообщения в буфер посылает
    потоку-приёмнику событие с кодом 7 (см. коды событий).


Подфункция 1 - установить область для получения IPC


== Функция 61 - получить параметры для прямого доступа к графике. ==
== Функция 61 - получить параметры для прямого доступа к графике. ==

Revision as of 15:46, 10 April 2010

СИСТЕМНЫЕ ФУНКЦИИ KolibriOS 0.7.7.0

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


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

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

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

Функция 1 - поставить точку в окне.

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

Функция 2 - получить код нажатой клавиши.

Извлекает из буфера код нажатой клавиши.

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

Функция 3 - получить системное время.

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

Функция 4 - вывести строку текста в окно.

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

Функция 5 - пауза.

Задерживает выполнение программы на заданное время.

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

Функция 6 - прочитать файл с рамдиска.

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

Функция 7 - вывести изображение в окно.

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

Функция 8 - определить/удалить кнопку.

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

Функция 9 - информация о потоке выполнения.

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

Функция 10 - ожидать события.

Если очередь сообщений пуста, то ждет появления сообщения в очереди. В таком состоянии поток не получает процессорного времени. Затем считывает сообщение из очереди.

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

Функция 11 - проверить, есть ли событие, без ожидания.

Если в очереди сообщений есть какое-то событие, то считывает и возвращает его. Если очередь пуста, возвращает нуль.

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

Функция 12 - начать/закончить перерисовку окна.

Подфункция 1 - начать перерисовку окна. Подфункция 2 - закончить перерисовку окна.

Перенесены в отдельную статью: Функция 12

Функция 13 - нарисовать прямоугольник в окне.

Функция перенесена в статью Функция 13

Функция 14 - получить размеры экрана.

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

Функция 15 - работа с фоновой графикой

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

Функция 16 - сохранить рамдиск на дискету.

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

Функция 17 - получить код нажатой кнопки.

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

Функция 18 - системные настройки и информация

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

Функция 20 - интерфейс MIDI.

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

Функция 21 - установка системных параметров

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

Функция 22 - установить системную дату/время.

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

Функция 23 - ожидать события с таймаутом.

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

Функция 24 - работа с проигрывателем компакт-дисков

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

Функция 25 - установить громкость SBPro.

Удалена

Функция 26 - аппаратный сервис

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

Функция 27

сведения об этой функции отсутствуют

Функция 28 - установить громкость SB16.

Удалена

Функция 29 - получить системную дату.

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

Функция 30 - работа с текущей папкой.

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

Функция 31

сведения об этой функции отсутствуют

Функция 32

Системная функция с этим номером использовалась в ранних версиях КОС для удаления файла с рамдиска. удалена

Функция 33

Системная функция с этим номером использовалась в ранних версиях КОС для записи файла на рамдиск. удалена

Функция 34

сведения об этой функции отсутствуют

Функция 35 - прочитать цвет точки на экране.

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

Функция 36 - прочитать область экрана.

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

Функция 37 - работа с мышью.

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

Функция 38 - нарисовать отрезок.

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

Функция 39 - чтение фона.

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

Функция 40 - установить маску для ожидаемых событий.

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

Функция 41 - узнать владельца IRQ.

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

Функция 42 - работа с данными, полученными по IRQ.

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