tn_event_set()

Функция предназначена для установки битов в битовой маске флага evf. Биты устанавливаются по логическому ИЛИ с параметром-маской pattern.

После того как битовая маска флага обновлена, проверяются все задачи, ожидающие флаг. Если условие для запуска одной из задачи соотвествует битовой маске, задача переводится в состояние готовых к выполнению.

Если флаг имеет атрибут TN_EVENT_ATTR_MULTI, то в состояние готовых к выполнению переводятся все задачи, условие для запуска которых соответствует битовой маске.

Если флаг имеет атрибут TN_EVENT_ATTR_CLR, то битовая маска флага сбрасывается.

Вызов:

TN_RETVAL tn_event_set (TN_EVENT *evf, TN_UWORD pattern);

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

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

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

evf
указатель на объект типа флаг
pattern
устанавливаемые биты в битовой маске флага. Например, если битовая маска флага до вызова сервиса была равно 0b0011001101010101, а параметр pattern равен 0b1100000000000000, то битовая маска флага станет равна 0b1111001101010101


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

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


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

TN_EVENT event_test;
 
tn_event_set(&event_test, 0x8000);



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