Robobo
emac_device Struct Reference

#include <emac.h>

Public Attributes

Emacp_hw
 
uint8_t * p_tx_buffer
 
uint8_t * p_rx_buffer
 
emac_rx_descriptor_t * p_rx_dscr
 
emac_tx_descriptor_t * p_tx_dscr
 
emac_dev_tx_cb_t func_rx_cb
 
emac_dev_wakeup_cb_t func_wakeup_cb
 
emac_dev_tx_cb_tfunc_tx_cb_list
 
uint16_t us_rx_list_size
 
uint16_t us_rx_idx
 
uint16_t us_tx_list_size
 
uint16_t us_tx_head
 
uint16_t us_tx_tail
 
uint8_t uc_wakeup_threshold
 

Detailed Description

EMAC driver structure.

Member Data Documentation

emac_dev_tx_cb_t emac_device::func_rx_cb

Optional callback to be invoked once a frame has been received

emac_dev_tx_cb_t* emac_device::func_tx_cb_list

Optional callback list to be invoked once TD has been processed

emac_dev_wakeup_cb_t emac_device::func_wakeup_cb

Optional callback to be invoked once several TDs have been released

Emac* emac_device::p_hw

Pointer to HW register base

uint8_t* emac_device::p_rx_buffer

Pointer to allocated RX buffer

emac_rx_descriptor_t* emac_device::p_rx_dscr

Pointer to Rx TDs (must be 8-byte aligned)

uint8_t* emac_device::p_tx_buffer

Pointer to allocated TX buffer. Section 3.6 of AMBA 2.0 spec states that burst should not cross 1K Boundaries. Receive buffer manager writes are burst of 2 words => 3 lsb bits of the address shall be set to 0.

emac_tx_descriptor_t* emac_device::p_tx_dscr

Pointer to Tx TDs (must be 8-byte aligned)

uint8_t emac_device::uc_wakeup_threshold

Number of free TD before wakeup callback is invoked

uint16_t emac_device::us_rx_idx

RX index for current processing TD

uint16_t emac_device::us_rx_list_size

RX TD list size

uint16_t emac_device::us_tx_head

Circular buffer head pointer by upper layer (buffer to be sent)

uint16_t emac_device::us_tx_list_size

TX TD list size

uint16_t emac_device::us_tx_tail

Circular buffer tail pointer incremented by handlers (buffer sent)


The documentation for this struct was generated from the following file: