Robobo
|
#include <emac.h>
Public Attributes | |
Emac * | p_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_t * | func_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 |
EMAC driver structure.
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)