Функция предназначена для создания семафора. Поле id_sem структуры sem должно быть равно нулю до момента создания семафора. Таким образом уже созданные семафоры защищаются от повторного создания.
Память для управляющей структуры sem должна быть выделена до момента создания семафора. Память может быть выделена на этапе компиляции (объявление глобальной переменной типа TN_SEM), либо динамически, если пользовательское приложение использует менеджер памяти.
Вызов:
TN_RETVAL tn_sem_create(TN_SEM *sem, TN_UWORD start_value, TN_UWORD max_val);
Разрешен вызов:
В контексте задачи
Параметры функции:
semTN_SEM. Структура должна быть создана до момента вызова функции, статически или динамическиstart_valuemax_valВозвращаемые значения:
TERR_WRONG_PARAMTERR_EXSTERR_WCONTEXTTERR_NO_ERR
Пример вызова:
TN_SEM sem_test; tn_sem_create(&sem_test, 1, 1); /* создается свободный бинарный семафор */