查看“Ru/api/kernel”的源代码
←
Ru/api/kernel
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
''' СИСТЕМНЫЕ ФУНКЦИИ KolibriOS 0.7.7.0 ''' Номер функции помещается в регистр eax. Вызов системной функции осуществляется командой "int 0x40". Все регистры, кроме явно указанных в возвращаемом значении, включая регистр флагов eflags, сохраняются. == Перечень функций == [[SysFn00/ru | Функция 0]] - определить и нарисовать окно. [[SysFn01/ru | Функция 1]] - поставить точку в окне. [[SysFn02/ru | Функция 2]] - получить код нажатой клавиши. [[SysFn03/ru | Функция 3]] - получить системное время. [[SysFn04/ru | Функция 4]] - вывести строку текста в окно. [[SysFn05/ru | Функция 5]] - пауза. [[SysFn06/ru | Функция 6]] - прочитать файл с рамдиска. [[SysFn07/ru | Функция 7]] - вывести изображение в окно. [[SysFn08/ru | Функция 8]] - определить/удалить кнопку. [[SysFn09/ru | Функция 9]] - информация о потоке выполнения. [[SysFn10/ru | Функция 10]] - ожидать события. [[SysFn11/ru|Функция 11]] - проверить, есть ли событие, без ожидания. [[SysFn12/ru|Функция 12]] - начать/закончить перерисовку окна. [[SysFn13/ru|Функция 13]] - нарисовать прямоугольник в окне. [[SysFn14/ru|Функция 14]] - получить размеры экрана. [[SysFn15/ru | Функция 15]] - работа с фоновой графикой [[SysFn16/ru|Функция 16]] - сохранить рамдиск на дискету. [[SysFn17/ru|Функция 17]] - получить код нажатой кнопки. [[SysFn18/ru|Функция 18]] - системные настройки и информация [[SysFn20/ru|Функция 20]] - интерфейс MIDI. [[SysFn21/ru|Функция 21]] - установка системных параметров [[SysFn22/ru|Функция 22]] - установить системную дату/время. [[SysFn23/ru|Функция 23]] - ожидать события с таймаутом. [[SysFn24/ru|Функция 24]] - работа с проигрывателем компакт-дисков Функция 25 - установить громкость SBPro. - '''Удалена''' [[SysFn26/ru|Функция 26]] - аппаратный сервис Функция 27 - сведения об этой функции отсутствуют Функция 28 - установить громкость SB16. - '''Удалена''' [[SysFn29/ru|Функция 29]] - получить системную дату. [[SysFn30/ru|Функция 30]] - работа с текущей папкой. Функция 31 - сведения об этой функции отсутствуют Функция 32 - использовалась в ранних версиях КОС для удаления файла с рамдиска.- '''удалена''' Функция 33 - использовалась в ранних версиях КОС для записи файла на рамдиск.-'''удалена''' Функция 34 - сведения об этой функции отсутствуют [[SysFn35/ru|Функция 35]] - прочитать цвет точки на экране. [[SysFn36/ru|Функция 36]] - прочитать область экрана. [[SysFn37/ru|Функция 37]] - работа с мышью. [[SysFn38/ru|Функция 38]] - нарисовать отрезок. [[SysFn39/ru|Функция 39]] - чтение фона. [[SysFn40/ru|Функция 40]] - установить маску для ожидаемых событий. Функция 41 - узнать владельца IRQ. - '''Удалена''' Функция 42 - работа с данными, полученными по IRQ. - '''Удалена''' [[SysFn43/ru|Функция 43]] - ввод/вывод в порт. Функция 44 - определить действия при поступлении IRQ. - '''Удалена''' Функция 45 - зарезервировать/освободить IRQ. - '''Удалена''' [[SysFn46/ru|Функция 46]] - зарезервировать/освободить группу портов ввода/вывода. * '''Внимание:''' Эта функция устарела и может быть удалена в следующих версиях ядра. [[SysFn47/ru|Функция 47]] - вывести число в окно. [[SysFn48/ru|Функция 48]] - стили отображения окон [[SysFn49/ru|Функция 49]] - Advanced Power Management (APM). [[SysFn50/ru|Функция 50]] - установка формы окна. [[SysFn51/ru|Функция 51]] - создать поток. [[SysFn52/ru|Функция 52]] - сетевой сервис. [[SysFn53/ru|Функция 53]] - работа с сетевым сокетами. Функция 54 - Зарезервирована (возвращает 0x12345678 в eax). [[SysFn55/ru | Функция 55]] - аудио сервис. * Подфункция 0 - загрузить данные для SB16. * Подфункция 1 - начать проигрывать данные на SB16. * Подфункция 2 - установить формат данных SB16. * Подфункция 55 - начать проигрывать данные на встроенном спикере. Функция 56 - Зарезервирована. [[SysFn57/ru | Функция 57]] - PCI BIOS. [[SysFn58/ru | Функция 58]] - работа с файловой системой. * Подфункция 0 - прочитать файл/папку. * Подфункция 8 - LBA-чтение с устройства. * Подфункция 15 - получить информацию о файловой системе. Функция 59 - Зарезервирована. [[SysFn60/ru | Функция 60]] - Inter Process Communication (IPC). * Подфункция 1 - установить область для получения IPC [[SysFn61/ru | Функция 61]] - получить параметры для прямого доступа к графике. [[SysFn62/ru|Функция 62]] - пользовательский доступ к PCI. * Подфункция 0 - получить версию PCI-интерфейса. * Подфункция 1 - получить номер последней PCI-шины. * Подфункция 2 - Получить механизм обращения к конфигурационному пространству PCI. * подфункции 4,5,6 - прочитать PCI-регистр. * подфункции 8,9,10 - записать в PCI-регистр. * подфункция 11 - инициализировать доступ к MMIO * подфункция 12 - получить линейный адрес MMIO-блока * подфункция 13 - освободить линейные адреса MMIO [[SysFn63/ru|Функция 63]] - работа с доской отладки. [[SysFn64/ru|Функция 64]] - перераспределить память приложения. [[SysFn65/ru|Функция 65]] - вывести изображение с палитрой в окно. [[SysFn66/ru|Функция 66]] - работа с клавиатурой. * Подфункция 1 - установить режим ввода с клавиатуры. * Подфункция 2 - получить режим ввода с клавиатуры. * Подфункция 3 - получить состояние управляющих клавиш. * Подфункция 4 - установить общесистемную "горячую клавишу". * Подфункция 5 - удалить установленную "горячую клавишу". [[SysFn67/ru|Функция 67]] - изменить положение/размеры окна. [[SysFn68/ru|Функция 68]] - внутренние системные службы *Подфункция 0 - получить счётчик переключений задач. *Подфункция 1 - переключиться на следующий поток выполнения. *Подфункция 2 - кэш + rdpmc. *Подфункция 3 - прочитать MSR-регистр. *Подфункция 4 - записать в MSR-регистр. *Подфункция 11 - инициализировать кучу процесса. *Подфункция 12 - выделить блок памяти. *Подфункция 13 - освободить блок памяти. *Подфункция 14 - ожидать извещения от драйвера. *Подфункция 15 - установить обработчик исключений FPU. *Подфункция 16 - загрузить драйвер. *Подфункция 17 - управление драйвером. *Подфункция 18 - установить обработчик исключений SSE. *Подфункция 19 - загрузить DLL. *Подфункция 20 - перераспределить блок памяти. *Подфункция 22 - открыть именованую область памяти. *Подфункция 23 - закрыть именованую область памяти. [[SysFn69/ru|Функция 69]] - отладка. *Подфункция 0 - определить область данных для отладочных сообщений. *Подфункция 1 - получить состояние регистров отлаживаемого потока. *Подфункция 2 - установить состояние регистров отлаживаемого потока. *Подфункция 3 - отключиться от отлаживаемого процесса. *Подфункция 4 - приостановить поток. *Подфункция 5 - возобновить выполнение потока. *Подфункция 6 - прочитать из памяти отлаживаемого процесса. *Подфункция 7 - записать в память отлаживаемого процесса. *Подфункция 8 - завершить отлаживаемый поток. *Подфункция 9 - установить/снять аппаратную точку останова. [[SysFn70/ru|Функция 70]] - работа с файловой системой с поддержкой длинных имён. * Подфункция 0 - чтение файла с поддержкой длинных имён. * Подфункция 1 - чтение папки с поддержкой длинных имён. * Подфункция 2 - создание/перезапись файла с поддержкой длинных имён. * Подфункция 3 - запись в существующий файл с поддержкой длинных имён. * Подфункция 4 - установка размера файла. * Подфункция 5 - получение информации о файле/папке. * Подфункция 6 - установка атрибутов файла/папки. * Подфункция 7 - запуск программы. * Подфункция 8 - удаление файла/папки. * Подфункция 9 - создание папки. Описание функции перенесено в отдельную статью: [[SysFn71/ru|Функция 71]] - параметры окна * Подфункция 1 - установить заголовок окна программы. [[SysFn72/ru|Функция 72]] - послать сообщение окну. * Подфункция 1 - послать сообщение с параметром активному окну. [[SysFn73/ru|Функция 73]] - программный блиттер. [[SysFn-1/ru|Функция -1]] - завершить выполнение потока/процесса == Список событий == Очередное событие можно получить вызовом одной из функций 10 (ожидать события), 11 (проверить без ожидания), 23 (ожидать в течение заданного времени). Эти функции возвращают только те события, которые входят в маску, устанавливаемую функцией 40. По умолчанию это первые три, чего вполне достаточно для многих приложений. Коды событий: * 1 = сообщение о перерисовке (сбрасывается при вызове функции 0) * 2 = нажата клавиша на клавиатуре (поступает, только когда окно активно) или нажата "горячая клавиша"; ** сбрасывается, когда все клавиши из буфера считаны функцией 2 * 3 = нажата кнопка, определённая ранее функцией 8 (или кнопка закрытия, созданная неявно функцией 0; кнопка минимизации обрабатывается системой и о ней сообщения не приходит; ** поступает, только когда окно активно; ** сбрасывается, когда все кнопки из буфера считаны функцией 17) * 4 = зарезервировано (в текущей реализации никогда не приходит даже при размаскировке функцией 40) * 5 = перерисовывается фон рабочего стола (сбрасывается автоматически после перерисовки, так что если во время перерисовки фона программа не ждёт и не проверяет события, то этого события она не заметит) * 6 = событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении) * 7 = произошло событие IPC (смотри функцию 60 - Inter Process Communication; сбрасывается при прочтении) * 8 = произошло сетевое событие (сбрасывается при прочтении; смотри работу с сетью) * 9 = произошло отладочное событие (сбрасывается при прочтении; смотри отладочную подсистему) * 16..31 - ранее использовались для проверки соответвующих IRQ (16=IRQ0, 31=IRQ15) (на новых версиях ядра не генерируются) == Коды ошибок файловой системы == * 0 = успешно * 1 = не определена база и/или раздел жёсткого диска (подфункциями 7, 8 функции 21) * 2 = функция не поддерживается для данной файловой системы * 3 = неизвестная файловая система * 4 = зарезервировано, никогда не возвращается в текущей реализации * 5 = файл не найден * 6 = файл закончился * 7 = указатель вне памяти приложения * 8 = диск заполнен * 9 = таблица FAT разрушена * 10 = доступ запрещён * 11 = ошибка устройства При запуске программы возможны также следующие коды ошибок: * 30 = 0x1E = недостаточно памяти * 31 = 0x1F = файл не является исполнимым * 32 = 0x20 = слишком много процессов [[Category:Coding]]
本页使用的模板:
Template:Navbox
(
查看源代码
)
Template:Nowrap
(
查看源代码
)
Template:System functions
(
查看源代码
)
返回至“
Ru/api/kernel
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
变体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息