--- /dev/null
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ Copyright (c) 2013 Broadcom Corporation
+ All Rights Reserved
+
+
+*/
+
+
+/******************************************************************************/
+/* */
+/* File Description: */
+/* */
+/* This header file defines all datatypes and functions exported for the */
+/* Ethernet MAC */
+/* */
+/******************************************************************************/
+
+
+#ifndef __UNIFIED_DRV_MAC_H
+#define __UNIFIED_DRV_MAC_H
+
+
+/*****************************************************************************/
+/* */
+/* Include files */
+/* */
+/*****************************************************************************/
+#if !defined(CONFIG_BCM947622)
+#include "rdpa_types.h"
+#else //47622 - does not have runner, just include necessary definitions
+
+#define rdpa_emac int
+
+/** EMAC rates */
+typedef enum
+{
+ rdpa_emac_rate_10m, /**< 10 Mbps */
+ rdpa_emac_rate_100m, /**< 100 Mbps */
+ rdpa_emac_rate_1g, /**< 1 Gbps */
+ rdpa_emac_rate_2_5g, /**< 2.5 Gbps */
+
+ rdpa_emac_rate__num_of, /* Number of rates */
+} rdpa_emac_rate;
+
+/** EMAC configuration */
+typedef struct
+{
+ char loopback; /**< 1 = line loopback */
+ rdpa_emac_rate rate; /**< EMAC rate */
+ char generate_crc; /**< 1 = generate CRC */
+ char full_duplex; /**< 1 = full duplex */
+ char pad_short; /**< 1 = pad short frames */
+ char allow_too_long;/**< 1 = allow long frames */
+ char check_length; /**< 1 = check frame length */
+ uint32_t preamble_length; /**< Preamble length */
+ uint32_t back2back_gap; /**< Back2Back inter-packet gap */
+ uint32_t non_back2back_gap; /**< Non Back2Back inter-packet gap */
+ uint32_t min_interframe_gap; /**< Min inter-frame gap */
+ char rx_flow_control;/**< 1 = enable RX flow control */
+ char tx_flow_control;/**< 1 = enable TX flow control */
+} rdpa_emac_cfg_t;
+
+/** RX RMON counters.
+ * Underlying type for emac_rx_stat aggregate type.
+ */
+typedef struct
+{
+ uint32_t byte; /**< Receive Byte Counter */
+ uint32_t packet; /**< Receive Packet Counter */
+ uint32_t frame_64; /**< Receive 64 Byte Frame Counter */
+ uint32_t frame_65_127; /**< Receive 65 to 127 Byte Frame Counter */
+ uint32_t frame_128_255; /**< Receive 128 to 255 Byte Frame Counter */
+ uint32_t frame_256_511; /**< Receive 256 to 511 Byte Frame Counter */
+ uint32_t frame_512_1023; /**< Receive 512 to 1023 Byte Frame Counter */
+ uint32_t frame_1024_1518; /**< Receive 1024 to 1518 Byte Frame Counter */
+ uint32_t frame_1519_mtu; /**< Receive 1519 to MTU Frame Counter */
+ uint32_t multicast_packet; /**< Receive Multicast Packet */
+ uint32_t broadcast_packet; /**< Receive Broadcast Packet */
+ uint32_t unicast_packet; /**< Receive Unicast Packet */
+ uint32_t alignment_error; /**< Receive Alignment error */
+ uint32_t frame_length_error;/**< Receive Frame Length Error Counter */
+ uint32_t code_error; /**< Receive Code Error Counter */
+ uint32_t carrier_sense_error;/**< Receive Carrier sense error */
+ uint32_t fcs_error; /**< Receive FCS Error Counter */
+ uint32_t control_frame; /**< Receive Control Frame Counter */
+ uint32_t pause_control_frame;/**< Receive Pause Control Frame */
+ uint32_t unknown_opcode; /**< Receive Unknown opcode */
+ uint32_t undersize_packet; /**< Receive Undersize Packet */
+ uint32_t oversize_packet; /**< Receive Oversize Packet */
+ uint32_t fragments; /**< Receive Fragments */
+ uint32_t jabber; /**< Receive Jabber counter */
+ uint32_t overflow; /**< Receive Overflow counter */
+} rdpa_emac_rx_stat_t;
+
+/** Tx RMON counters.
+ * Underlying type for emac_tx_stat aggregate type.
+ */
+typedef struct
+{
+ uint32_t byte; /**< Transmit Byte Counter */
+ uint32_t packet; /**< Transmit Packet Counter */
+ uint32_t frame_64; /**< Transmit 64 Byte Frame Counter */
+ uint32_t frame_65_127; /**< Transmit 65 to 127 Byte Frame Counter */
+ uint32_t frame_128_255; /**< Transmit 128 to 255 Byte Frame Counter */
+ uint32_t frame_256_511; /**< Transmit 256 to 511 Byte Frame Counter */
+ uint32_t frame_512_1023; /**< Transmit 512 to 1023 Byte Frame Counter */
+ uint32_t frame_1024_1518; /**< Transmit 1024 to 1518 Byte Frame Counter */
+ uint32_t frame_1519_mtu; /**< Transmit 1519 to MTU Frame Counter */
+ uint32_t fcs_error; /**< Transmit FCS Error */
+ uint32_t multicast_packet; /**< Transmit Multicast Packet */
+ uint32_t broadcast_packet; /**< Transmit Broadcast Packet */
+ uint32_t unicast_packet; /**< Transmit Unicast Packet */
+ uint32_t excessive_collision; /**< Transmit Excessive collision counter */
+ uint32_t late_collision; /**< Transmit Late collision counter */
+ uint32_t single_collision; /**< Transmit Single collision frame counter */
+ uint32_t multiple_collision;/**< Transmit Multiple collision frame counter */
+ uint32_t total_collision; /**< Transmit Total Collision Counter */
+ uint32_t pause_control_frame; /**< Transmit PAUSE Control Frame */
+ uint32_t deferral_packet; /**< Transmit Deferral Packet */
+ uint32_t excessive_deferral_packet; /**< Transmit Excessive Deferral Packet */
+ uint32_t jabber_frame; /**< Transmit Jabber Frame */
+ uint32_t control_frame; /**< Transmit Control Frame */
+ uint32_t oversize_frame; /**< Transmit Oversize Frame counter */
+ uint32_t undersize_frame; /**< Transmit Undersize Frame */
+ uint32_t fragments_frame; /**< Transmit Fragments Frame counter */
+ uint32_t error; /**< Transmission errors*/
+ uint32_t underrun; /**< Transmission underrun */
+} rdpa_emac_tx_stat_t;
+
+/** Emac statistics */
+typedef struct
+{
+ rdpa_emac_rx_stat_t rx; /**< Emac Receive Statistics */
+ rdpa_emac_tx_stat_t tx; /**< Emac Transmit Statistics */
+} rdpa_emac_stat_t;
+
+/** Ethernet address */
+typedef struct {
+ uint8_t b[6]; /**< Address bytes */
+} bdmf_mac_t;
+
+#endif //47622
+/******************************************************************************/
+/* */
+/* Types and values definitions */
+/* */
+/******************************************************************************/
+
+typedef struct
+{
+ int32_t rxFlowEnable;
+ int32_t txFlowEnable;
+}S_MAC_HWAPI_FLOW_CTRL;
+
+typedef enum
+{
+ MAC_LPBK_NONE,
+ MAC_LPBK_LOCAL,
+ MAC_LPBK_REMOTE,
+ MAC_LPBK_BOTH
+}MAC_LPBK;
+
+#ifndef _BYTE_ORDER_LITTLE_ENDIAN_
+typedef struct
+{
+ uint32_t reserved:26;// Reserved bits must be written with 0. A read returns an unknown value.
+ uint32_t mac_link_stat:1;// Link status indication.Reset value is 0x0.
+ uint32_t mac_tx_pause:1;// 1: MAC Tx pause enabled. 0: MAC Tx pause disabled. Reset value is 0x1.
+ uint32_t mac_rx_pause:1;// 1: MAC Rx pause enabled. 0: MAC Rx pause disabled. Reset value is 0x1.
+ uint32_t mac_duplex:1;//1: Half duplex. 0: Full duplex. Reset value is 0x0.
+ uint32_t mac_speed:2;// 00: 10Mbps, 01: 100Mbps, 10: 1Gbps, 11: 2.5Gbps Reset value is 0x2.
+
+}S_HWAPI_MAC_STATUS;
+#else
+typedef struct
+{
+ uint32_t mac_speed:2;// 00: 10Mbps, 01: 100Mbps, 10: 1Gbps, 11: 2.5Gbps Reset value is 0x2.
+ uint32_t mac_duplex:1;//1: Half duplex. 0: Full duplex. Reset value is 0x0.
+ uint32_t mac_rx_pause:1;// 1: MAC Rx pause enabled. 0: MAC Rx pause disabled. Reset value is 0x1.
+ uint32_t mac_tx_pause:1;// 1: MAC Tx pause enabled. 0: MAC Tx pause disabled. Reset value is 0x1.
+ uint32_t mac_link_stat:1;// Link status indication.Reset value is 0x0.
+ uint32_t reserved:26;// Reserved bits must be written with 0. A read returns an unknown value.
+
+}S_HWAPI_MAC_STATUS;
+#endif
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_configuration */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - get configuration */
+/* */
+/* Abstract: */
+/* */
+/* get the configuratin of a mac port ,note that current status of emac */
+/* might be different than configuration when working in autoneg */
+/* to get the current status use mac_hwapi_get_mac_status API */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* emac_cfg - structure holds the current configuration of the mac port */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_configuration(rdpa_emac emacNum,rdpa_emac_cfg_t *emac_cfg);
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_configuration */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set configuration */
+/* */
+/* Abstract: */
+/* */
+/* set the configuratin of a mac port */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* emac_cfg - structure holds the current configuration of the mac port */
+/* */
+/* Output: */
+/* */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_configuration(rdpa_emac emacNum,rdpa_emac_cfg_t *emac_cfg);
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_duplex */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - get port duplex */
+/* */
+/* Abstract: */
+/* */
+/* get the dulplex of a port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* full_duples : 1 = full dulplex,0 = half_duplex */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_duplex(rdpa_emac emacNum,int32_t *full_duplex);
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_duplex */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set port duplex */
+/* */
+/* Abstract: */
+/* */
+/* set the dulplex of a port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* full_duples : 1 = full dulplex,0 = half_duplex */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_duplex(rdpa_emac emacNum,int32_t full_duplex);
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_speed */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - get port speed rate */
+/* */
+/* Abstract: */
+/* */
+/* get the speed of a port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* rate - enum of the speed */
+/******************************************************************************/
+void mac_hwapi_get_speed(rdpa_emac emacNum,rdpa_emac_rate *rate);
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_speed */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set port speed rate */
+/* */
+/* Abstract: */
+/* */
+/* set the speed of a port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* rate - enum of the speed */
+/* */
+/* Output: */
+/* */
+/******************************************************************************/
+
+void mac_hwapi_set_speed(rdpa_emac emacNum,rdpa_emac_rate rate);
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_external_conf */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - en/disable external speed configuration */
+/* */
+/* Abstract: */
+/* */
+/* set port speed external configuration */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* enable - boolean enable */
+/* */
+/* Output: */
+/* */
+/******************************************************************************/
+
+void mac_hwapi_set_external_conf(rdpa_emac emacNum, int enable);
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_rxtx_enable */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set tx and rx enable */
+/* */
+/* Abstract: */
+/* */
+/* get tx and rx enable */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* rxtxEnable - boolean enable */
+/******************************************************************************/
+void mac_hwapi_get_rxtx_enable(rdpa_emac emacNum,int32_t *rxEnable,int32_t *txEnable);
+
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_rxtx_enable */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set tx and rx enable */
+/* */
+/* Abstract: */
+/* */
+/* set tx and rx enable */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* rxtxEnable - boolean enable */
+/* */
+/* Output: */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_rxtx_enable(rdpa_emac emacNum,int32_t rxEnable,int32_t txEnable);
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_sw_reset */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - get port software reset */
+/* */
+/* Abstract: */
+/* */
+/* get the sw reset bit of emac port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* swReset : 1 = reset,0 = not reset */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_sw_reset(rdpa_emac emacNum,int32_t *swReset);
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_sw_reset */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set port software reset */
+/* */
+/* Abstract: */
+/* */
+/* set the sw reset bit of emac port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* swReset : 1 = reset,0 = not reset */
+/* */
+/* Output: */
+/* */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_sw_reset(rdpa_emac emacNum,int32_t swReset);
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_tx_min_pkt_size */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - get tx minimum packet size */
+/* */
+/* Abstract: */
+/* */
+/* Get the unimac configuration for minimum tx packet size */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* min_pkt_size : 14...125 */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_tx_min_pkt_size(rdpa_emac emacNum,int32_t *min_pkt_size);
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_tx_min_pkt_size */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set tx minimum packet size */
+/* */
+/* Abstract: */
+/* */
+/* Set the unimac configuration for minimum tx packet size */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* min_pkt_size : 14...125 */
+/* */
+/* Output: */
+/* */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_tx_min_pkt_size(rdpa_emac emacNum,int32_t min_pkt_size);
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_tx_max_frame_len */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - get port TX MTU */
+/* */
+/* Abstract: */
+/* */
+/* get the port maximum transmit unit size in bytes */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* maxTxFrameLen - size of frame in bytes */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_tx_max_frame_len(rdpa_emac emacNum,uint32_t *maxTxFrameLen );
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_tx_max_frame_len */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set port TX MTU */
+/* */
+/* Abstract: */
+/* */
+/* set the port maximum transmit unit size in bytes */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* maxTxFrameLen - size of frame in bytes */
+/* */
+/* Output: */
+/* */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_tx_max_frame_len(rdpa_emac emacNum,uint32_t maxTxFrameLen );
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_rx_max_frame_len */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - get port RX MTU */
+/* */
+/* Abstract: */
+/* */
+/* get the port maximum receive unit size in bytes */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* maxRxFrameLen - size of current MRU */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_rx_max_frame_len(rdpa_emac emacNum,uint32_t *maxRxFrameLen );
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_rx_max_frame_len */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set port RX MTU */
+/* */
+/* Abstract: */
+/* */
+/* set the port maximum receive unit size in bytes */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* maxRxFrameLen - size of current MRU */
+/* */
+/* Output: */
+/* */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_rx_max_frame_len(rdpa_emac emacNum,uint32_t maxRxFrameLen );
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_tx_igp_len */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set port inter frame gap */
+/* */
+/* Abstract: */
+/* */
+/* set the inter frame gap size in bytes */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* txIpgLen - length in bytes */
+/* */
+/* Output: */
+/* */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_tx_igp_len(rdpa_emac emacNum,uint32_t txIpgLen );
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_tx_igp_len */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - get port inter frame gap */
+/* */
+/* Abstract: */
+/* */
+/* get the inter frame gap size in bytes */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* txIpgLen - length in bytes */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_tx_igp_len(rdpa_emac emacNum,uint32_t *txIpgLen );
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_mac_status */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set port status */
+/* */
+/* Abstract: */
+/* */
+/* set the status of mac */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* macStatus : */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_mac_status(rdpa_emac emacNum,S_HWAPI_MAC_STATUS *macStatus);
+
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_flow_control */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - get port flow control */
+/* */
+/* Abstract: */
+/* */
+/* get the flow control of a port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* flowControl - structure with parameters of tx and rx flow control */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_flow_control(rdpa_emac emacNum,S_MAC_HWAPI_FLOW_CTRL *flowControl);
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_flow_control */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set port flow control */
+/* */
+/* Abstract: */
+/* */
+/* set the flow control of a port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* flowControl - structure with parameters of tx and rx flow control */
+/* */
+/* Output: */
+/* */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_flow_control(rdpa_emac emacNum,S_MAC_HWAPI_FLOW_CTRL *flowControl);
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_pause_params */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set port flow control */
+/* */
+/* Abstract: */
+/* */
+/* set the flow control of a port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* flowControl - structure with parameters of tx and rx flow control */
+/* */
+/* Output: */
+/* */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_pause_params(rdpa_emac emacNum,int32_t pauseCtrlEnable,uint32_t pauseTimer,uint32_t pauseQuanta);
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_rx_counters */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - get the rx counters of port */
+/* */
+/* Abstract: */
+/* */
+/* get the rx counters of port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* rxCounters : structure filled with counters */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_rx_counters(rdpa_emac emacNum,rdpa_emac_rx_stat_t *rxCounters);
+
+
+
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_tx_counters */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - get the tx counters of port */
+/* */
+/* Abstract: */
+/* */
+/* get the tx counters of port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* txCounters : structure filled with counters */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_tx_counters(rdpa_emac emacNum,rdpa_emac_tx_stat_t *txCounters);
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_init_emac */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - init the emac to well known state */
+/* */
+/* Abstract: */
+/* */
+/* initialized the emac port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* */
+/******************************************************************************/
+void mac_hwapi_init_emac(rdpa_emac emacNum);
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_loopback */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - init the emac to well known state */
+/* */
+/* Abstract: */
+/* */
+/* initialized the emac port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* */
+/******************************************************************************/
+void mac_hwapi_get_loopback(rdpa_emac emacNum,MAC_LPBK *loopback);
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_get_loopback */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - init the emac to well known state */
+/* */
+/* Abstract: */
+/* */
+/* initialized the emac port */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* */
+/* */
+/* Output: */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_loopback(rdpa_emac emacNum,MAC_LPBK loopback);
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_modify_flow_control_pause_pkt_addr */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - Modify the Flow Control pause pkt source address */
+/* */
+/* Abstract: */
+/* */
+/* This function modifies the flow control pause pkt source address */
+/* */
+/* Input: */
+/* */
+/* emacNum - EMAC id (0-5) */
+/* */
+/* mac - Flow Control mac address */
+/* */
+/* Output: N/A */
+/* */
+/******************************************************************************/
+void mac_hwapi_modify_flow_control_pause_pkt_addr ( rdpa_emac emacNum,
+ bdmf_mac_t mac);
+void mac_hwapi_set_unimac_cfg(rdpa_emac emacNum, int32_t enabled);
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_backpressure_ext */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set/reset backpressure to external switch */
+/* */
+/* Abstract: */
+/* */
+/* set/reset backpressure to external switch */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* enable - boolean enable */
+/* */
+/* Output: */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_backpressure_ext(rdpa_emac emacNum, int32_t enable);
+
+/******************************************************************************/
+/* */
+/* Name: */
+/* */
+/* mac_hwapi_set_eee */
+/* */
+/* Title: */
+/* */
+/* MAC Driver - set eee configuration */
+/* */
+/* Abstract: */
+/* */
+/* set eee configuration */
+/* */
+/* Input: */
+/* */
+/* emacNum - emac Port index */
+/* enable - boolean enable */
+/* */
+/* Output: */
+/* */
+/******************************************************************************/
+void mac_hwapi_set_eee(rdpa_emac emacNum, int32_t enable);
+
+#endif