More fixed to documentation and kosfuncs.inc

This commit is contained in:
2026-01-27 20:37:35 +02:00
parent 0152013f11
commit 2f8a3c83b9
3 changed files with 69 additions and 64 deletions

View File

@@ -2507,7 +2507,7 @@ dword-значение цвета 0x00RRGGBB
* иначе eax = TID - идентификатор потока
---------------------- Константы для регистров: ----------------------
eax - SF_CREATE_THREAD (51) / SF_THREAD_CONTROL (51)
eax - SF_CREATE_THREAD (51) /
ebx - SSF_CREATE_THREAD (1), SSF_GET_CURR_THREAD_SLOT (2),
SSF_GET_THREAD_PRIORITY (3), SSF_SET_THREAD_PRIORITY (4)
@@ -3404,7 +3404,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
---------------------- Константы для регистров: ----------------------
eax - SF_SYS_MISC (68)
ebx - SSF_LOAD_DRIVER (16) / SSF_GET_SERVICE (16)
ebx - SSF_LOAD_DRIVER (16)
======================================================================
========== Функция 68, подфункция 17 - управление драйвером. =========
@@ -3429,7 +3429,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
---------------------- Константы для регистров: ----------------------
eax - SF_SYS_MISC (68)
ebx - SSF_CONTROL_DRIVER (17) / SSF_CALL_SERVICE (17)
ebx - SSF_CONTROL_DRIVER (17)
======================================================================
== Функция 68, подфункция 18 - загрузить DLL с указанием кодировки. ==
@@ -4552,13 +4552,13 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
======================================================================
Параметры:
* eax = 74 - номер функции
* bl = -1 (или 255) - номер подфункции
* bl = -1 - номер подфункции
Возвращаемое значение:
* eax = количество активных сетевых устройств
---------------------- Константы для регистров: ----------------------
eax - SF_NETWORK_GET (74)
bl - SSF_DEVICE_COUNT (-1 / 255)
bl - SSF_DEVICE_COUNT (-1)
======================================================================
==== Функция 74, подфункция 0, Получить тип сетевого устройства. =====
======================================================================
@@ -4977,7 +4977,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
---------------------- Константы для регистров: ----------------------
eax - SF_NETWORK_SOCKET (75)
bl - SSF_GET_PAIR (10) / SSF_SOCKET_PAIR (10)
bl - SSF_GET_PAIR (10)
======================================================================
=============== Функция 76, Сетевые опции и статистика. ==============
======================================================================
@@ -5054,9 +5054,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
Параметры:
* eax = 77 - номер функции
* ebx = 0 - номер подфункции
* ecx = указатель на контрольное значение фьютекса (dword)
* ecx = указатель на контрольное значение фьютекса
Возвращаемое значение:
* eax = дескриптор фьютекса, 0 при ошибке
* eax = указатель на дескриптор фьютекса, 0 при ошибке
---------------------- Константы для регистров: ----------------------
eax - SF_FUTEX (77)
@@ -5067,7 +5067,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
Параметры:
* eax = 77 - номер функции
* ebx = 1 - номер подфункции
* ecx = дескриптор фьютекса
* ecx = указатель на дескриптор фьютекса
Возвращаемое значение:
* eax = 0 - успешно, -1 при ошибке
Замечания:
@@ -5082,13 +5082,13 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
Параметры:
* eax = 77 - номер функции
* ebx = 2 - номер подфункции
* ecx = дескриптор фьютекса
* edx = контрольное значение
* ecx = указатель на дескриптор фьютекса
* edx = указатель на контрольное значение фьютекса
* esi = таймаут в сотых секунды, 0 - ждать бесконечно
Возвращаемое значение:
* eax = 0 - успешно,
-1 - таймаут,
-2 - контрольное значение не соответствует
-2 - контрольное значение фьютекса не соответствует
---------------------- Константы для регистров: ----------------------
eax - SF_FUTEX (77)
@@ -5099,7 +5099,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
Параметры:
* eax = 77 - номер функции
* ebx = 3 - номер подфункции
* ecx = дескриптор фьютекса
* ecx = указатель на дескриптор фьютекса
* edx = сколько ожидающих будить (максимум)
Возвращаемое значение:
* eax = количество разбуженых
@@ -5110,25 +5110,26 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
======================================================================
Замечания:
* Подфункции 4-7 зарезервированы и сейчас возвращают -1.
* Подфункции 8, 9 и 12 не реализованы и возвращают -EBADF.
* Подфункции 8, 9 и 12 не реализованы и возвращают -EBADF (-9).
======================================================================
======= Функция 77, подфункция 10, Прочитать из pipe. =======
======= Функция 77, подфункция 10, Прочитать из файла. =======
======================================================================
Параметры:
* eax = 77 - номер функции
* ebx = 10 - номер подфункции
* ecx = дескриптор pipe
* ecx = указатель на файловый дескриптор
* edx = указатель на буфер, куда читать
* esi = сколько байт прочитать
Возвращаемое значение:
* eax = количество прочитанных байт, 0 при EOF,
или -EBADF при ошибке
* eax = количество прочитанных байт
0 при EOF
-EBADF (-9) при ошибке
Замечания:
* Поддерживаются только pipe-дескрипторы.
---------------------- Константы для регистров: ----------------------
eax - SF_FUTEX (77)
ebx - SSF_PIPE_READ (10)
ebx - SSF_FILE_READ (10)
======================================================================
======== Функция 77, подфункция 11, Записать из буфера в файл. =======
@@ -5136,17 +5137,19 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
Параметры:
* eax = 77 - номер функции
* ebx = 11 - номер подфункции
* ecx = дескриптор файла
* ecx = указатель на файловый дескриптор
* edx = указатель на буфер, откуда брать данные для записи
* esi = сколько байт записать
Возвращаемое значение:
* eax = количество записанных байт
-EBADF при ошибке
-EPIPE если нет читателей
-EBADF (-9) при ошибке
-EPIPE (-32) если нет читателей
Замечания:
* Поддерживаются только pipe-дескрипторы.
---------------------- Константы для регистров: ----------------------
eax - SF_FUTEX (77)
ebx - SSF_PIPE_WRITE (11)
ebx - SSF_FILE_WRITE (11)
======================================================================
=========== Функция 77, подфункция 13, Создать новый pipe. ===========
@@ -5160,10 +5163,11 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* ebx = 13 - номер подфункции
* ecx = адрес pipefd
* edx = флаги. Разрешен только O_CLOEXEC (0x40000).
Любые другие биты приводят к -EINVAL.
Любые другие биты приводят к -EINVAL (-11).
Возвращаемое значение:
* eax = 0 если успех, иначе отрицательный код ошибки:
-EFAULT, -EINVAL, -EMFILE, -ENFILE.
* eax = 0 если успех,
иначе отрицательный код ошибки:
-EINVAL (-11), -EFAULT (-14), -ENFILE (-23), -EMFILE (-24)
Примечания:
* В случае успеха pipefd[0] является дескриптором чтения, а pipefd[1]
— дескриптором записи.

View File

@@ -2492,7 +2492,7 @@ Returned value:
* otherwise eax = TID - thread identifier
---------------------- Constants for registers: ----------------------
eax - SF_CREATE_THREAD (51) / SF_THREAD_CONTROL (51)
eax - SF_CREATE_THREAD (51)
ebx - SSF_CREATE_THREAD (1), SSF_GET_CURR_THREAD_SLOT (2),
SSF_GET_THREAD_PRIORITY (3), SSF_SET_THREAD_PRIORITY (4)
======================================================================
@@ -3334,7 +3334,7 @@ Remarks:
ebx - SSF_MEM_FREE (13)
======================================================================
===================== Function 68, subfunction 14 ====================
==== Wait for a signal from other applications/drivers. ==============
======= Wait for a signal from other applications/drivers. ===========
======================================================================
Parameters:
* eax = 68 - function number
@@ -3371,7 +3371,7 @@ Remarks:
---------------------- Constants for registers: ----------------------
eax - SF_SYS_MISC (68)
ebx - SSF_GET_SERVICE (16) / SSF_LOAD_DRIVER (16)
ebx - SSF_LOAD_DRIVER (16)
======================================================================
========== Function 68, subfunction 17 - control driver. =============
======================================================================
@@ -3394,7 +3394,7 @@ Remarks:
---------------------- Constants for registers: ----------------------
eax - SF_SYS_MISC (68)
ebx - SSF_CALL_SERVICE (17) / SSF_CONTROL_DRIVER (17)
ebx - SSF_CONTROL_DRIVER (17)
======================================================================
== Function 68, subfunction 18 - load DLL, specifying the encoding. ==
======================================================================
@@ -4508,13 +4508,13 @@ Returned value:
======================================================================
Parameters:
* eax = 74 - function number
* bl = -1 (255) - subfunction number
* bl = -1 - subfunction number
Returned value:
* eax = number of active network devices
---------------------- Constants for registers: ----------------------
eax - SF_NETWORK_GET (74)
bl - SSF_DEVICE_COUNT (-1 / 255)
bl - SSF_DEVICE_COUNT (-1)
======================================================================
======== Function 74, Subfunction 0, Get network device type. ========
======================================================================
@@ -4929,7 +4929,7 @@ Returned value:
---------------------- Constants for registers: ----------------------
eax - SF_NETWORK_SOCKET (75)
bl - SSF_GET_PAIR (10) / SSF_SOCKET_PAIR (10)
bl - SSF_GET_PAIR (10)
======================================================================
============ Function 76, Network options and statistics. ============
======================================================================
@@ -5268,9 +5268,9 @@ Returned value:
Parameters:
* eax = 77 - function number
* ebx = 0 - subfunction number
* ecx = pointer to futex dword
* ecx = pointer to futex control value
Returned value:
* eax = futex handle, 0 on error
* eax = pointer to futex handle, 0 on error
---------------------- Constants for registers: ----------------------
eax - SF_FUTEX (77)
@@ -5281,7 +5281,7 @@ Returned value:
Parameters:
* eax = 77 - function number
* ebx = 1 - subfunction number
* ecx = futex handle
* ecx = pointer to futex handle
Returned value:
* eax = 0 - successfull, -1 on error
Remarks:
@@ -5297,13 +5297,13 @@ Remarks:
Parameters:
* eax = 77 - function number
* ebx = 2 - subfunction number
* ecx = futex handle
* edx = control value
* ecx = pointer to futex handle
* edx = pointer to futex control value
* esi = timeout in hundredths of a second, 0 - wait forever
Returned value:
* eax = 0 - successfull
-1 - timeout
-2 - futex dword does not have the same value as edx
-2 - futex control value doesn't match
---------------------- Constants for registers: ----------------------
eax - SF_FUTEX (77)
@@ -5314,7 +5314,7 @@ Returned value:
Parameters:
* eax = 77 - function number
* ebx = 3 - subfunction number
* ecx = futex handle
* ecx = pointer to futex handle
* edx = number of waiters to wake
Returned value:
* eax = number of waiters that were woken up
@@ -5325,55 +5325,60 @@ Returned value:
======================================================================
Remarks:
* Subfunctions 4-7 are reserved and currently return -1.
* Subfunctions 8-9 and 12 are not implemented and return -EBADF.
* Subfunctions 8-9 and 12 are not implemented and return -EBADF (-9).
======================================================================
=========== Function 77, Subfunction 10, Read from pipe. ============
=========== Function 77, Subfunction 10, Read from file. ============
======================================================================
Parameters:
* eax = 77 - function number
* ebx = 10 - subfunction number
* ecx = pipe descriptor
* ecx = pointer to pipe handle
* 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
* eax = number of bytes read,
0 on EOF,
-EBADF (-9) on error
Remarks:
* Only pipe descriptors are supported.
---------------------- Constants for registers: ----------------------
eax - SF_FUTEX (77)
ebx - SSF_PIPE_READ (10)
ebx - SSF_FILE_READ (10)
======================================================================
=========== Function 77, Subfunction 11, Write to pipe. =============
=========== Function 77, Subfunction 11, Write to file. =============
======================================================================
Parameters:
* eax = 77 - function number
* ebx = 11 - subfunction number
* ecx = pipe descriptor
* ecx = pointer to file handle
* 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
* eax = number of bytes written,
-EBADF (-9) on error,
-EPIPE (-32) if no readers
Remarks:
* Only pipe descriptors are supported.
---------------------- Constants for registers: ----------------------
eax - SF_FUTEX (77)
ebx - SSF_PIPE_WRITE (11)
ebx - SSF_FILE_WRITE (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)
* ecx = pointer to pipefd[2] array (two dword handles)
* edx = flags (only O_CLOEXEC is allowed)
Returned value:
* eax = 0 on success, or negative errno value on error:
-EFAULT, -EINVAL, -EMFILE, -ENFILE
* eax = 0 on success,
negative errno value on error:
-EINVAL (-11), -EFAULT (-14), -ENFILE (-23), -EMFILE (-24)
Remarks:
* On success, pipefd[0] is a read descriptor and pipefd[1] is a
write descriptor.
* On success, pipefd[0] is a read handle and pipefd[1] is a
write handle.
---------------------- Constants for registers: ----------------------
eax - SF_FUTEX (77)

View File

@@ -132,7 +132,6 @@ 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
@@ -189,11 +188,9 @@ SF_SYS_MISC=68
SSF_HEAP_INIT=11
SSF_MEM_ALLOC=12
SSF_MEM_FREE=13
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_WAIT_SIGNAL=14 ; wait for a signal from other process
SSF_LOAD_DRIVER=16
SSF_CONTROL_DRIVER=17
SSF_LOAD_DLL=19
SSF_MEM_REALLOC=20
SSF_LOAD_DRIVER_PE=21
@@ -260,8 +257,7 @@ SF_NETWORK_SOCKET=75
SSF_RECEIVE=7
SSF_SET_OPTIONS=8
SSF_GET_OPTIONS=9
SSF_SOCKET_PAIR=10
SSF_GET_PAIR=10 ; alias
SSF_GET_PAIR=10
SF_NETWORK_PROTOCOL=76
SSF_ETHERNET_READ_MAC=0
SSF_IP4_PACKETS_SENT=10000h
@@ -294,8 +290,8 @@ SF_FUTEX=77
SSF_DESTROY=1
SSF_WAIT=2
SSF_WAKE=3
SSF_PIPE_READ=10
SSF_PIPE_WRITE=11
SSF_FILE_READ=10
SSF_FILE_WRITE=11
SSF_PIPE_CREATE=13
; File system errors: