Функция предназначена для освобождения выделенного блока памяти в прерывании. Указатель на освобождаемый блок передается в сервис в качестве параметра p_data. Функция не проверяет принадлежность блока p_data к пулу fmp.
Если в очереди ожидания блоков памяти есть задачи, то первая задача из очереди будет переведена в состояние готовности к выполнению.
Вызов:
TN_RETVAL tn_fmem_irelease(TN_FMP *fmp, void *p_data);
Разрешен вызов:
В прерывании
Параметры функции:
fmpp_data
Возвращаемые значения:
TERR_WRONG_PARAMTERR_NOEXSTERR_WCONTEXTTERR_NO_ERR
Пример вызова:
extern TN_FMP my_pool; tn_sys_interrupt (_T2Interrupt) /* прерывание от таймера */ { TN_UWORD *block_pt; IFS0bits.T2IF = 0; /* сброс флага прерывания */ if (tn_fmem_get_ipolling(&my_pool, &block) == TERR_NO_ERR) { /* ... */ tn_fmem_irelease(&my_pool, block_pt); } }