rsrcdbmgr_create()

Создать системный ресурс

Прототип:

#include <sys/rsrcdbmgr.h>
#include <sys/rsrcdbmsg.h>
int rsrcdbmgr_create( rsrc_alloc_t *item,
int count );

Аргументы:

item
Массив структур rsrc_alloc_t, описывающих ресурсы, которые необходимо создать.
count
Количество элементов в массиве.

Библиотека:

libc

Описание:

Функция rsrcdbmgr_create() создает один или несколько системных ресурсов. При успешном завершении, count ресурсов возвращаются в item. Необходимо указать все поля структуры rsrc_alloc_t.

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

EOK
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EAGAIN
Запрос ресурса не может быть создан.
EINVAL
Некорректный аргумент.
ENOMEM
Недостаточно памяти для размещения внутренних структур данных.

Примеры:

/*
* Create two resources:
* 0-4K memory allocation and 5 DMA channels.
*/
#include <stdio.h>
#include <sys/rsrcdbmgr.h>
#include <sys/rsrcdbmsg.h>
int main( int argc, char **argv )
{
rsrc_alloc_t alloc[2];
memset( alloc, 0, 2 * sizeof( *alloc ) );
alloc[0].start = 0;
alloc[0].end = 4 * 1024;
alloc[0].flags = RSRCDBMGR_MEMORY;
alloc[1].start = 1;
alloc[1].end = 5;
alloc[1].flags = RSRCDBMGR_DMA_CHANNEL;
/* Allocate resources to the system. */
if ( rsrcdbmgr_create( alloc, 2 ) == -1 )
{
perror( "Problem creating resources \n" );
exit( 1 );
}
...
/* Do something with the created resource */
...
/* Remove the allocated resources. */
rsrcdbmgr_destroy( alloc, 2 );
return (0);
}

Классификация:

ЗОСРВ «Нейтрино»

Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

rsrcdbmgr_attach(), rsrcdbmgr_destroy()




Предыдущий раздел: Описание API системной библиотеки