SysFn77/ru
Jump to navigation
Jump to search
Подфункция 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
|