SysFn77/ru

From KolibriOS wiki
Jump to: navigation, 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)