Функция предназначена для создания очереди сообщений. Поле id_dque очереди dque должно быть равно нулю до момента создания, таким образом уже созданные очереди защищаются от повторного создания. 
Память для управляющей структуры dque и буфера сообщений должна быть выделена до момента создания очереди. Память может быть выделена на этапе компиляции (объявление глобальной переменной типа TN_DQUE для управляющей структуры и массива с элементами типа *void для буфера), либо динамически, если пользовательское приложение использует менеджер памяти. В последнем случае размер буфера сообщений должен быть равен (в байтах) (sizeof(*void) · num_entries)
Вызов:
TN_RETVAL tn_queue_create (TN_DQUE *dque, void **data_fifo, TN_UWORD num_entries );
Разрешен вызов: 
 
В контексте задачи, в пользовательской критической секции, в прерывании
Параметры функции:
dquedque типа TN_DQUE должна быть создана до момента вызова функции, статически или динамическиdata_fifo*void. Параметр может быть равен 0 или TN_NULL - в этом случае сервисы будут возвращать код ошибки TERR_OUT_OF_MEM.num_entriesdata_fifo. Если указатель data_fifo равен 0 или TN_NULL, значение параметра может быть произвольным.num_entries = 2, то в очереди будет хранится один элемент и при попытке передачи второго сервис вернет ошибку. Не следует использовать очередь с одним элементом.
Возвращаемые значения:
TERR_WRONG_PARAMTERR_EXSTERR_NO_ERR
 
Пример вызова:  
#define QUEUE_SIZE 8 TN_DQUE queue TN_DATA; /* объект типа очередь */ void *queue_fifo[QUEUE_SIZE] TN_DATA; /* буфер сообщений */ tn_queue_create(&queue, queue_fifo, QUEUE_SIZE);