Available Languages?:

tn_sem_create()

Функция предназначена для создания семафора. Поле id_sem структуры sem должно быть равно нулю до момента создания семафора. Таким образом уже созданные семафоры защищаются от повторного создания.

Память для управляющей структуры sem должна быть выделена до момента создания семафора. Память может быть выделена на этапе компиляции (объявление глобальной переменной типа TN_SEM), либо динамически, если пользовательское приложение использует менеджер памяти.

Вызов:

TN_RETVAL tn_sem_create(TN_SEM *sem, TN_UWORD start_value, TN_UWORD max_val);

Разрешен вызов:

В контексте задачи

Параметры функции:

sem
указатель на структуру семафора типа TN_SEM. Структура должна быть создана до момента вызова функции, статически или динамически
start_value
начальное значения счетчика свободных ресурсов семафора. Если этот параметр равен 0, то семафор считается занятым на момент создания.
max_val
максимальное значение счетчика свободных ресурсов семафора. Если этот параметр равен 1, то создается двоичный семафор.

Возвращаемые значения:

TERR_WRONG_PARAM
некорректное значение параметра (замечание: данный код возврата возможен только в случае использования сервисов с проверкой параметров)
TERR_EXS
попытка создания семафора, который уже создан
TERR_WCONTEXT
попытка создания семафора в прерывании или в пользовательской критической секции
TERR_NO_ERR
успешное выполнение


Пример вызова:

TN_SEM sem_test;
 
tn_sem_create(&sem_test, 1, 1);  /* создается свободный бинарный семафор */



К списку сервисов

 
tnkernel/ref/sem/tn_sem_create.txt · Последние изменения: 26.04.2008 03:27 От admin
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki