Available Languages?:

tn_fmem_release()

Функция предназначена для освобождения выделенного блока памяти. Указатель на освобождаемый блок передается в сервис в качестве параметра p_data. Функция не проверяет принадлежность блока p_data к пулу fmp.

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

Вызов:

TN_RETVAL tn_fmem_release(TN_FMP *fmp, void  *p_data);

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

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

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

fmp
указатель на пул, блок которого освобождается задачей
p_data
указатель на блок, который будет освобождаться задачей


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

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


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

#define BLOCK_SIZE    4
 
TN_FMP   my_pool;
TN_UWORD my_pool_mem[NUM_BLOCKS * (MAKE_ALIG(BLOCK_SIZE) / sizeof(TN_UWORD))];
 
TN_UWORD *block_pt;
 
tn_fmem_create (&my_pool, my_pool_mem, BLOCK_SIZE, NUM_BLOCKS);
tn_fmem_get (&my_pool, &block_pt, TN_WAIT_INFINITE);
 
/* ... */
 
tn_fmem_release(&my_pool, block_pt);



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

 
tnkernel/ref/mpool/tn_fmem_release.txt · Последние изменения: 20.06.2008 12:31 От admin
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki