Difference between revisions of "Ru/api/kernel"

From KolibriOS wiki
Jump to navigation Jump to search
m
(Добавлено упоминание подфункции 31 функции 68. Добавлено нормальное название страницы.)
 
(14 intermediate revisions by 3 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 65: Line 76:
 
* Подфункция 21 - получить номер слота процесса/потока по идентификатору.
 
* Подфункция 21 - получить номер слота процесса/потока по идентификатору.
 
* Подфункция 22 - операции с окном другого процесса/потока.
 
* Подфункция 22 - операции с окном другого процесса/потока.
* Подфункция 23 - минимизировать все окна
+
* Подфункция 23 - минимизировать все окна.
* Подфункция 24 - установить пределы отрисовки
+
* Подфункция 24 - установить пределы отрисовки.
 +
* Подфункция 25 - управление положением окна относительно других окон.
  
 
[[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 76: Line 95:
 
[[SysFn23/ru|Функция 23]] - ожидать события с таймаутом.
 
[[SysFn23/ru|Функция 23]] - ожидать события с таймаутом.
  
[[SysFn24/ru|Функция 24]] - работа с проигрывателем компакт-дисков
+
[[SysFn24/ru|Функция 24]] - работа с проигрывателем компакт-дисков.
 +
* Подфункция 4 - извлечь лоток привода диска.
 +
* Подфункция 5 - загрузить лоток привода диска.
  
[[SysFn26/ru|Функция 26]] - аппаратный сервис
+
[[SysFn25/ru|Функция 25]] - записать область на слой фона.
 +
 
 +
[[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 91: 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 105: 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 119: 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).
 
* Подфункция 1 - установить область для получения IPC
 
* Подфункция 1 - установить область для получения IPC
 +
* Подфункция 2 - послать сообщение IPC
  
 
[[SysFn61/ru | Функция 61]] - получить параметры для прямого доступа к графике.
 
[[SysFn61/ru | Функция 61]] - получить параметры для прямого доступа к графике.
 +
* Подфункция 1 - разрешение экрана
 +
* Подфункция 2 - число бит на пиксель
 +
* Подфункция 3 - число байт на строку
  
 
[[SysFn62/ru|Функция 62]] - пользовательский доступ к PCI.
 
[[SysFn62/ru|Функция 62]] - пользовательский доступ к PCI.
Line 144: Line 199:
 
* подфункции 4,5,6 - прочитать PCI-регистр.
 
* подфункции 4,5,6 - прочитать PCI-регистр.
 
* подфункции 8,9,10 - записать в PCI-регистр.
 
* подфункции 8,9,10 - записать в PCI-регистр.
* подфункция 11 - инициализировать доступ к MMIO
 
* подфункция 12 - получить линейный адрес MMIO-блока
 
* подфункция 13 - освободить линейные адреса MMIO
 
  
 
[[SysFn63/ru|Функция 63]] - работа с доской отладки.
 
[[SysFn63/ru|Функция 63]] - работа с доской отладки.
 +
* Подфункция 1 - запись байта
 +
* Подфункция 2 - чтение байта
  
 
[[SysFn64/ru|Функция 64]] - перераспределить память приложения.
 
[[SysFn64/ru|Функция 64]] - перераспределить память приложения.
Line 165: Line 219:
 
[[SysFn67/ru|Функция 67]] - изменить положение/размеры окна.
 
[[SysFn67/ru|Функция 67]] - изменить положение/размеры окна.
  
[[SysFn68/ru|Функция 68]] - внутренние системные службы
+
[[SysFn68/ru|Функция 68]] - внутренние системные службы.
 
* Подфункция 0 - получить счётчик переключений задач.
 
* Подфункция 0 - получить счётчик переключений задач.
 
* Подфункция 1 - переключиться на следующий поток выполнения.
 
* Подфункция 1 - переключиться на следующий поток выполнения.
Line 175: Line 229:
 
* Подфункция 13 - освободить блок памяти.
 
* Подфункция 13 - освободить блок памяти.
 
* Подфункция 14 - ожидать извещения от драйвера.
 
* Подфункция 14 - ожидать извещения от драйвера.
* Подфункция 15 - установить обработчик исключений FPU.
 
 
* Подфункция 16 - загрузить драйвер.
 
* Подфункция 16 - загрузить драйвер.
 
* Подфункция 17 - управление драйвером.
 
* Подфункция 17 - управление драйвером.
* Подфункция 18 - установить обработчик исключений SSE.
+
* Подфункция 18 - загрузить DLL с указанием кодировки.
 
* Подфункция 19 - загрузить DLL.
 
* Подфункция 19 - загрузить DLL.
 
* Подфункция 20 - перераспределить блок памяти.
 
* Подфункция 20 - перераспределить блок памяти.
Line 187: Line 240:
 
* Подфункция 26 - освободить страницы памяти
 
* Подфункция 26 - освободить страницы памяти
 
* Подфункция 27 - загузить файл
 
* Подфункция 27 - загузить файл
 +
* Подфункция 28 - загрузить файл с указанием кодировки
 +
* Подфункция 31 - получить данные драйвера
  
 
[[SysFn69/ru|Функция 69]] - отладка.
 
[[SysFn69/ru|Функция 69]] - отладка.
Line 212: Line 267:
 
* Подфункция 9 - создание папки.
 
* Подфункция 9 - создание папки.
  
[[SysFn71/ru|Функция 71]] - параметры окна
+
[[SysFn71/ru|Функция 71]] - параметры окна.
* Подфункция 1 - установить заголовок окна программы.
 
  
 
[[SysFn72/ru|Функция 72]] - послать сообщение окну.
 
[[SysFn72/ru|Функция 72]] - послать сообщение окну.
* Подфункция 1 - послать сообщение с параметром активному окну.
 
  
 
[[SysFn73/ru|Функция 73]] - программный блиттер.
 
[[SysFn73/ru|Функция 73]] - программный блиттер.
  
[[SysFn74/ru|Функция 74]]
+
[[SysFn74/ru|Функция 74]] - работа с сетевыми устройствами.
 
* Подфункция -1 - получить количество активных сетевых устройств.
 
* Подфункция -1 - получить количество активных сетевых устройств.
 
* Подфункция 0 - получить тип сетевого устройства.
 
* Подфункция 0 - получить тип сетевого устройства.
Line 226: Line 279:
 
* Подфункция 2 - сброс сетевого устройства.
 
* Подфункция 2 - сброс сетевого устройства.
 
* Подфункция 3 - остановить сетевое устройство.
 
* Подфункция 3 - остановить сетевое устройство.
 +
* Подфункция 4 - получить указатель на устройство.
 +
* Подфункция 6 - получить количество посланых пакетов.
 +
* Подфункция 7 - получить количество принятых пакетов.
 +
* Подфункция 8 - получить количество посланых байт.
 +
* Подфункция 9 - получить количество принятых байт.
 +
* Подфункция 10 - получить статус соединения.
  
 
[[SysFn75/ru|Функция 75]] - работа с сетевым сокетами.
 
[[SysFn75/ru|Функция 75]] - работа с сетевым сокетами.
Line 233: Line 292:
 
* Подфункция 3 - Listen (Слушать).
 
* Подфункция 3 - Listen (Слушать).
 
* Подфункция 4 - Connect (Соединение).
 
* Подфункция 4 - Connect (Соединение).
* Функция 75, подфункция 5, Accept (Соглашение).
+
* Подфункция 5 - Accept (Соглашение).
* Функция 75, подфункция 6, Send (Послать).
+
* Подфункция 6 - Send (Послать).
* Функция 75, подфункция 7, Receive (Получить).
+
* Подфункция 7 - Receive (Получить).
 
* Подфункция 8 - Set socket options (Задать опции сокета)
 
* Подфункция 8 - Set socket options (Задать опции сокета)
* Подфункция 9 - Get socket options(Получить опции сокета)
+
* Подфункция 9 - Get socket options (Получить опции сокета)
 
* Подфункция 10 - Get socketpair (Получить парный сокет).
 
* Подфункция 10 - Get socketpair (Получить парный сокет).
  
 +
[[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]] - завершить выполнение потока/процесса.
  
 
== Список событий ==
 
== Список событий ==
  
Очередное событие можно получить вызовом одной из функций 10
+
Очередное событие можно получить вызовом одной из [[SysFn10/ru|функций 10]]
(ожидать события), 11 (проверить без ожидания), 23
+
(ожидать события), [[SysFn11/ru|11]] (проверить без ожидания), [[SysFn23/ru|23]]
 
(ожидать в течение заданного времени).
 
(ожидать в течение заданного времени).
 
Эти функции возвращают только те события, которые входят в маску,
 
Эти функции возвращают только те события, которые входят в маску,
устанавливаемую функцией 40. По умолчанию это первые три, чего
+
устанавливаемую [[SysFn40/ru|функцией 40]]. По умолчанию это первые три, чего
 
вполне достаточно для многих приложений.
 
вполне достаточно для многих приложений.
Коды событий:
+
''Коды событий:''
* 1 = сообщение о перерисовке (сбрасывается при вызове функции 0)
+
* 1 = сообщение о перерисовке (сбрасывается при вызове [[SysFn00/ru|функции 0]])
 
* 2 = нажата клавиша на клавиатуре (поступает, только когда окно активно) или нажата "горячая клавиша";
 
* 2 = нажата клавиша на клавиатуре (поступает, только когда окно активно) или нажата "горячая клавиша";
** с