Difference between revisions of "Ru/api/kernel"
Jump to navigation
Jump to search
Vitalkrilov (talk | contribs) (Добавлено упоминание подфункции 31 функции 68. Добавлено нормальное название страницы.) |
|||
(13 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]] - пауза. | ||
− | |||
− | |||
[[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 77: | 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 92: | 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 106: | 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 120: | Line 180: | ||
* Подфункция 4 - аварийный сброс блокировки буфера | * Подфункция 4 - аварийный сброс блокировки буфера | ||
− | [[SysFn55/ru | Функция 55]] - | + | [[SysFn55/ru | Функция 55]] - встроенный спикер. |
− | |||
− | |||
− | |||
[[SysFn57/ru | Функция 57]] - PCI BIOS. | [[SysFn57/ru | Функция 57]] - PCI BIOS. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[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 145: | Line 199: | ||
* подфункции 4,5,6 - прочитать PCI-регистр. | * подфункции 4,5,6 - прочитать PCI-регистр. | ||
* подфункции 8,9,10 - записать в PCI-регистр. | * подфункции 8,9,10 - записать в PCI-регистр. | ||
− | |||
− | |||
− | |||
[[SysFn63/ru|Функция 63]] - работа с доской отладки. | [[SysFn63/ru|Функция 63]] - работа с доской отладки. | ||
+ | * Подфункция 1 - запись байта | ||
+ | * Подфункция 2 - чтение байта | ||
[[SysFn64/ru|Функция 64]] - перераспределить память приложения. | [[SysFn64/ru|Функция 64]] - перераспределить память приложения. | ||
Line 176: | Line 229: | ||
* Подфункция 13 - освободить блок памяти. | * Подфункция 13 - освободить блок памяти. | ||
* Подфункция 14 - ожидать извещения от драйвера. | * Подфункция 14 - ожидать извещения от драйвера. | ||
− | |||
* Подфункция 16 - загрузить драйвер. | * Подфункция 16 - загрузить драйвер. | ||
* Подфункция 17 - управление драйвером. | * Подфункция 17 - управление драйвером. | ||
− | * Подфункция 18 - | + | * Подфункция 18 - загрузить DLL с указанием кодировки. |
* Подфункция 19 - загрузить DLL. | * Подфункция 19 - загрузить DLL. | ||
* Подфункция 20 - перераспределить блок памяти. | * Подфункция 20 - перераспределить блок памяти. | ||
Line 188: | Line 240: | ||
* Подфункция 26 - освободить страницы памяти | * Подфункция 26 - освободить страницы памяти | ||
* Подфункция 27 - загузить файл | * Подфункция 27 - загузить файл | ||
+ | * Подфункция 28 - загрузить файл с указанием кодировки | ||
+ | * Подфункция 31 - получить данные драйвера | ||
[[SysFn69/ru|Функция 69]] - отладка. | [[SysFn69/ru|Функция 69]] - отладка. | ||
Line 214: | Line 268: | ||
[[SysFn71/ru|Функция 71]] - параметры окна. | [[SysFn71/ru|Функция 71]] - параметры окна. | ||
− | |||
[[SysFn72/ru|Функция 72]] - послать сообщение окну. | [[SysFn72/ru|Функция 72]] - послать сообщение окну. | ||
− | |||
[[SysFn73/ru|Функция 73]] - программный блиттер. | [[SysFn73/ru|Функция 73]] - программный блиттер. | ||
− | [[SysFn74/ru|Функция 74]] | + | [[SysFn74/ru|Функция 74]] - работа с сетевыми устройствами. |
* Подфункция -1 - получить количество активных сетевых устройств. | * Подфункция -1 - получить количество активных сетевых устройств. | ||
* Подфункция 0 - получить тип сетевого устройства. | * Подфункция 0 - получить тип сетевого устройства. | ||
Line 227: | Line 279: | ||
* Подфункция 2 - сброс сетевого устройства. | * Подфункция 2 - сброс сетевого устройства. | ||
* Подфункция 3 - остановить сетевое устройство. | * Подфункция 3 - остановить сетевое устройство. | ||
+ | * Подфункция 4 - получить указатель на устройство. | ||
+ | * Подфункция 6 - получить количество посланых пакетов. | ||
+ | * Подфункция 7 - получить количество принятых пакетов. | ||
+ | * Подфункция 8 - получить количество посланых байт. | ||
+ | * Подфункция 9 - получить количество принятых байт. | ||
+ | * Подфункция 10 - получить статус соединения. | ||
[[SysFn75/ru|Функция 75]] - работа с сетевым сокетами. | [[SysFn75/ru|Функция 75]] - работа с сетевым сокетами. | ||
Line 234: | Line 292: | ||
* Подфункция 3 - Listen (Слушать). | * Подфункция 3 - Listen (Слушать). | ||
* Подфункция 4 - Connect (Соединение). | * Подфункция 4 - Connect (Соединение). | ||
− | * | + | * Подфункция 5 - Accept (Соглашение). |
− | * | + | * Подфункция 6 - Send (Послать). |
− | * | + | * Подфункция 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]] - сетевые опции и статистика. | [[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 247: | Line 323: | ||
== Список событий == | == Список событий == | ||
− | Очередное событие можно получить вызовом одной из функций 10 | + | Очередное событие можно получить вызовом одной из [[SysFn10/ru|функций 10]] |
− | (ожидать события), 11 (проверить без ожидания), 23 | + | (ожидать события), [[SysFn11/ru|11]] (проверить без ожидания), [[SysFn23/ru|23]] |
(ожидать в течение заданного времени). | (ожидать в течение заданного времени). | ||
Эти функции возвращают только те события, которые входят в маску, | Эти функции возвращают только те события, которые входят в маску, | ||
− | устанавливаемую функцией 40. По умолчанию это первые три, чего | + | устанавливаемую [[SysFn40/ru|функцией 40]]. По умолчанию это первые три, чего |
вполне достаточно для многих приложений. | вполне достаточно для многих приложений. | ||
− | Коды событий: | + | ''Коды событий:'' |
− | * 1 = сообщение о перерисовке (сбрасывается при вызове функции 0) | + | * 1 = сообщение о перерисовке (сбрасывается при вызове [[SysFn00/ru|функции 0]]) |
* 2 = нажата клавиша на клавиатуре (поступает, только когда окно активно) или нажата "горячая клавиша"; | * 2 = нажата клавиша на клавиатуре (поступает, только когда окно активно) или нажата "горячая клавиша"; | ||
− | ** сбрасывается, когда все клавиши из буфера считаны функцией 2 | + | ** сбрасывается, когда все клавиши из буфера считаны [[SysFn02/ru|функцией 2]] |
* 3 = нажата кнопка, определённая ранее функцией 8 (или кнопка закрытия, созданная неявно функцией 0; кнопка минимизации обрабатывается системой и о ней сообщения не приходит; | * 3 = нажата кнопка, определённая ранее функцией 8 (или кнопка закрытия, созданная неявно функцией 0; кнопка минимизации обрабатывается системой и о ней сообщения не приходит; | ||
** поступает, только когда окно активно; | ** поступает, только когда окно активно; | ||
− | ** сбрасывается, когда все кнопки из буфера считаны функцией 17) | + | ** сбрасывается, когда все кнопки из буфера считаны [[SysFn17/ru|функцией 17]]) |
− | * 4 = зарезервировано (в текущей реализации никогда не приходит даже при размаскировке функцией 40) | + | * 4 = зарезервировано (в текущей реализации никогда не приходит даже при размаскировке [[SysFn40/ru|функцией 40]]) |
* 5 = перерисовывается фон рабочего стола (сбрасывается автоматически после перерисовки, так что если во время перерисовки фона программа не ждёт и не проверяет события, то этого события она не заметит) | * 5 = перерисовывается фон рабочего стола (сбрасывается автоматически после перерисовки, так что если во время перерисовки фона программа не ждёт и не проверяет события, то этого события она не заметит) | ||
* 6 = событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении) |