Difference between revisions of "SysFn77/ru"
Jump to navigation
Jump to search
Line 67: | Line 67: | ||
=== Подфункция 10 - read() === | === Подфункция 10 - read() === | ||
+ | Чтение из файла в буфер. | ||
''Параметры:'' | ''Параметры:'' | ||
:* eax = 77 - номер функции | :* eax = 77 - номер функции | ||
Line 81: | Line 82: | ||
=== Подфункция 11 - write() === | === Подфункция 11 - write() === | ||
+ | Запись данных из буфера в файл. | ||
+ | ''Параметры:'' | ||
+ | :* eax = 77 - номер функции | ||
+ | :* ebx = 11 - номер подфункции | ||
+ | :* ecx = дескриптор файла | ||
+ | :* edx = указатель на буфер, откуда брать данные для записи | ||
+ | :* esi = сколько байт записать | ||
+ | ''Возвращаемое значение:'' | ||
+ | :* eax = количество записанных байт | ||
+ | |||
+ | '''Константы для регистров:''' | ||
+ | :: eax - SF_FUTEX (77) | ||
+ | :: ebx - ... | ||
=== Подфункция 12 - dup3() === | === Подфункция 12 - dup3() === | ||
+ | :: Функция не реализована на данный момент. | ||
=== Подфункция 11 - pipe2() === | === Подфункция 11 - pipe2() === | ||
+ | TODO | ||
{{System_functions}} | {{System_functions}} | ||
[[Category: SysCalls]] | [[Category: SysCalls]] |
Revision as of 21:54, 29 May 2021
Подфункция 0 - Создать фьютекс
Параметры:
- eax = 77 - номер функции
- ebx = 0 - номер подфункции
- ecx = указатель на контрольное значение фьютекса (dword)
Возвращаемое значение:
- eax = дескриптор фьютекса, 0 при ошибке
Константы для регистров:
- eax - SF_FUTEX (77)
- ebx - SSF_CREATE (0)
Подфункция 1 - Удалить фьютекс
Параметры:
- eax = 77 - номер функции
- ebx = 1 - номер подфункции
- ecx = дескриптор фьютекса
Возвращаемое значение:
- eax = 0 - успешно, -1 при ошибке
Замечания:
- Ядро автоматически удаляет фьютексы при завершении процесса.
Константы для регистров:
- eax - SF_FUTEX (77)
- ebx - SSF_DESTROY (1)
Подфункция 2 - Ожидать
Параметры:
- eax = 77 - номер функции
- ebx = 2 - номер подфункции
- ecx = дескриптор фьютекса
- edx = контрольное значение
- esi = таймаут в сотых секунды, 0 - ждать бесконечно
Возвращаемое значение:
- eax = 0 - успешно, -1 - таймаут, -2 - контрольное значение не соответствует
Константы для регистров:
- eax - SF_FUTEX (77)
- ebx - SSF_WAIT (2)
Подфункция 3 - Разбудить
Параметры:
- eax = 77 - номер функции
- ebx = 3 - номер подфункции
- ecx = дескриптор фьютекса
- edx = сколько ожидающих будить (максимум)
Возвращаемое значение:
- eax = количество разбуженых
Константы для регистров:
- eax - SF_FUTEX (77)
- ebx - SSF_WAKE (3)
Подфункция 4 - Зарезервирована
Подфункция 5 - Зарезервирована
Подфункция 6 - Зарезервирована
Подфункция 7 - Зарезервирована
Подфункция 8 - open()
- Функция не реализована на данный момент.
Подфункция 9 - close()
- Функция не реализована на данный момент.
Подфункция 10 - read()
Чтение из файла в буфер. Параметры:
- eax = 77 - номер функции
- ebx = 10 - номер подфункции
- ecx = дескриптор файла
- edx = указатель на буфер, куда читать
- esi = сколько байт прочитать
Возвращаемое значение:
- eax = количество прочитанных байт
Константы для регистров:
- eax - SF_FUTEX (77)
- ebx - ...
Подфункция 11 - write()
Запись данных из буфера в файл. Параметры:
- eax = 77 - номер функции
- ebx = 11 - номер подфункции
- ecx = дескриптор файла
- edx = указатель на буфер, откуда брать данные для записи
- esi = сколько байт записать
Возвращаемое значение:
- eax = количество записанных байт
Константы для регистров:
- eax - SF_FUTEX (77)
- ebx - ...
Подфункция 12 - dup3()
- Функция не реализована на данный момент.
Подфункция 11 - pipe2()
TODO
|