Ru/api/kernel: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
No edit summary
(Добавлено упоминание подфункции 31 функции 68. Добавлено нормальное название страницы.)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:API ядра}}
''' СИСТЕМНЫЕ ФУНКЦИИ KolibriOS'''
''' СИСТЕМНЫЕ ФУНКЦИИ KolibriOS'''


Line 18: Line 20:


[[SysFn05/ru | Функция 5]] - пауза.
[[SysFn05/ru | Функция 5]] - пауза.
[[SysFn06/ru | Функция 6]] - прочитать файл с рамдиска.


[[SysFn07/ru | Функция 7]] - вывести изображение в окно.
[[SysFn07/ru | Функция 7]] - вывести изображение в окно.
Line 32: Line 32:


[[SysFn12/ru|Функция 12]] - начать/закончить перерисовку окна.
[[SysFn12/ru|Функция 12]] - начать/закончить перерисовку окна.
* Подфункция 1 - начать перерисовку окна.
* Подфункция 2 - закончить перерисовку окна.


[[SysFn13/ru|Функция 13]] - нарисовать прямоугольник в окне.
[[SysFn13/ru|Функция 13]] - нарисовать прямоугольник в окне.
Line 38: Line 40:


[[SysFn15/ru | Функция 15]] - работа с фоновой графикой
[[SysFn15/ru | Функция 15]] - работа с фоновой графикой
* Подфункция 1 - установить размер фонового изображения.
* Подфункция 2 - поставить точку на фоновом изображении.
* Подфункция 3 - перерисовать фон.
* Подфункция 4 - установить режим отрисовки фона.
* Подфункция 5 - поместить блок пикселей на фон.
* Подфункция 6 - спроецировать данные фона на адресное пространство процесса.
* Подфункция 7 - закрыть проекцию данных фона на адресное пространство процесса.
* Подфункция 8 - получить координаты последней отрисовки фона.
* Подфункция 9 - перерисовать прямоугольную часть фона.


[[SysFn16/ru|Функция 16]] - сохранить рамдиск на дискету.
[[SysFn16/ru|Функция 16]] - сохранить рамдиск на дискету.
Line 70: Line 81:


[[SysFn20/ru|Функция 20]] - интерфейс MIDI.
[[SysFn20/ru|Функция 20]] - интерфейс MIDI.
* Подфункция 1 - сброс
* Подфункция 2 - вывести байт


[[SysFn21/ru|Функция 21]] - установка системных параметров
[[SysFn21/ru|Функция 21]] - установка системных параметров
* Подфункция 1 - установить базовый порт MPU MIDI.
* Подфункция 2 - установить раскладку клавиатуры.
* Подфункция 5 - установить язык системы.
* Подфункция 11 - разрешить/запретить низкоуровневый доступ к HD.
* Подфункция 12 - разрешить/запретить низкоуровневый доступ к PCI.


[[SysFn22/ru|Функция 22]] - установить системную дату/время.
[[SysFn22/ru|Функция 22]] - установить системную дату/время.
Line 78: Line 96:


[[SysFn24/ru|Функция 24]] - работа с проигрывателем компакт-дисков.
[[SysFn24/ru|Функция 24]] - работа с проигрывателем компакт-дисков.
* Подфункция 4 - извлечь лоток привода диска.
* Подфункция 5 - загрузить лоток привода диска.


[[SysFn25/ru|Функция 25]] - записать область на слой фона.
[[SysFn25/ru|Функция 25]] - записать область на слой фона.


[[SysFn26/ru|Функция 26]] - аппаратный сервис.
[[SysFn26/ru|Функция 26]] - аппаратный сервис.
* Подфункция 1 - получить базовый порт MPU MIDI.
* Подфункция 2 - получить раскладку клавиатуры.
* Подфункция 5 - получить язык системы.
* Подфункция 9 - получить значение счётчика времени.
* Подфункция 10 - получить значение высокоточного счётчика времени.
* Подфункция 11 - узнать, разрешён ли низкоуровневый доступ к HD.
* Подфункция 12 - узнать, разрешён ли низкоуровневый доступ к PCI.


[[SysFn29/ru|Функция 29]] - получить системную дату.
[[SysFn29/ru|Функция 29]] - получить системную дату.


[[SysFn30/ru|Функция 30]] - работа с текущей папкой.
[[SysFn30/ru|Функция 30]] - работа с текущей папкой.
* Подфункция 1 - установить текущую папку для потока.
* Подфункция 2 - получить активную папку для потока.
* Подфункция 3 - установить доп. системную директорию для ядра.
* Подфункция 4 - установить текущую папку с указанием кодировки.
* Подфункция 5 - получить текущую папку с указанием кодировки.


[[SysFn34/ru|Функция 34]] - узнать кому принадлежит точка экрана.
[[SysFn34/ru|Функция 34]] - узнать кому принадлежит точка экрана.
Line 94: Line 126:


[[SysFn37/ru|Функция 37]] - работа с мышью.
[[SysFn37/ru|Функция 37]] - работа с мышью.
* Подфункция 0 - экранные координаты мыши
* Подфункция 1 - координаты мыши относительно окна
* Подфункция 2 - состояния кнопок мыши
* Подфункция 3 - состояния и события кнопок мыши
* Подфункция 4 - загрузить курсор
* Подфункция 5 - установить курсор
* Подфункция 6 - удалить курсор
* Подфункция 7 - данные прокрутки
* Подфункция 8 - загрузить курсор с указанием кодировки


[[SysFn38/ru|Функция 38]] - нарисовать отрезок.
[[SysFn38/ru|Функция 38]] - нарисовать отрезок.


[[SysFn39/ru|Функция 39]] - чтение фона.
[[SysFn39/ru|Функция 39]] - чтение фона.
* Подфункция 1 - получить размер фонового изображения.
* Подфункция 2 - прочитать точку с фонового изображения.
* Подфункция 4 - получить режим отрисовки фона.


[[SysFn40/ru|Функция 40]] - установить маску для ожидаемых событий.
[[SysFn40/ru|Функция 40]] - установить маску для ожидаемых событий.
Line 108: Line 152:


[[SysFn48/ru|Функция 48]] - стили отображения окон
[[SysFn48/ru|Функция 48]] - стили отображения окон
* Подфункция 0 - применить настройки экрана.
* Подфункция 1 - установить стиль кнопок.
* Подфункция 2 - установить стандартные цвета окон.
* Подфункция 3 - получить стандартные цвета окон.
* Подфункция 4 - получить высоту скина.
* Подфункция 5 - получить рабочую область экрана.
* Подфункция 6 - установить рабочую область экрана.
* Подфункция 7 - получить область скина для текста заголовка.
* Подфункция 8 - установить используемый скин окон.
* Подфункция 9 - получить настройку сглаживания шрифтов.
* Подфункция 10 - настроить сглаживание шрифтов.
* Подфункция 11 - получить размер шрифтов.
* Подфункция 12 - установить размер шрифтов.
* Подфункция 13 - установить скин с указанием кодировки.


[[SysFn49/ru|Функция 49]] - Advanced Power Management (APM).
[[SysFn49/ru|Функция 49]] - Advanced Power Management (APM).
Line 122: Line 180:
* Подфункция 4 - аварийный сброс блокировки буфера
* Подфункция 4 - аварийный сброс блокировки буфера


[[SysFn55/ru | Функция 55]] - аудио сервис.
[[SysFn55/ru | Функция 55]] - встроенный спикер.
* Подфункция 55 - начать проигрывать данные на встроенном спикере.
 
Функция 56 - Зарезервирована.


[[SysFn57/ru | Функция 57]] - PCI BIOS.
[[SysFn57/ru | Функция 57]] - PCI BIOS.
[[SysFn58/ru | Функция 58]] - работа с файловой системой.
* Подфункция 0 - прочитать файл/папку.
* Подфункция 8 - LBA-чтение с устройства.
* Подфункция 15 - получить информацию о файловой системе.
Функция 59 - Зарезервирована.


[[SysFn60/ru | Функция 60]] - Inter Process Communication (IPC).
[[SysFn60/ru | Функция 60]] - Inter Process Communication (IPC).
Line 183: Line 231:
* Подфункция 16 - загрузить драйвер.
* Подфункция 16 - загрузить драйвер.
* Подфункция 17 - управление драйвером.
* Подфункция 17 - управление драйвером.
* Подфункция 18 - загрузить DLL с указанием кодировки.
* Подфункция 19 - загрузить DLL.
* Подфункция 19 - загрузить DLL.
* Подфункция 20 - перераспределить блок памяти.
* Подфункция 20 - перераспределить блок памяти.
Line 191: Line 240:
* Подфункция 26 - освободить страницы памяти
* Подфункция 26 - освободить страницы памяти
* Подфункция 27 - загузить файл
* Подфункция 27 - загузить файл
* Подфункция 28 - загрузить файл с указанием кодировки
* Подфункция 31 - получить данные драйвера


[[SysFn69/ru|Функция 69]] - отладка.
[[SysFn69/ru|Функция 69]] - отладка.
Line 222: Line 273:
[[SysFn73/ru|Функция 73]] - программный блиттер.
[[SysFn73/ru|Функция 73]] - программный блиттер.


[[SysFn74/ru|Функция 74]]
[[SysFn74/ru|Функция 74]] - работа с сетевыми устройствами.
* Подфункция -1 - получить количество активных сетевых устройств.
* Подфункция -1 - получить количество активных сетевых устройств.
* Подфункция 0 - получить тип сетевого устройства.
* Подфункция 0 - получить тип сетевого устройства.
Line 249: Line 300:


[[SysFn76/ru|Функция 76]] - сетевые опции и статистика.
[[SysFn76/ru|Функция 76]] - сетевые опции и статистика.
[[SysFn77/ru|Функция 77]] - подсистема POSIX.
* Подфункция 0 - Создать фьютекс
* Подфункция 1 - Удалить фьютекс
* Подфункция 2 - Ожидать
* Подфункция 3 - Разбудить
* Подфункция 4 - Зарезервирована
* Подфункция 5 - Зарезервирована
* Подфункция 6 - Зарезервирована
* Подфункция 7 - Зарезервирована
* Подфункция 8 - open(), пока не реализована
* Подфункция 9 - close(), пока не реализована
* Подфункция 10 - read(), чтение из файла в буфер
* Подфункция 11 - write(), запись данных из буфера в файл
* Подфункция 12 - dup3(), пока не реализована
* Подфункция 13 - pipe2(), создание канала
[[SysFn80/ru|Функция 80]] - работа с файловой системой с указанием кодировки.


[[SysFn-1/ru|Функция -1]] - завершить выполнение потока/процесса.
[[SysFn-1/ru|Функция -1]] - завершить выполнение потока/процесса.
Line 294: Line 363:
* 32 = 0x20 = слишком много процессов
* 32 = 0x20 = слишком много процессов


 
{{System_functions}}
[[Category:Coding]]
[[Category:Coding]]

Latest revision as of 16:12, 4 June 2022


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

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

Перечень функций

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Подфункция 1 - установить размер фонового изображения.
  • Подфункция 2 - поставить точку на фоновом изображении.
  • Подфункция 3 - перерисовать фон.
  • Подфункция 4 - установить режим отрисовки фона.
  • Подфункция 5 - поместить блок пикселей на фон.
  • Подфункция 6 - спроецировать данные фона на адресное пространство процесса.
  • Подфункция 7 - закрыть проекцию данных фона на адресное пространство процесса.
  • Подфункция 8 - получить координаты последней отрисовки фона.
  • Подфункция 9 - перерисовать прямоугольную часть фона.

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

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

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

  • Подфункция 1 - сделать неактивным окно потока
  • Подфункция 2 - завершить процесс/поток по слоту.
  • Подфункция 3 - сделать активным окно заданного потока.
  • Подфункция 4 - получить счётчик пустых тактов в секунду.
  • Подфункция 5 - получить тактовую частоту.
  • Подфункция 6 - сохранить рамдиск в файл на жёстком диске.
  • Подфункция 7 - получить номер активного окна.
  • Подфункция 8 - отключить/разрешить звук спикера.
  • Подфункция 9 - завершение работы системы с параметром.
  • Подфункция 10 - свернуть окно приложения.
  • Подфункция 11 - получить информацию о дисковой подсистеме.
  • Подфункция 13 - получить версию ядра.
  • Подфункция 14 - ожидать начала обратного хода луча развёртки монитора.
  • Подфункция 15 - поместить курсор мыши в центр экрана.
  • Подфункция 16 - Получить размер свободной оперативной памяти.
  • Подфункция 17 - получить размер имеющейся оперативной памяти.
  • Подфункция 18 - завершить процесс/поток по идентификатору.
  • Подфункция 19 - получить/установить настройки мыши.
  • Подфункция 20 - получить информацию об оперативной памяти.
  • Подфункция 21 - получить номер слота процесса/потока по идентификатору.
  • Подфункция 22 - операции с окном другого процесса/потока.
  • Подфункция 23 - минимизировать все окна.
  • Подфункция 24 - установить пределы отрисовки.
  • Подфункция 25 - управление положением окна относительно других окон.

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

  • Подфункция 1 - сброс
  • Подфункция 2 - вывести байт

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

  • Подфункция 1 - установить базовый порт MPU MIDI.
  • Подфункция 2 - установить раскладку клавиатуры.
  • Подфункция 5 - установить язык системы.
  • Подфункция 11 - разрешить/запретить низкоуровневый доступ к HD.
  • Подфункция 12 - разрешить/запретить низкоуровневый доступ к PCI.

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

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

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

  • Подфункция 4 - извлечь лоток привода диска.
  • Подфункция 5 - загрузить лоток привода диска.

Функция 25 - записать область на слой фона.

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

  • Подфункция 1 - получить базовый порт MPU MIDI.
  • Подфункция 2 - получить раскладку клавиатуры.
  • Подфункция 5 - получить язык системы.
  • Подфункция 9 - получить значение счётчика времени.
  • Подфункция 10 - получить значение высокоточного счётчика времени.
  • Подфункция 11 - узнать, разрешён ли низкоуровневый доступ к HD.
  • Подфункция 12 - узнать, разрешён ли низкоуровневый доступ к PCI.

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

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

  • Подфункция 1 - установить текущую папку для потока.
  • Подфункция 2 - получить активную папку для потока.
  • Подфункция 3 - установить доп. системную директорию для ядра.
  • Подфункция 4 - установить текущую папку с указанием кодировки.
  • Подфункция 5 - получить текущую папку с указанием кодировки.

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

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

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

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

  • Подфункция 0 - экранные координаты мыши
  • Подфункция 1 - координаты мыши относительно окна
  • Подфункция 2 - состояния кнопок мыши
  • Подфункция 3 - состояния и события кнопок мыши
  • Подфункция 4 - загрузить курсор
  • Подфункция 5 - установить курсор
  • Подфункция 6 - удалить курсор
  • Подфункция 7 - данные прокрутки
  • Подфункция 8 - загрузить курсор с указанием кодировки

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

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

  • Подфункция 1 - получить размер фонового изображения.
  • Подфункция 2 - прочитать точку с фонового изображения.
  • Подфункция 4 - получить режим отрисовки фона.

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

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

Функция 46 - зарезервировать/освободить группу портов ввода/вывода.

Функция 47 - вывести число в окно.

Функция