| emacps Vitis Drivers API Documentation

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

- Data Structures
- Data Fields

Data Fields
XEmacPs_BdRing Struct Reference
Overview

This is an internal structure used to maintain the DMA list. More...

## Data Fields
UINTPTR | PhysBaseAddr
| Physical address of 1st BD in list. More...
UINTPTR | BaseBdAddr
| Virtual address of 1st BD in list. More...
UINTPTR | HighBdAddr
| Virtual address of last BD in the list. More...
u32 | Length
| Total size of ring in bytes. More...
u32 | RunState
| Flag to indicate DMA is started. More...
u32 | Separation
| Number of bytes between the starting address of adjacent BDs. More...
XEmacPs_Bd * | FreeHead
| First BD in the free group. More...
XEmacPs_Bd * | PreHead
| First BD in the pre-work group. More...
XEmacPs_Bd * | HwHead
| First BD in the work group. More...
XEmacPs_Bd * | HwTail
| Last BD in the work group. More...
XEmacPs_Bd * | PostHead
| First BD in the post-work group. More...
XEmacPs_Bd * | BdaRestart
| BDA to load when channel is started. More...
volatile u32 | HwCnt
| Number of BDs in work group. More...
u32 | PreCnt
| Number of BDs in pre-work group. More...
u32 | FreeCnt
| Number of allocatable BDs in the free group. More...
u32 | PostCnt
| Number of BDs in post-work group. More...
u32 | AllCnt
| Total Number of BDs for channel. More...

## Detailed Description

This is an internal structure used to maintain the DMA list.

## Field Documentation

u32 XEmacPs_BdRing::AllCnt

Total Number of BDs for channel.

Referenced by XEmacPs_BdRingCheck(), XEmacPs_BdRingClone(), and XEmacPs_BdRingCreate().

UINTPTR XEmacPs_BdRing::BaseBdAddr

Virtual address of 1st BD in list.

Referenced by EmacPsDmaSingleFrameIntrExample(), XEmacPs_BdRingCheck(), XEmacPs_BdRingClone(), XEmacPs_BdRingCreate(), and XEmacPs_Start().

XEmacPs_Bd* XEmacPs_BdRing::BdaRestart

BDA to load when channel is started.

Referenced by XEmacPs_BdRingCreate().

u32 XEmacPs_BdRing::FreeCnt

Number of allocatable BDs in the free group.

Referenced by XEmacPs_BdRingAlloc(), XEmacPs_BdRingCheck(), XEmacPs_BdRingClone(), XEmacPs_BdRingCreate(), XEmacPs_BdRingFree(), and XEmacPs_BdRingUnAlloc().

XEmacPs_Bd* XEmacPs_BdRing::FreeHead

First BD in the free group.

Referenced by XEmacPs_BdRingAlloc(), XEmacPs_BdRingCheck(), XEmacPs_BdRingCreate(), XEmacPs_BdRingPtrReset(), and XEmacPs_BdRingUnAlloc().

UINTPTR XEmacPs_BdRing::HighBdAddr

Virtual address of last BD in the list.

Referenced by XEmacPs_BdRingCheck(), and XEmacPs_BdRingCreate().

volatile u32 XEmacPs_BdRing::HwCnt

Number of BDs in work group.

Referenced by XEmacPs_BdRingCheck(), XEmacPs_BdRingCreate(), XEmacPs_BdRingFromHwRx(), XEmacPs_BdRingFromHwTx(), and XEmacPs_BdRingToHw().

XEmacPs_Bd* XEmacPs_BdRing::HwHead

First BD in the work group.

Referenced by XEmacPs_BdRingCheck(), XEmacPs_BdRingCreate(), XEmacPs_BdRingFromHwRx(), XEmacPs_BdRingFromHwTx(), and XEmacPs_BdRingPtrReset().

XEmacPs_Bd* XEmacPs_BdRing::HwTail

Last BD in the work group.

Referenced by XEmacPs_BdRingCheck(), XEmacPs_BdRingCreate(), XEmacPs_BdRingFromHwRx(), XEmacPs_BdRingFromHwTx(), XEmacPs_BdRingPtrReset(), and XEmacPs_BdRingToHw().

u32 XEmacPs_BdRing::Length

Total size of ring in bytes.

Referenced by XEmacPs_BdRingCreate().

UINTPTR XEmacPs_BdRing::PhysBaseAddr

Physical address of 1st BD in list.

Referenced by XEmacPs_BdRingCheck(), and XEmacPs_BdRingCreate().

u32 XEmacPs_BdRing::PostCnt

Number of BDs in post-work group.

Referenced by XEmacPs_BdRingCheck(), XEmacPs_BdRingCreate(), XEmacPs_BdRingFree(), XEmacPs_BdRingFromHwRx(), and XEmacPs_BdRingFromHwTx().

XEmacPs_Bd* XEmacPs_BdRing::PostHead

First BD in the post-work group.

Referenced by XEmacPs_BdRingCheck(), XEmacPs_BdRingCreate(), XEmacPs_BdRingFree(), and XEmacPs_BdRingPtrReset().

u32 XEmacPs_BdRing::PreCnt

Number of BDs in pre-work group.

Referenced by XEmacPs_BdRingAlloc(), XEmacPs_BdRingCheck(), XEmacPs_BdRingCreate(), XEmacPs_BdRingToHw(), and XEmacPs_BdRingUnAlloc().

XEmacPs_Bd* XEmacPs_BdRing::PreHead

First BD in the pre-work group.

Referenced by XEmacPs_BdRingCheck(), XEmacPs_BdRingCreate(), XEmacPs_BdRingPtrReset(), and XEmacPs_BdRingToHw().

u32 XEmacPs_BdRing::RunState

Flag to indicate DMA is started.

Referenced by XEmacPs_BdRingCheck(), XEmacPs_BdRingClone(), and XEmacPs_BdRingCreate().

u32 XEmacPs_BdRing::Separation

Number of bytes between the starting address of adjacent BDs.

Referenced by XEmacPs_BdRingCheck(), XEmacPs_BdRingClone(), and XEmacPs_BdRingCreate().