#ifndef _EMAC_HW_H_
#define _EMAC_HW_H_
#define EMAC_EMAC_WRAPPER_CSR1 …
#define EMAC_EMAC_WRAPPER_CSR2 …
#define EMAC_EMAC_WRAPPER_TX_TS_LO …
#define EMAC_EMAC_WRAPPER_TX_TS_HI …
#define EMAC_EMAC_WRAPPER_TX_TS_INX …
enum emac_dma_order { … };
enum emac_dma_req_block { … };
#define BITS_GET(val, lo, hi) …
#define BITS_SET(val, lo, hi, new_val) …
struct emac_rrd { … };
struct emac_tpd { … };
struct emac_ring_header { … };
struct emac_buffer { … };
struct emac_rfd_ring { … };
struct emac_rrd_ring { … };
struct emac_rx_queue { … };
struct emac_tpd_ring { … };
struct emac_tx_queue { … };
struct emac_adapter;
int emac_mac_up(struct emac_adapter *adpt);
void emac_mac_down(struct emac_adapter *adpt);
void emac_mac_reset(struct emac_adapter *adpt);
void emac_mac_stop(struct emac_adapter *adpt);
void emac_mac_mode_config(struct emac_adapter *adpt);
void emac_mac_rx_process(struct emac_adapter *adpt, struct emac_rx_queue *rx_q,
int *num_pkts, int max_pkts);
netdev_tx_t emac_mac_tx_buf_send(struct emac_adapter *adpt,
struct emac_tx_queue *tx_q,
struct sk_buff *skb);
void emac_mac_tx_process(struct emac_adapter *adpt, struct emac_tx_queue *tx_q);
void emac_mac_rx_tx_ring_init_all(struct platform_device *pdev,
struct emac_adapter *adpt);
int emac_mac_rx_tx_rings_alloc_all(struct emac_adapter *adpt);
void emac_mac_rx_tx_rings_free_all(struct emac_adapter *adpt);
void emac_mac_multicast_addr_clear(struct emac_adapter *adpt);
void emac_mac_multicast_addr_set(struct emac_adapter *adpt, u8 *addr);
#endif