 | Глава 23. Дополнительные API платформы Cell BE
Данные API не являются частью основного набора API ALF. Они используются только на платформе Cell BE. Нижеследующие примеры демонстрируют их использование.
int alf_accel_input_dtl_prepare
(void* p_task_context, void *p_parm_context, void *p_dtl,
unsigned int current_iter, unsigned int num_iter)
{
mfc_element_t *p_dma_list;
unsigned int max_entry, cnt;
ALF_ACCEL_DTL_BEGIN(p_dtl, ALF_IO_BUF_IN, 0);
ALF_ACCEL_DTL_ENTRY_ADD(p_dtl, 16, ALF_DATA_INT32, ea_global_data_1);
ALF_ACCEL_DTL_CBEA_DMA_LIST_BUFFER_GET(p_dtl, &p_dma_list, &max_entry);
for(cnt=0; cnt<100 && cnt <max_entry; cnt++)
{
p_dma_list[cnt] = .;
}
ALF_ACCEL_DTL_CBEA_DMA_LIST_BUFFER_UPDATE(p_dtl, cnt);
ALF_ACCEL_DTL_ENTRY_ADD(p_dtl, 24, ALF_DATA_INT32, ea_global_data_2);
ALF_ACCEL_DTL_END(p_dtl);
}
|
ALF_ACCEL_DTL_CBEA_DMA_LIST_BUFFER_GET
ИМЯ
ALF_ACCEL_DTL_CBEA_DMA_LIST_BUFFER_GET — Получает буферы списка внутренних DMA.
СИНОПСИС
ALF_ACCEL_DTL_CBEA_DMA_LIST_BUFFER_GET
(void *p_dtl, void **pp_dma_list_buffer,
unsigned int *p_max_entries); |
Параметры
| p_dtl [IN] | Указатель на буфер, содержащий список пересылки данных. |
|---|
| pp_dma_list_buffer [OUT] | Возвращает указатель на буфер со списком внутренних DMA. |
|---|
| p_max_entries [OUT] | Возвращает максимально допустимое число элементов в данном буфере |
|---|
ОПИСАНИЕ
Данная служебная функция получает буферы списков внутренних DMA, что позволяет обращаться к ним непосредственно. Ее следует вызывать после ALF_ACCEL_DTL_BEGIN и до ALF_ACCEL_DTL_END. После данного вызова функцию ALF_ACCEL_DTL_ENTRY_ADD можно использовать не раньше, чем была вызвана ALF_ACCEL_DTL_CBEA_DMA_LIST_BUFFER_UPDATE.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
| 0 | Вызов API корректно завершен. |
|---|
| меньше 0 | В процессе выполнения функции возникла ошибка. Код ошибки передается обработчику событий. |
|---|
ALF_ACCEL_DTL_CBEA_DMA_LIST_BUFFER_UPDATE
ИМЯ
ALF_ACCEL_DTL_CBEA_DMA_LIST_BUFFER_UPDATE — Актуализирует внутреннюю структуру данных, когда завершается процедура прямого доступа.
СИНОПСИС
ALF_ACCEL_DTL_CBEA_DMA_LIST_BUFFER_UPDATE (void *p_dtl, unsigned int num_entries); |
Параметры
| p_dt_list_buffer [IN] | Указатель на буфер со списком пересылки данных. |
|---|
| num_entries [IN] | Число элементов списка DMA, заполненной в процессе обращения с прямым доступом. |
|---|
ОПИСАНИЕ
Данная служебная функция актуализирует внутреннюю структуру данных, когда завершается процедура прямого доступа. Ее следует вызывать после ALF_ACCEL_DTL_CBEA_DMA_LIST_BUFFER_GET и до ALF_ACCEL_DTL_END. Любые дальнейшие обращения к ALF_ACCEL_DTL_ENTRY_ADD могут совершаться лишь после этого вызова.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Не определено
|  |