forked from KolibriOS/kolibrios
system/docs: align docs with actual kernel, add constants for SF 51
This commit is contained in:
@@ -1985,7 +1985,7 @@ path db 'HD0/1',0
|
||||
подфункция 2 функции 15.
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_BACKGROUND_GET_RECT (39)
|
||||
eax - SF_BACKGROUND_GET (39)
|
||||
======================================================================
|
||||
== Функция 39, подфункция 3 - получить прямоугольную область фона =
|
||||
======================================================================
|
||||
@@ -2169,7 +2169,7 @@ path db 'HD0/1',0
|
||||
* ebx = 2 - номер подфункции
|
||||
* ecx = указатель на таблицу цветов
|
||||
* edx = размер таблицы цветов
|
||||
(должен быть 40 байт для будущей совместимости)
|
||||
(до 192 байт; 40 байт для базовой структуры)
|
||||
Формат таблицы цветов указан в описании подфункции 3.
|
||||
Возвращаемое значение:
|
||||
* функция не возвращает значения
|
||||
@@ -2201,16 +2201,16 @@ path db 'HD0/1',0
|
||||
* функция не возвращает значения
|
||||
Формат таблицы цветов: каждый элемент -
|
||||
dword-значение цвета 0x00RRGGBB
|
||||
* +0: dword: none - зарезервировано
|
||||
* +4: dword: none - зарезервировано
|
||||
* +0: dword: frame
|
||||
* +4: dword: grab
|
||||
* +8: dword: work_dark - темный цвет рабочей области для придания
|
||||
объемна элементам интерфейса
|
||||
* +12 = +0xC: dword: work_light - светлый цвет рабочей области для
|
||||
придания объемна элементам интерфейса
|
||||
* +16 = +0x10: dword: grab_text - цвет текста на заголовке
|
||||
* +20 = +0x14: dword: work - цвет рабочей области
|
||||
* +24 = +0x18: dword: button - цвет кнопки в рабочей области
|
||||
* +28 = +0x1C: dword: button_text - цвет текста на кнопке
|
||||
* +24 = +0x18: dword: work_button - цвет кнопки в рабочей области
|
||||
* +28 = +0x1C: dword: work_button_text - цвет текста на кнопке
|
||||
в рабочей области
|
||||
* +32 = +0x20: dword: work_text - цвет текста в рабочей области
|
||||
* +36 = +0x24: dword: graph - цвет графики в рабочей области
|
||||
@@ -2220,8 +2220,10 @@ dword-значение цвета 0x00RRGGBB
|
||||
sc system_colors ; объявление переменной
|
||||
... ; где-то надо вызвать
|
||||
; описываемую функцию с ecx=sc
|
||||
mov ecx, [sc.button_text] ; читаем цвет текста
|
||||
mov ecx, [sc.work_button_text] ; читаем цвет текста
|
||||
; на кнопке в рабочей области
|
||||
* Таблица может быть больше (до 192 байт); дополнительные поля
|
||||
копируются как есть и интерпретируются скинами.
|
||||
* Использование/неиспользование этих цветов - дело исключительно
|
||||
самой программы. Для использования нужно просто при вызове функций
|
||||
рисования указывать цвет, взятый из этой таблицы.
|
||||
@@ -2505,16 +2507,18 @@ dword-значение цвета 0x00RRGGBB
|
||||
* иначе eax = TID - идентификатор потока
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_CREATE_THREAD (51)
|
||||
eax - SF_CREATE_THREAD (51) / SF_THREAD_CONTROL (51)
|
||||
ebx - SSF_CREATE_THREAD (1), SSF_GET_CURR_THREAD_SLOT (2),
|
||||
SSF_GET_THREAD_PRIORITY (3), SSF_SET_THREAD_PRIORITY (4)
|
||||
======================================================================
|
||||
===================== Функция 51, подфункция 2 =======================
|
||||
=================== Получить номер слота потока ======================
|
||||
============= Получить номер слота текущего потока ===================
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 51 - номер функции
|
||||
* ebx = 2 - номер подфункции
|
||||
Возвращаемое значение:
|
||||
* eax = номер слота потока
|
||||
* eax = номер слота текущего потока
|
||||
|
||||
======================================================================
|
||||
===================== Функция 51, подфункция 3 =======================
|
||||
@@ -3358,66 +3362,66 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
ebx - SSF_MEM_FREE (13)
|
||||
======================================================================
|
||||
====================== Функция 68, подфункция 14 =====================
|
||||
====== Ожидать получения сигнала от других приложений/драйверов. =====
|
||||
========== Получить событие ядра (обертка GetEvent). ==========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 68 - номер функции
|
||||
* ebx = 14 - номер подфункции
|
||||
* ecx = указатель на буфер для информации (24 байта)
|
||||
* ecx = указатель на буфер данных (6 dword = 24 байта)
|
||||
Возвращаемое значение:
|
||||
* eax разрушается
|
||||
* eax = дескриптор события
|
||||
* буфер, на который указывает ecx, содержит следующую информацию:
|
||||
* +0: dword: идентификатор последующих данных сигнала
|
||||
* +4: данные принятого сигнала (20 байт), формат которых
|
||||
определяется первым dword-ом
|
||||
* +0: dword: EVENT.code (идентификатор последующих данных)
|
||||
* +4: 5 dword: EVENT.data, формат зависит от EVENT.code
|
||||
Замечания:
|
||||
* Бесконечно ожидает любое событие в очереди событий текущего потока.
|
||||
* Сбрасывает байт приоритета в буфере.
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_SYS_MISC (68)
|
||||
ebx - SSF_WAIT_SIGNAL (14)
|
||||
======================================================================
|
||||
=========== Функция 68, подфункция 16 - загрузить драйвер. ===========
|
||||
=========== Функция 68, подфункция 16 - получить сервис. ===========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 68 - номер функции
|
||||
* ebx = 16 - номер подфункции
|
||||
* ecx = указатель на ASCIIZ-строку с именем драйвера
|
||||
* ecx = указатель на ASCIIZ-строку с именем сервиса
|
||||
Возвращаемое значение:
|
||||
* eax = 0 - неудача
|
||||
* иначе eax = хэндл драйвера
|
||||
* eax = указатель на структуру SRV, 0 при ошибке
|
||||
Замечания:
|
||||
* Если драйвер ещё не загружен, он загружается;
|
||||
если драйвер уже загружен, ничего не меняется.
|
||||
* Имя драйвера чувствительно к регистру символов.
|
||||
* Если сервис ещё не загружен, ядро пытается загрузить его из
|
||||
/sys/drivers/<name>.sys.
|
||||
* Имя сервиса чувствительно к регистру символов.
|
||||
Максимальная длина имени - 16 символов, включая завершающий
|
||||
нулевой символ, остальные символы игнорируются.
|
||||
* Драйвер с именем ABC загружается из файла /sys/drivers/ABC.sys.
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_SYS_MISC (68)
|
||||
ebx - SSF_LOAD_DRIVER (16)
|
||||
ebx - SSF_GET_SERVICE (16) / SSF_LOAD_DRIVER (16)
|
||||
======================================================================
|
||||
========== Функция 68, подфункция 17 - управление драйвером. =========
|
||||
========== Функция 68, подфункция 17 - вызвать сервис. =========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 68 - номер функции
|
||||
* ebx = 17 - номер подфункции
|
||||
* ecx = указатель на управляющую структуру:
|
||||
* +0: dword: хэндл драйвера
|
||||
* +4: dword: код функции драйвера
|
||||
* +8: dword: указатель на входные данные
|
||||
* +12 = +0xC: dword: размер входных данных
|
||||
* +16 = +0x10: dword: указатель на выходные данные
|
||||
* +20 = +0x14: dword: размер выходных данных
|
||||
* ecx = указатель на структуру IOCTL:
|
||||
* +0: dword: хэндл сервиса (указатель на SRV)
|
||||
* +4: dword: io_code
|
||||
* +8: dword: указатель на входные данные
|
||||
* +12: dword: размер входных данных
|
||||
* +16: dword: указатель на выходные данные
|
||||
* +20: dword: размер выходных данных
|
||||
Возвращаемое значение:
|
||||
* eax = определяется драйвером
|
||||
* eax = значение, возвращаемое обработчиком сервиса, -1 при ошибке
|
||||
Замечания:
|
||||
* Коды функций и структура входных/выходных данных
|
||||
определяются драйвером.
|
||||
* Предварительно должен быть получен хэндл драйвера подфункцией 16.
|
||||
определяются сервисом.
|
||||
* Хэндл сервиса можно получить подфункцией 16.
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_SYS_MISC (68)
|
||||
ebx - SSF_CONTROL_DRIVER (17)
|
||||
ebx - SSF_CALL_SERVICE (17) / SSF_CONTROL_DRIVER (17)
|
||||
======================================================================
|
||||
== Функция 68, подфункция 18 - загрузить DLL с указанием кодировки. ==
|
||||
======================================================================
|
||||
@@ -3482,7 +3486,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
Параметры:
|
||||
* eax = 68 - номер функции
|
||||
* ebx = 21 - номер подфункции
|
||||
* ecx = указатель на ASCIIZ-строку с именем драйвера
|
||||
* ecx = указатель на ASCIIZ-строку с путем к файлу драйвера
|
||||
* edx = указатель на командную строку
|
||||
Возвращаемое значение:
|
||||
* eax = 0 - неудача
|
||||
@@ -3674,22 +3678,40 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
* функция загружает и, при необходимости, распаковывает файл (kunpack)
|
||||
|
||||
======================================================================
|
||||
======== Функция 68, подфункция 29 - allocate ring memory. =========
|
||||
======== Функция 68, подфункция 29 - выделить кольцевую память. =========
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 68 - function number
|
||||
* ebx = 29 - subfunction number
|
||||
* ecx = required size in bytes
|
||||
Returned value:
|
||||
* eax = 0 - failed
|
||||
* eax = pointer to the allocated ring
|
||||
Remarks:
|
||||
* The requested size must be an exact multiple of pagesize (4 Kb)
|
||||
* The function allocates memory in such a way that you can read and
|
||||
write beyond the size of the allocated memory and will reach the
|
||||
beginning of the buffer again.
|
||||
Параметры:
|
||||
* eax = 68 - номер функции
|
||||
* ebx = 29 - номер подфункции
|
||||
* ecx = требуемый размер в байтах
|
||||
Возвращаемое значение:
|
||||
* eax = 0 - неудача
|
||||
* eax = указатель на выделенное кольцо
|
||||
Замечания:
|
||||
* Запрошенный размер должен быть кратен размеру страницы (4 Кб).
|
||||
* Память выделяется так, что доступ за пределами буфера приводит
|
||||
к чтению/записи в его начало.
|
||||
|
||||
|
||||
======================================================================
|
||||
=========== Функция 68, подфункция 30 - выгрузить драйвер. ===========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 68 - номер функции
|
||||
* ebx = 30 - номер подфункции
|
||||
* ecx = указатель на структуру SRV (хэндл драйвера)
|
||||
* edx = указатель на командную строку (может быть 0)
|
||||
Возвращаемое значение:
|
||||
* eax = -1 - неверные параметры
|
||||
* eax = -2 - ошибка при освобождении памяти драйвера
|
||||
* иначе eax = указатель на следующую структуру SRV (бывший SRV.fd)
|
||||
Замечания:
|
||||
* Перед выгрузкой вызывается точка входа драйвера с DRV_EXIT.
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_SYS_MISC (68)
|
||||
ebx - 30
|
||||
|
||||
======================================================================
|
||||
======== Функция 68, подфункция 31 - получить данные драйвера. =======
|
||||
======================================================================
|
||||
@@ -4516,17 +4538,17 @@ Remarks:
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_BLITTER (73)
|
||||
======================================================================
|
||||
=================== Функция 74, подфункция -1 ========================
|
||||
=================== Функция 74, подфункция 255 ========================
|
||||
=========== Получить количество активных сетевых устройств. ==========
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 74 - номер функции
|
||||
* bl = -1 - номер подфункции
|
||||
* bl = 255 - номер подфункции
|
||||
Возвращаемое значение:
|
||||
* eax = количество активных сетевых устройств
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_DEVICE_COUNT (255)
|
||||
======================================================================
|
||||
==== Функция 74, подфункция 0, Получить тип сетевого устройства. =====
|
||||
@@ -4539,7 +4561,7 @@ Remarks:
|
||||
* eax = тип устройства
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_DEVICE_TYPE (0)
|
||||
======================================================================
|
||||
==== Функция 74, подфункция 1, Получить имя сетевого устройства. =====
|
||||
@@ -4554,7 +4576,7 @@ Remarks:
|
||||
* В случае успеха в буфер записывается имя сетевого устройства
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_DEVICE_NAME (1)
|
||||
======================================================================
|
||||
======= Функция 74, подфункция 2, Сброс сетевого устройства. =========
|
||||
@@ -4567,7 +4589,7 @@ Remarks:
|
||||
* eax = -1 для ошибки
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RESET_DEVICE (2)
|
||||
======================================================================
|
||||
====== Функция 74, подфункция 3, Остановить сетевое устройство. ======
|
||||
@@ -4580,7 +4602,7 @@ Remarks:
|
||||
* eax = -1 для ошибки
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_STOP_DEVICE (3)
|
||||
======================================================================
|
||||
===== Функция 74, подфункция 4, Получить указатель на устройство =====
|
||||
@@ -4593,7 +4615,7 @@ Remarks:
|
||||
* eax = указатель, -1 для ошибки
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_DEVICE_POINTER (4)
|
||||
======================================================================
|
||||
=== Функция 74, подфункция 6, Получить количество посланых пакетов ===
|
||||
@@ -4606,7 +4628,7 @@ Remarks:
|
||||
* eax = количество с момента старта устройства, -1 для ошибки
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_TX_PACKET_COUNT (6)
|
||||
======================================================================
|
||||
=== Функция 74, подфункция 7, Получить количество принятых пакетов ===
|
||||
@@ -4619,7 +4641,7 @@ Remarks:
|
||||
* eax = количество с момента старта устройства, -1 для ошибки
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RX_PACKET_COUNT (7)
|
||||
======================================================================
|
||||
==== Функция 74, подфункция 8, Получить количество посланых байт. ====
|
||||
@@ -4633,7 +4655,7 @@ Remarks:
|
||||
* ebx = старшая часть
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_TX_BYTE_COUNT (8)
|
||||
======================================================================
|
||||
==== Функция 74, подфункция 9, Получить количество принятых байт. ====
|
||||
@@ -4647,7 +4669,7 @@ Remarks:
|
||||
* ebx = старшая часть
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RX_BYTE_COUNT (9)
|
||||
======================================================================
|
||||
======= Функция 74, подфункция 10, Получить статус соединения. =======
|
||||
@@ -4668,7 +4690,7 @@ Remarks:
|
||||
10b = флаг полного дуплекса
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_LINK_STATUS (10)
|
||||
======================================================================
|
||||
== Функция 74.11, Получить количество пакетов переданных с ошибкой. ==
|
||||
@@ -4682,7 +4704,7 @@ Remarks:
|
||||
устройства, -1 при ошибке
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_TX_PACKET_ERROR_COUNT (11)
|
||||
======================================================================
|
||||
=== Функция 74.12, Получить число пакетов отброшенных при отправке. ==
|
||||
@@ -4696,7 +4718,7 @@ Remarks:
|
||||
-1 при ошибке
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_TX_PACKET_DROP_COUNT (12)
|
||||
======================================================================
|
||||
=== Функция 74.13, Получить число пакетов утерянных при отправке. ====
|
||||
@@ -4710,7 +4732,7 @@ Remarks:
|
||||
-1 при ошибке
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_TX_PACKET_MISS_COUNT (13)
|
||||
|
||||
======================================================================
|
||||
@@ -4725,7 +4747,7 @@ Remarks:
|
||||
устройства, -1 при ошибке
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RX_PACKET_ERROR_COUNT (14)
|
||||
======================================================================
|
||||
== Функция 74.15, Получить число пакетов отброшенных при получении. ==
|
||||
@@ -4739,8 +4761,8 @@ Remarks:
|
||||
-1 при ошибке
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
bl - SSF_RX_PACKET_DROP_COUNT (12)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RX_PACKET_DROP_COUNT (15)
|
||||
======================================================================
|
||||
=== Функция 74.16, Получить число пакетов утерянных при получении. ===
|
||||
======================================================================
|
||||
@@ -4753,7 +4775,7 @@ Remarks:
|
||||
-1 при ошибке
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RX_PACKET_MISS_COUNT (16)
|
||||
======================================================================
|
||||
============== Функция 75, подфункция 0, Открыть сокет. ==============
|
||||
@@ -4945,7 +4967,7 @@ Remarks:
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_SOCKET (75)
|
||||
bl - SSF_GET_PAIR (10)
|
||||
bl - SSF_GET_PAIR (10) / SSF_SOCKET_PAIR (10)
|
||||
======================================================================
|
||||
=============== Функция 76, Сетевые опции и статистика. ==============
|
||||
======================================================================
|
||||
@@ -4990,6 +5012,32 @@ Remarks:
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_NETWORK_PROTOCOL (76)
|
||||
ebx - SSF_ETHERNET_READ_MAC (0x0000)
|
||||
ebx - SSF_IP4_PACKETS_SENT (0x10000)
|
||||
ebx - SSF_IP4_PACKETS_RECEIVED (0x10001)
|
||||
ebx - SSF_IP4_READ_IP (0x10002)
|
||||
ebx - SSF_IP4_WRITE_IP (0x10003)
|
||||
ebx - SSF_IP4_READ_DNS (0x10004)
|
||||
ebx - SSF_IP4_WRITE_DNS (0x10005)
|
||||
ebx - SSF_IP4_READ_SUBNET (0x10006)
|
||||
ebx - SSF_IP4_WRITE_SUBNET (0x10007)
|
||||
ebx - SSF_IP4_READ_GATEWAY (0x10008)
|
||||
ebx - SSF_IP4_WRITE_GATEWAY (0x10009)
|
||||
ebx - SSF_ICMP_PACKETS_SENT (0x20000)
|
||||
ebx - SSF_ICMP_PACKETS_RECEIVED (0x20001)
|
||||
ebx - SSF_ICMP_ECHO_REPLY (0x20003)
|
||||
ebx - SSF_UDP_PACKETS_SENT (0x30000)
|
||||
ebx - SSF_UDP_PACKETS_RECEIVED (0x30001)
|
||||
ebx - SSF_TCP_PACKETS_SENT (0x40000)
|
||||
ebx - SSF_TCP_PACKETS_RECEIVED (0x40001)
|
||||
ebx - SSF_ARP_PACKETS_SENT (0x50000)
|
||||
ebx - SSF_ARP_PACKETS_RECEIVED (0x50001)
|
||||
ebx - SSF_ARP_GET_ENTRY_COUNT (0x50002)
|
||||
ebx - SSF_ARP_READ_ENTRY (0x50003)
|
||||
ebx - SSF_ARP_ADD_STATIC_ENTRY (0x50004)
|
||||
ebx - SSF_ARP_DEL_ENTRY (0x50005)
|
||||
ebx - SSF_ARP_SEND_ANNOUNCE (0x50006)
|
||||
ebx - SSF_ARP_CONFLICTS_COUNT (0x50007)
|
||||
======================================================================
|
||||
============= Функция 77, подфункция 0, Создать фьютекс. =============
|
||||
======================================================================
|
||||
@@ -5026,7 +5074,7 @@ Remarks:
|
||||
* ebx = 2 - номер подфункции
|
||||
* ecx = дескриптор фьютекса
|
||||
* edx = контрольное значение
|
||||
* esi = таймаут в сотых секунды, 0 - ждать бесконечно
|
||||
* esi = таймаут в тиках системного таймера, 0 - ждать бесконечно
|
||||
Возвращаемое значение:
|
||||
* eax = 0 - успешно, -1 - таймаут,
|
||||
-2 - контрольное значение не соответствует
|
||||
@@ -5049,35 +5097,45 @@ Remarks:
|
||||
eax - SF_FUTEX (77)
|
||||
ebx - SSF_WAKE (3)
|
||||
======================================================================
|
||||
======= Функция 77, подфункция 10, Прочитать из файла в буфер. =======
|
||||
Замечания:
|
||||
* Подфункции 4-7 зарезервированы и сейчас возвращают -1.
|
||||
* Подфункции 8, 9 и 12 не реализованы и возвращают -EBADF.
|
||||
======================================================================
|
||||
======= Функция 77, подфункция 10, Прочитать из pipe. =======
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 77 - номер функции
|
||||
* ebx = 10 - номер подфункции
|
||||
* ecx = дескриптор файла
|
||||
* ecx = дескриптор pipe
|
||||
* edx = указатель на буфер, куда читать
|
||||
* esi = сколько байт прочитать
|
||||
Возвращаемое значение:
|
||||
* eax = количество прочитанных байт
|
||||
* eax = количество прочитанных байт, 0 при EOF,
|
||||
или -EBADF при ошибке
|
||||
Замечания:
|
||||
* Поддерживаются только pipe-дескрипторы.
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_FUTEX (77)
|
||||
ebx - ...
|
||||
ebx - 10
|
||||
======================================================================
|
||||
======== Функция 77, подфункция 11, Записать из буфера в файл. =======
|
||||
======== Функция 77, подфункция 11, Записать в pipe. =======
|
||||
======================================================================
|
||||
Параметры:
|
||||
* eax = 77 - номер функции
|
||||
* ebx = 11 - номер подфункции
|
||||
* ecx = дескриптор файла
|
||||
* edx = указатель на буфер, откуда брать данные для записи
|
||||
* ecx = дескриптор pipe
|
||||
* edx = указатель на буфер, откуда брать данные для записи
|
||||
* esi = сколько байт записать
|
||||
Возвращаемое значение:
|
||||
* eax = количество записанных байт
|
||||
* eax = количество записанных байт, -EBADF при ошибке,
|
||||
-EPIPE если нет читателей
|
||||
Замечания:
|
||||
* Поддерживаются только pipe-дескрипторы.
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_FUTEX (77)
|
||||
ebx - ...
|
||||
ebx - 11
|
||||
======================================================================
|
||||
=========== Функция 77, подфункция 13, Создать новый pipe. ===========
|
||||
======================================================================
|
||||
@@ -5089,15 +5147,15 @@ Remarks:
|
||||
* eax = 77 - номер функции
|
||||
* ebx = 13 - номер подфункции
|
||||
* ecx = адрес pipefd
|
||||
* edx = флаги. На данный момент если поднят O_CLOEXEC (0x40000), то
|
||||
сисфункция завершится с ошибкой. Поэтому в качестве флагов можно
|
||||
передать просто 0.
|
||||
* edx = флаги. Разрешен только O_CLOEXEC (0x40000).
|
||||
Любые другие биты приводят к -EINVAL.
|
||||
Возвращаемое значение:
|
||||
* eax = 0 если успех, иначе ошибка.
|
||||
* eax = 0 если успех, иначе отрицательный код ошибки:
|
||||
-EFAULT, -EINVAL, -EMFILE, -ENFILE.
|
||||
|
||||
---------------------- Константы для регистров: ----------------------
|
||||
eax - SF_FUTEX (77)
|
||||
ebx - ...
|
||||
ebx - 13
|
||||
======================================================================
|
||||
========== Функция -1 - завершить выполнение потока/процесса =========
|
||||
======================================================================
|
||||
|
||||
@@ -1972,7 +1972,7 @@ Remarks:
|
||||
subfunction 2 of function 15.
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_BACKGROUND_GET_RECT (39)
|
||||
eax - SF_BACKGROUND_GET (39)
|
||||
======================================================================
|
||||
== Function 39, subfunction 3 - get rect from the background image. =
|
||||
======================================================================
|
||||
@@ -2179,21 +2179,21 @@ Parameters:
|
||||
* ecx = pointer to the buffer with size edx bytes,
|
||||
where table will be written
|
||||
* edx = size of color table
|
||||
(must be 40 bytes for future compatibility)
|
||||
(up to 192 bytes; 40 bytes for base structure)
|
||||
Returned value:
|
||||
* function does not return value
|
||||
Format of the color table:
|
||||
each item is dword-value for color 0x00RRGGBB
|
||||
* +0: dword: none - reserved
|
||||
* +4: dword: none - reserved
|
||||
* +0: dword: frame
|
||||
* +4: dword: grab
|
||||
* +8: dword: work_dark - dark color of working area
|
||||
used to give a user 3D-like feelings about interface elements
|
||||
* +12 = +0xC: dword: work_light - light color of working area
|
||||
used to give a user 3D-like feelings about interface elements
|
||||
* +16 = +0x10: dword: grab_text - color of text on header
|
||||
* +20 = +0x14: dword: work - color of working area
|
||||
* +24 = +0x18: dword: button - color of button in working area
|
||||
* +28 = +0x1C: dword: button_text - color of text on button
|
||||
* +24 = +0x18: dword: work_button - color of button in working area
|
||||
* +28 = +0x1C: dword: work_button_text - color of text on button
|
||||
in working area
|
||||
* +32 = +0x20: dword: work_text - color of text in working area
|
||||
* +36 = +0x24: dword: graph - color of graphics in working area
|
||||
@@ -2206,6 +2206,8 @@ Remarks:
|
||||
; this function with ecx=sc
|
||||
mov ecx, [sc.work_button_text] ; read text color on
|
||||
; button in working area
|
||||
* The table may be longer (up to 192 bytes); extra fields are copied
|
||||
as-is and are interpreted by skins.
|
||||
* A program itself decides to use or not to use color table.
|
||||
For usage program must simply at calls to drawing functions select
|
||||
color taken from the table.
|
||||
@@ -2482,7 +2484,7 @@ Remarks:
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 51 - function number
|
||||
* ebx = 1 - unique subfunction
|
||||
* ebx = 1 - subfunction number
|
||||
* ecx = address of thread entry point (starting eip)
|
||||
* edx = pointer to thread stack (starting esp)
|
||||
Returned value:
|
||||
@@ -2490,7 +2492,50 @@ Returned value:
|
||||
* otherwise eax = TID - thread identifier
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_CREATE_THREAD (51)
|
||||
eax - SF_CREATE_THREAD (51) / SF_THREAD_CONTROL (51)
|
||||
ebx - SSF_CREATE_THREAD (1), SSF_GET_CURR_THREAD_SLOT (2),
|
||||
SSF_GET_THREAD_PRIORITY (3), SSF_SET_THREAD_PRIORITY (4)
|
||||
======================================================================
|
||||
================== Function 51, subfunction 2 ========================
|
||||
================== Get current thread slot number ====================
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 51 - function number
|
||||
* ebx = 2 - subfunction number
|
||||
Returned value:
|
||||
* eax = slot number of the current thread
|
||||
|
||||
======================================================================
|
||||
================== Function 51, subfunction 3 ========================
|
||||
===================== Get thread priority ============================
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 51 - function number
|
||||
* ebx = 3 - subfunction number
|
||||
* ecx = slot number of the thread or -1 (current thread)
|
||||
Returned value:
|
||||
* eax = -1 - error (invalid slot number or thread terminated)
|
||||
* otherwise eax = thread priority
|
||||
Remarks:
|
||||
* Priority range is 0..255.
|
||||
0 is the highest priority and is set by default at creation.
|
||||
|
||||
======================================================================
|
||||
================== Function 51, subfunction 4 ========================
|
||||
===================== Set thread priority ============================
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 51 - function number
|
||||
* ebx = 4 - subfunction number
|
||||
* ecx = slot number of the thread or -1 (current thread)
|
||||
* edx = new thread priority
|
||||
Returned value:
|
||||
* eax = -1 - error (invalid slot number or thread terminated)
|
||||
* otherwise eax = previous thread priority
|
||||
Remarks:
|
||||
* Priority range is 0..255.
|
||||
0 is the highest priority and is set by default at creation.
|
||||
|
||||
======================================================================
|
||||
==================== Function 54, subfunction 0 ======================
|
||||
============== Get the number of slots in the clipboard. =============
|
||||
@@ -3289,65 +3334,66 @@ Remarks:
|
||||
ebx - SSF_MEM_FREE (13)
|
||||
======================================================================
|
||||
===================== Function 68, subfunction 14 ====================
|
||||
============ Wait for signal from another program/driver. ============
|
||||
================= Get kernel event (GetEvent wrapper). ===============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 68 - function number
|
||||
* ebx = 14 - subfunction number
|
||||
* ecx = pointer to the buffer for information (24 bytes)
|
||||
* ecx = pointer to data buffer (6 dword = 24 bytes)
|
||||
Returned value:
|
||||
* eax = event handle
|
||||
* buffer pointed to by ecx contains the following information:
|
||||
* +0: dword: identifier for following data of signal
|
||||
* +4: dword: data of signal (20 bytes), format of which is defined
|
||||
by the first dword
|
||||
* +0: dword: EVENT.code (identifier of following data)
|
||||
* +4: 5 dword: EVENT.data, format depends on EVENT.code
|
||||
Remarks:
|
||||
* Waits indefinitely for any event in the current thread event queue.
|
||||
* The priority byte in the buffer is cleared by the kernel.
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_SYS_MISC (68)
|
||||
ebx - SSF_WAIT_SIGNAL (14)
|
||||
======================================================================
|
||||
============= Function 68, subfunction 16 - load driver. =============
|
||||
============= Function 68, subfunction 16 - get service. =============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 68 - function number
|
||||
* ebx = 16 - subfunction number
|
||||
* ecx = pointer to ASCIIZ-string with driver name
|
||||
* ecx = pointer to ASCIIZ-string with service name
|
||||
Returned value:
|
||||
* eax = 0 - failed
|
||||
* otherwise eax = driver handle
|
||||
* eax = pointer to SRV structure, 0 on error
|
||||
Remarks:
|
||||
* If the driver was not loaded yet, it is loaded;
|
||||
if the driver was loaded yet, nothing happens.
|
||||
* Driver name is case-sensitive.
|
||||
* If the service is not loaded yet, the kernel attempts to load it
|
||||
from /sys/drivers/<name>.sys.
|
||||
* Service name is case-sensitive.
|
||||
Maximum length of the name is 16 characters, including
|
||||
terminating null character, the rest is ignored.
|
||||
* Driver ABC is loaded from file /sys/drivers/ABC.sys.
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_SYS_MISC (68)
|
||||
ebx - SSF_LOAD_DRIVER (16)
|
||||
ebx - SSF_GET_SERVICE (16) / SSF_LOAD_DRIVER (16)
|
||||
======================================================================
|
||||
============ Function 68, subfunction 17 - driver control. ===========
|
||||
============ Function 68, subfunction 17 - call service. =============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 68 - function number
|
||||
* ebx = 17 - subfunction number
|
||||
* ecx = pointer to the control structure:
|
||||
* +0: dword: handle of driver
|
||||
* +4: dword: code of driver function
|
||||
* +8: dword: pointer to input data
|
||||
* +12 = +0xC: dword: size of input data
|
||||
* +16 = +0x10: dword: pointer to output data
|
||||
* +20 = +0x14: dword: size of output data
|
||||
* ecx = pointer to the IOCTL structure:
|
||||
* +0: dword: service handle (pointer to SRV)
|
||||
* +4: dword: io_code
|
||||
* +8: dword: pointer to input data
|
||||
* +12: dword: size of input data
|
||||
* +16: dword: pointer to output data
|
||||
* +20: dword: size of output data
|
||||
Returned value:
|
||||
* eax = determined by driver
|
||||
* eax = value returned by the service handler, -1 on error
|
||||
Remarks:
|
||||
* Function codes and the structure of input/output data
|
||||
are defined by driver.
|
||||
* Previously one must obtain driver handle by subfunction 16.
|
||||
are defined by the service.
|
||||
* The service handle can be obtained by subfunction 16.
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_SYS_MISC (68)
|
||||
ebx - SSF_CONTROL_DRIVER (17)
|
||||
ebx - SSF_CALL_SERVICE (17) / SSF_CONTROL_DRIVER (17)
|
||||
======================================================================
|
||||
== Function 68, subfunction 18 - load DLL, specifying the encoding. ==
|
||||
======================================================================
|
||||
@@ -3411,7 +3457,7 @@ Remarks:
|
||||
Parameters:
|
||||
* eax = 68 - function number
|
||||
* ebx = 21 - subfunction number
|
||||
* ecx = pointer to ASCIIZ-string with driver name
|
||||
* ecx = pointer to ASCIIZ-string with path to driver file
|
||||
* edx = pointer to command line
|
||||
Returned value:
|
||||
* eax = 0 - failed
|
||||
@@ -3620,6 +3666,25 @@ Remarks:
|
||||
eax - SF_SYS_MISC (68)
|
||||
ebx - SSF_MEM_ALLOC_RING (29)
|
||||
|
||||
======================================================================
|
||||
=========== Function 68, subfunction 30 - unload driver. ============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 68 - function number
|
||||
* ebx = 30 - subfunction number
|
||||
* ecx = pointer to SRV structure (driver handle)
|
||||
* edx = pointer to command line (may be 0)
|
||||
Returned value:
|
||||
* eax = -1 - invalid parameters
|
||||
* eax = -2 - error while freeing driver memory
|
||||
* otherwise eax = pointer to the next SRV structure (former SRV.fd)
|
||||
Remarks:
|
||||
* The driver entry is called with DRV_EXIT before unloading.
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_SYS_MISC (68)
|
||||
ebx - 30
|
||||
|
||||
======================================================================
|
||||
=========== Function 68, subfunction 31 - get driver data. ===========
|
||||
======================================================================
|
||||
@@ -4451,7 +4516,7 @@ Returned value:
|
||||
* eax = number of active network devices
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_DEVICE_COUNT (255)
|
||||
======================================================================
|
||||
======== Function 74, Subfunction 0, Get network device type. ========
|
||||
@@ -4464,7 +4529,7 @@ Returned value:
|
||||
* eax = device type number, -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_DEVICE_TYPE (0)
|
||||
======================================================================
|
||||
======== Function 74, Subfunction 1, Get network device name. ========
|
||||
@@ -4479,7 +4544,7 @@ Returned value:
|
||||
* The network device name is written into the buffer, on success
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_DEVICE_NAME (1)
|
||||
======================================================================
|
||||
========= Function 74, Subfunction 2, Reset network device. ==========
|
||||
@@ -4492,7 +4557,7 @@ Returned value:
|
||||
* eax = -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RESET_DEVICE (2)
|
||||
======================================================================
|
||||
========== Function 74, Subfunction 3, Stop network device. ==========
|
||||
@@ -4505,7 +4570,7 @@ Returned value:
|
||||
* eax = -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_STOP_DEVICE (3)
|
||||
======================================================================
|
||||
=========== Function 74, Subfunction 4, Get device pointer. ==========
|
||||
@@ -4518,7 +4583,7 @@ Returned value:
|
||||
* eax = device pointer, -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_DEVICE_POINTER (4)
|
||||
======================================================================
|
||||
========= Function 74, Subfunction 6, Get packet TX counter. =========
|
||||
@@ -4531,7 +4596,7 @@ Returned value:
|
||||
* eax = Number of packets sent since device start, -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_TX_PACKET_COUNT (6)
|
||||
======================================================================
|
||||
========= Function 74, Subfunction 7, Get packet RX counter. =========
|
||||
@@ -4544,7 +4609,7 @@ Returned value:
|
||||
* eax = Number of packets received since device start, -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RX_PACKET_COUNT (7)
|
||||
======================================================================
|
||||
========== Function 74, Subfunction 8, Get TX byte counter. ==========
|
||||
@@ -4559,7 +4624,7 @@ Returned value:
|
||||
* ebx = Number of bytes sent since device start (higher dword)
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_TX_BYTE_COUNT (8)
|
||||
======================================================================
|
||||
========== Function 74, Subfunction 9, Get RX byte counter. ==========
|
||||
@@ -4574,7 +4639,7 @@ Returned value:
|
||||
* ebx = Number of bytes received since device start (higher dword)
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RX_BYTE_COUNT (9)
|
||||
======================================================================
|
||||
========== Function 74, Subfunction 10, Get link status. =============
|
||||
@@ -4595,7 +4660,7 @@ Returned value:
|
||||
ETH_LINK_1G = 1100b ; gigabit
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_LINK_STATUS (10)
|
||||
======================================================================
|
||||
==== Function 74, Subfunction 11, Get TX error packets counter. ======
|
||||
@@ -4605,10 +4670,10 @@ Parameters:
|
||||
* bl = 11 - subfunction number
|
||||
* bh = device number
|
||||
Returned value:
|
||||
* eax = Number of erroneous packets received since device start, -1 on error
|
||||
* eax = Number of erroneous packets transmitted since device start, -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_TX_PACKET_ERROR_COUNT (11)
|
||||
======================================================================
|
||||
=== Function 74, Subfunction 12, Get TX dropped packets counter. =====
|
||||
@@ -4621,7 +4686,7 @@ Returned value:
|
||||
* eax = Number of dropped packets since device start, -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_TX_PACKET_DROP_COUNT (12)
|
||||
======================================================================
|
||||
==== Function 74, Subfunction 13, Get TX missed packets counter. =====
|
||||
@@ -4634,7 +4699,7 @@ Returned value:
|
||||
* eax = Number of missed packets since device start, -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_TX_PACKET_MISS_COUNT (13)
|
||||
======================================================================
|
||||
==== Function 74, Subfunction 14, Get RX error packets counter. ======
|
||||
@@ -4647,7 +4712,7 @@ Returned value:
|
||||
* eax = Number of erroneous packets received since device start, -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RX_PACKET_ERROR_COUNT (14)
|
||||
======================================================================
|
||||
=== Function 74, Subfunction 15, Get RX dropped packets counter. =====
|
||||
@@ -4660,8 +4725,8 @@ Returned value:
|
||||
* eax = Number of dropped packets since device start, -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
bl - SSF_RX_PACKET_DROP_COUNT (12)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RX_PACKET_DROP_COUNT (15)
|
||||
======================================================================
|
||||
==== Function 74, Subfunction 16, Get RX missed packets counter. =====
|
||||
======================================================================
|
||||
@@ -4673,7 +4738,7 @@ Returned value:
|
||||
* eax = Number of missed packets since device start, -1 on error
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_GET (74)
|
||||
eax - SF_NETWORK_GET (74) / SF_NETWORK_DEVICE (74)
|
||||
bl - SSF_RX_PACKET_MISS_COUNT (16)
|
||||
======================================================================
|
||||
============== Function 75, Subfunction 0, Open socket. ==============
|
||||
@@ -4867,7 +4932,7 @@ Returned value:
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_SOCKET (75)
|
||||
bl - SSF_GET_PAIR (10)
|
||||
bl - SSF_GET_PAIR (10) / SSF_SOCKET_PAIR (10)
|
||||
======================================================================
|
||||
============ Function 76, Network options and statistics. ============
|
||||
======================================================================
|
||||
@@ -5174,6 +5239,32 @@ Returned value:
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_NETWORK_PROTOCOL (76)
|
||||
ebx - SSF_ETHERNET_READ_MAC (0x0000)
|
||||
ebx - SSF_IP4_PACKETS_SENT (0x10000)
|
||||
ebx - SSF_IP4_PACKETS_RECEIVED (0x10001)
|
||||
ebx - SSF_IP4_READ_IP (0x10002)
|
||||
ebx - SSF_IP4_WRITE_IP (0x10003)
|
||||
ebx - SSF_IP4_READ_DNS (0x10004)
|
||||
ebx - SSF_IP4_WRITE_DNS (0x10005)
|
||||
ebx - SSF_IP4_READ_SUBNET (0x10006)
|
||||
ebx - SSF_IP4_WRITE_SUBNET (0x10007)
|
||||
ebx - SSF_IP4_READ_GATEWAY (0x10008)
|
||||
ebx - SSF_IP4_WRITE_GATEWAY (0x10009)
|
||||
ebx - SSF_ICMP_PACKETS_SENT (0x20000)
|
||||
ebx - SSF_ICMP_PACKETS_RECEIVED (0x20001)
|
||||
ebx - SSF_ICMP_ECHO_REPLY (0x20003)
|
||||
ebx - SSF_UDP_PACKETS_SENT (0x30000)
|
||||
ebx - SSF_UDP_PACKETS_RECEIVED (0x30001)
|
||||
ebx - SSF_TCP_PACKETS_SENT (0x40000)
|
||||
ebx - SSF_TCP_PACKETS_RECEIVED (0x40001)
|
||||
ebx - SSF_ARP_PACKETS_SENT (0x50000)
|
||||
ebx - SSF_ARP_PACKETS_RECEIVED (0x50001)
|
||||
ebx - SSF_ARP_GET_ENTRY_COUNT (0x50002)
|
||||
ebx - SSF_ARP_READ_ENTRY (0x50003)
|
||||
ebx - SSF_ARP_ADD_STATIC_ENTRY (0x50004)
|
||||
ebx - SSF_ARP_DEL_ENTRY (0x50005)
|
||||
ebx - SSF_ARP_SEND_ANNOUNCE (0x50006)
|
||||
ebx - SSF_ARP_CONFLICTS_COUNT (0x50007)
|
||||
======================================================================
|
||||
========== Function 77, Subfunction 0, Create futex object ===========
|
||||
======================================================================
|
||||
@@ -5217,10 +5308,10 @@ Parameters:
|
||||
* esi = timeout in system ticks or 0 for infinity
|
||||
Returned value:
|
||||
* eax = 0 - successfull
|
||||
-1 - timeout
|
||||
-2 - futex dword does not have the same value as edx
|
||||
-1 - timeout
|
||||
-2 - futex dword does not have the same value as edx
|
||||
Remarks:
|
||||
* This functionn tests that the value at the futex dword still
|
||||
* This function tests that the value at the futex dword still
|
||||
contains the expected control value, and if so, then sleeps
|
||||
waiting for a wake operation on the futex.
|
||||
* The futex handle must have been created by subfunction 0
|
||||
@@ -5248,6 +5339,62 @@ Remarks:
|
||||
eax - SF_FUTEX (77)
|
||||
ebx - SSF_WAKE (3)
|
||||
======================================================================
|
||||
Remarks:
|
||||
* Subfunctions 4-7 are reserved and currently return -1.
|
||||
* Subfunctions 8, 9 and 12 are not implemented and return -EBADF.
|
||||
======================================================================
|
||||
=========== Function 77, Subfunction 10, Read from pipe. ============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 77 - function number
|
||||
* ebx = 10 - subfunction number
|
||||
* ecx = pipe descriptor
|
||||
* edx = pointer to destination buffer
|
||||
* esi = number of bytes to read
|
||||
Returned value:
|
||||
* eax = number of bytes read, 0 on EOF, or -EBADF on error
|
||||
Remarks:
|
||||
* Only pipe descriptors are supported.
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_FUTEX (77)
|
||||
ebx - 10
|
||||
======================================================================
|
||||
=========== Function 77, Subfunction 11, Write to pipe. =============
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 77 - function number
|
||||
* ebx = 11 - subfunction number
|
||||
* ecx = pipe descriptor
|
||||
* edx = pointer to source buffer
|
||||
* esi = number of bytes to write
|
||||
Returned value:
|
||||
* eax = number of bytes written, -EBADF on error, -EPIPE if no readers
|
||||
Remarks:
|
||||
* Only pipe descriptors are supported.
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_FUTEX (77)
|
||||
ebx - 11
|
||||
======================================================================
|
||||
========== Function 77, Subfunction 13, Create pipe. ================
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 77 - function number
|
||||
* ebx = 13 - subfunction number
|
||||
* ecx = pointer to pipefd[2] array (two dword descriptors)
|
||||
* edx = flags (only O_CLOEXEC is allowed)
|
||||
Returned value:
|
||||
* eax = 0 on success, or negative errno value on error:
|
||||
-EFAULT, -EINVAL, -EMFILE, -ENFILE
|
||||
Remarks:
|
||||
* On success, pipefd[0] is a read descriptor and pipefd[1] is a
|
||||
write descriptor.
|
||||
|
||||
---------------------- Constants for registers: ----------------------
|
||||
eax - SF_FUTEX (77)
|
||||
ebx - 13
|
||||
======================================================================
|
||||
=== Function 80 - file system interface with parameter of encoding ===
|
||||
======================================================================
|
||||
Parameters:
|
||||
|
||||
@@ -70,11 +70,11 @@ SF_SYSTEM=18
|
||||
SSF_WINDOW_BEHAVIOR=25 ; window focus relation with other windows
|
||||
SSSF_GET_WB=1
|
||||
SSSF_SET_WB=2
|
||||
SF_MIDI=20
|
||||
SSF_RESET=1
|
||||
SSF_OUTPUT=2
|
||||
SF_MIDI=20 ; deprecated/undefined in current kernel
|
||||
SSF_RESET=1 ; deprecated
|
||||
SSF_OUTPUT=2 ; deprecated
|
||||
SF_SYSTEM_SET=21
|
||||
SSF_MPU_MIDI_BASE=1
|
||||
SSF_MPU_MIDI_BASE=1 ; not used (reserved)
|
||||
SSF_KEYBOARD_LAYOUT=2
|
||||
SSF_SYS_LANG=5
|
||||
SSF_ACCESS_HD_LBA=11 ; setting of low-level access to HD
|
||||
@@ -112,7 +112,7 @@ SF_BACKGROUND_GET=39
|
||||
;SSF_PIXEL_BG=2
|
||||
;SSF_MODE_BG=4
|
||||
SF_SET_EVENTS_MASK=40 ; turn on/off desired events
|
||||
SF_PORT_IN_OUT=43 ; input/output to a port
|
||||
SF_PORT_IN_OUT=43 ; deprecated/undefined in current kernel
|
||||
SF_SET_PORTS=46 ; reserve/free a group of input/output ports
|
||||
SF_DRAW_NUMBER=47 ; draw number to the window
|
||||
SF_STYLE_SETTINGS=48
|
||||
@@ -132,6 +132,11 @@ SF_STYLE_SETTINGS=48
|
||||
SF_APM=49
|
||||
SF_SET_WINDOW_SHAPE=50
|
||||
SF_CREATE_THREAD=51
|
||||
SF_THREAD_CONTROL=51
|
||||
SSF_CREATE_THREAD=1
|
||||
SSF_GET_CURR_THREAD_SLOT=2
|
||||
SSF_GET_THREAD_PRIORITY=3
|
||||
SSF_SET_THREAD_PRIORITY=4
|
||||
SF_CLIPBOARD=54
|
||||
SSF_GET_SLOT_COUNT=0 ; get the number of slots in the clipboard
|
||||
SSF_READ_CB=1
|
||||
@@ -184,9 +189,11 @@ SF_SYS_MISC=68
|
||||
SSF_HEAP_INIT=11
|
||||
SSF_MEM_ALLOC=12
|
||||
SSF_MEM_FREE=13
|
||||
SSF_WAIT_SIGNAL=14 ; wait for signal from another program/driver
|
||||
SSF_LOAD_DRIVER=16
|
||||
SSF_CONTROL_DRIVER=17
|
||||
SSF_WAIT_SIGNAL=14 ; GetEvent wrapper (wait for kernel event)
|
||||
SSF_GET_SERVICE=16
|
||||
SSF_CALL_SERVICE=17
|
||||
SSF_LOAD_DRIVER=16 ; alias (deprecated name)
|
||||
SSF_CONTROL_DRIVER=17 ; alias (deprecated name)
|
||||
SSF_LOAD_DLL=19
|
||||
SSF_MEM_REALLOC=20
|
||||
SSF_LOAD_DRIVER_PE=21
|
||||
@@ -196,6 +203,7 @@ SF_SYS_MISC=68
|
||||
SSF_SET_EXCEPTION_STATE=25
|
||||
SSF_MEM_FREE_EXT=26
|
||||
SSF_LOAD_FILE=27
|
||||
SSF_MEM_ALLOC_RING=29
|
||||
SF_DEBUG=69
|
||||
SSF_SET_MESSAGE_AREA=0
|
||||
SSF_GET_REGISTERS=1
|
||||
@@ -222,6 +230,7 @@ SF_SET_CAPTION=71
|
||||
SF_SEND_MESSAGE=72
|
||||
SF_BLITTER=73
|
||||
SF_NETWORK_DEVICE=74
|
||||
SF_NETWORK_GET=74 ; alias
|
||||
SSF_DEVICE_COUNT=255 ; get number of active network devices
|
||||
SSF_DEVICE_TYPE=0
|
||||
SSF_DEVICE_NAME=1
|
||||
@@ -251,6 +260,7 @@ SF_NETWORK_SOCKET=75
|
||||
SSF_SET_OPTIONS=8
|
||||
SSF_GET_OPTIONS=9
|
||||
SSF_SOCKET_PAIR=10
|
||||
SSF_GET_PAIR=10 ; alias
|
||||
SF_NETWORK_PROTOCOL=76
|
||||
SSF_ETHERNET_READ_MAC=0
|
||||
SSF_IP4_PACKETS_SENT=10000h
|
||||
|
||||
@@ -70,11 +70,11 @@ SF_SYSTEM=18
|
||||
SSF_WINDOW_BEHAVIOR=25 ; window focus relation with other windows
|
||||
SSSF_GET_WB=1
|
||||
SSSF_SET_WB=2
|
||||
SF_MIDI=20
|
||||
SSF_RESET=1
|
||||
SSF_OUTPUT=2
|
||||
SF_MIDI=20 ; deprecated/undefined in current kernel
|
||||
SSF_RESET=1 ; deprecated
|
||||
SSF_OUTPUT=2 ; deprecated
|
||||
SF_SYSTEM_SET=21
|
||||
SSF_MPU_MIDI_BASE=1
|
||||
SSF_MPU_MIDI_BASE=1 ; not used (reserved)
|
||||
SSF_KEYBOARD_LAYOUT=2
|
||||
SSF_SYS_LANG=5
|
||||
SSF_ACCESS_HD_LBA=11 ; setting of low-level access to HD
|
||||
@@ -112,7 +112,7 @@ SF_BACKGROUND_GET=39
|
||||
;SSF_PIXEL_BG=2
|
||||
;SSF_MODE_BG=4
|
||||
SF_SET_EVENTS_MASK=40 ; turn on/off desired events
|
||||
SF_PORT_IN_OUT=43 ; input/output to a port
|
||||
SF_PORT_IN_OUT=43 ; deprecated/undefined in current kernel
|
||||
SF_SET_PORTS=46 ; reserve/free a group of input/output ports
|
||||
SF_DRAW_NUMBER=47 ; draw number to the window
|
||||
SF_STYLE_SETTINGS=48
|
||||
@@ -132,6 +132,11 @@ SF_STYLE_SETTINGS=48
|
||||
SF_APM=49
|
||||
SF_SET_WINDOW_SHAPE=50
|
||||
SF_CREATE_THREAD=51
|
||||
SF_THREAD_CONTROL=51
|
||||
SSF_CREATE_THREAD=1
|
||||
SSF_GET_CURR_THREAD_SLOT=2
|
||||
SSF_GET_THREAD_PRIORITY=3
|
||||
SSF_SET_THREAD_PRIORITY=4
|
||||
SF_CLIPBOARD=54
|
||||
SSF_GET_SLOT_COUNT=0 ; get the number of slots in the clipboard
|
||||
SSF_READ_CB=1
|
||||
@@ -184,9 +189,11 @@ SF_SYS_MISC=68
|
||||
SSF_HEAP_INIT=11
|
||||
SSF_MEM_ALLOC=12
|
||||
SSF_MEM_FREE=13
|
||||
SSF_WAIT_SIGNAL=14 ; wait for signal from another program/driver
|
||||
SSF_LOAD_DRIVER=16
|
||||
SSF_CONTROL_DRIVER=17
|
||||
SSF_WAIT_SIGNAL=14 ; GetEvent wrapper (wait for kernel event)
|
||||
SSF_GET_SERVICE=16
|
||||
SSF_CALL_SERVICE=17
|
||||
SSF_LOAD_DRIVER=16 ; alias (deprecated name)
|
||||
SSF_CONTROL_DRIVER=17 ; alias (deprecated name)
|
||||
SSF_LOAD_DLL=19
|
||||
SSF_MEM_REALLOC=20
|
||||
SSF_LOAD_DRIVER_PE=21
|
||||
@@ -196,6 +203,7 @@ SF_SYS_MISC=68
|
||||
SSF_SET_EXCEPTION_STATE=25
|
||||
SSF_MEM_FREE_EXT=26
|
||||
SSF_LOAD_FILE=27
|
||||
SSF_MEM_ALLOC_RING=29
|
||||
SF_DEBUG=69
|
||||
SSF_SET_MESSAGE_AREA=0
|
||||
SSF_GET_REGISTERS=1
|
||||
@@ -222,6 +230,7 @@ SF_SET_CAPTION=71
|
||||
SF_SEND_MESSAGE=72
|
||||
SF_BLITTER=73
|
||||
SF_NETWORK_DEVICE=74
|
||||
SF_NETWORK_GET=74 ; alias
|
||||
SSF_DEVICE_COUNT=255 ; get number of active network devices
|
||||
SSF_DEVICE_TYPE=0
|
||||
SSF_DEVICE_NAME=1
|
||||
@@ -251,6 +260,7 @@ SF_NETWORK_SOCKET=75
|
||||
SSF_SET_OPTIONS=8
|
||||
SSF_GET_OPTIONS=9
|
||||
SSF_SOCKET_PAIR=10
|
||||
SSF_GET_PAIR=10 ; alias
|
||||
SF_NETWORK_PROTOCOL=76
|
||||
SSF_ETHERNET_READ_MAC=0
|
||||
SSF_IP4_PACKETS_SENT=10000h
|
||||
|
||||
Reference in New Issue
Block a user