ado_shm_alloc()

Выделение разделяемой памяти

Прототип:

#include <audio_driver.h>
void * ado_shm_alloc( size_t size,
char *name,
int32_t flags,
off64_t *phys_addr );

Аргументы:

size
Размер выделяемой памяти в байтах.
name
Имя нового разделяемого объекта памяти. Длина не может превышать QNX_SHM_NAME_LEN.
flags
Ограничения на регион памяти:
ADO_SHM_DMA_SAFE
физическая непрерывность для обеспечения DMA операций.
ADO_DMA_ISA
блок памяти должен начинаться по границе 64 Кб блока.
ADO_DMA_16M
блок памяти должен быть расположен в пределах первых 16 Мб памяти.
phys_addr
Буфер, где функция может сохранить физический адрес выделенной памяти.

Библиотека:

libado

Описание:

Функция ado_shm_alloc() выделяет блок разделяемой памяти, который обычно используется в качестве DMA буфера.

Функция ado_shm_mmap() может использоваться в случае, если устройство имеет собственную память и DMA буфер должен выделяться из нее. В этом случае память не выделяется из системы, а мапируется из памяти устройства.

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

Указатель на выделенную память или NULL при возникновении ошибки (также устанавливается errno).

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

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

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

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

ado_shm_free(), ado_shm_mmap()




Предыдущий раздел: Библиотека libado