axidma: XAxiDma_BdRing Struct Reference

| axidma Xilinx SDK Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List
- Examples

- Data Structures
- Data Fields

Data Fields
XAxiDma_BdRing Struct Reference
Axidma_v9_10

Container structure for descriptor storage control. More...

## Data Fields
UINTPTR | ChanBase
| physical base address More...
int | IsRxChannel
| Is this a receive channel. More...
volatile int | RunState
| Whether channel is running. More...
int | HasStsCntrlStrm
| Whether has stscntrl stream. More...
UINTPTR | FirstBdPhysAddr
| Physical address of 1st BD in list. More...
UINTPTR | FirstBdAddr
| Virtual address of 1st BD in list. More...
UINTPTR | LastBdAddr
| Virtual address of last BD in the list. More...
u32 | Length
| Total size of ring in bytes. More...
UINTPTR | Separation
        Number of bytes between the starting
address of adjacent BDs More...
XAxiDma_Bd * | FreeHead
| First BD in the free group. More...
XAxiDma_Bd * | PreHead
| First BD in the pre-work group. More...
XAxiDma_Bd * | HwHead
| First BD in the work group. More...
XAxiDma_Bd * | HwTail
| Last BD in the work group. More...
XAxiDma_Bd * | PostHead
| First BD in the post-work group. More...
XAxiDma_Bd * | BdaRestart
| BD to load when channel is started. More...
XAxiDma_Bd * | CyclicBd
| Useful for Cyclic DMA operations. More...
int | FreeCnt
| Number of allocatable BDs in free group. More...
int | PreCnt
| Number of BDs in pre-work group. More...
int | HwCnt
| Number of BDs in work group. More...
int | PostCnt
| Number of BDs in post-work group. More...
int | AllCnt
| Total Number of BDs for channel. More...
int | RingIndex
| Ring Index. More...
int | Cyclic
| Check for cyclic DMA Mode. More...

## Detailed Description

Container structure for descriptor storage control.

If address translation is enabled, then all addresses and pointers excluding FirstBdPhysAddr are expressed in terms of the virtual address.

## Field Documentation

int XAxiDma_BdRing::AllCnt

Total Number of BDs for channel.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingClone(), XAxiDma_BdRingCreate(), and XAxiDma_UpdateBdRingCDesc().

XAxiDma_Bd* XAxiDma_BdRing::BdaRestart

BD to load when channel is started.

Referenced by XAxiDma_BdRingCreate(), and XAxiDma_UpdateBdRingCDesc().

UINTPTR XAxiDma_BdRing::ChanBase

physical base address

Referenced by XAxiDma_BdRingDumpRegs(), XAxiDma_BdRingGetCoalesce(), XAxiDma_BdRingSetCoalesce(), XAxiDma_BdRingToHw(), XAxiDma_CfgInitialize(), XAxiDma_Pause(), XAxiDma_ResetIsDone(), XAxiDma_SimpleTransfer(), XAxiDma_StartBdRingHw(), and XAxiDma_UpdateBdRingCDesc().

int XAxiDma_BdRing::Cyclic

Check for cyclic DMA Mode.

Referenced by XAxiDma_BdRingCreate(), XAxiDma_BdRingFromHw(), XAxiDma_BdRingToHw(), and XAxiDma_StartBdRingHw().

XAxiDma_Bd* XAxiDma_BdRing::CyclicBd

Useful for Cyclic DMA operations.

Referenced by XAxiDma_BdRingCreate(), XAxiDma_BdRingToHw(), and XAxiDma_StartBdRingHw().

UINTPTR XAxiDma_BdRing::FirstBdAddr

Virtual address of 1st BD in list.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingClone(), and XAxiDma_BdRingCreate().

UINTPTR XAxiDma_BdRing::FirstBdPhysAddr

Physical address of 1st BD in list.

Referenced by XAxiDma_BdRingCheck(), and XAxiDma_BdRingCreate().

int XAxiDma_BdRing::FreeCnt

Number of allocatable BDs in free group.

Referenced by XAxiDma_BdRingAlloc(), XAxiDma_BdRingCheck(), XAxiDma_BdRingClone(), XAxiDma_BdRingCreate(), XAxiDma_BdRingFree(), and XAxiDma_BdRingUnAlloc().

XAxiDma_Bd* XAxiDma_BdRing::FreeHead

First BD in the free group.

Referenced by XAxiDma_BdRingAlloc(), XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), and XAxiDma_BdRingUnAlloc().

int XAxiDma_BdRing::HasStsCntrlStrm

Whether has stscntrl stream.

Referenced by XAxiDma_BdRingCreate(), and XAxiDma_CfgInitialize().

int XAxiDma_BdRing::HwCnt

Number of BDs in work group.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), XAxiDma_BdRingFromHw(), XAxiDma_BdRingToHw(), and XAxiDma_StartBdRingHw().

XAxiDma_Bd* XAxiDma_BdRing::HwHead

First BD in the work group.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), and XAxiDma_BdRingFromHw().

XAxiDma_Bd* XAxiDma_BdRing::HwTail

Last BD in the work group.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), XAxiDma_BdRingFromHw(), XAxiDma_BdRingToHw(), and XAxiDma_StartBdRingHw().

int XAxiDma_BdRing::IsRxChannel

Is this a receive channel.

Referenced by XAxiDma_BdRingFromHw(), XAxiDma_BdRingToHw(), XAxiDma_CfgInitialize(), XAxiDma_StartBdRingHw(), and XAxiDma_UpdateBdRingCDesc().

UINTPTR XAxiDma_BdRing::LastBdAddr

Virtual address of last BD in the list.

Referenced by XAxiDma_BdRingCheck(), and XAxiDma_BdRingCreate().

u32 XAxiDma_BdRing::Length

Total size of ring in bytes.

Referenced by XAxiDma_BdRingCreate().

int XAxiDma_BdRing::PostCnt

Number of BDs in post-work group.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), XAxiDma_BdRingFree(), and XAxiDma_BdRingFromHw().

XAxiDma_Bd* XAxiDma_BdRing::PostHead

First BD in the post-work group.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), and XAxiDma_BdRingFree().

int XAxiDma_BdRing::PreCnt

Number of BDs in pre-work group.

Referenced by XAxiDma_BdRingAlloc(), XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), XAxiDma_BdRingToHw(), and XAxiDma_BdRingUnAlloc().

XAxiDma_Bd* XAxiDma_BdRing::PreHead

First BD in the pre-work group.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), and XAxiDma_BdRingToHw().

int XAxiDma_BdRing::RingIndex

Ring Index.

Referenced by XAxiDma_BdRingDumpRegs(), XAxiDma_BdRingToHw(), XAxiDma_CfgInitialize(), XAxiDma_StartBdRingHw(), and XAxiDma_UpdateBdRingCDesc().

volatile int XAxiDma_BdRing::RunState

Whether channel is running.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingClone(), XAxiDma_BdRingCreate(), XAxiDma_BdRingToHw(), XAxiDma_CfgInitialize(), XAxiDma_Pause(), XAxiDma_Reset(), XAxiDma_Resume(), XAxiDma_StartBdRingHw(), and XAxiDma_UpdateBdRingCDesc().

UINTPTR XAxiDma_BdRing::Separation

        Number of bytes between the starting

address of adjacent BDs

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingClone(), and XAxiDma_BdRingCreate().