28 #include "rtos/Semaphore.h" 29 #include "rtos/Mutex.h" 61 virtual void get_ifname(
char *name, uint8_t size)
const;
106 virtual bool link_out(emac_mem_buf_t *buf);
181 uint8_t mcast_hash_refcnt[64];
184 emac_mem_buf_t *tx_buf;
202 mbed_rtos_storage_thread_t thread_cb;
219 static void eth_thread(
void* instance);
231 void write_phy(uint8_t reg_addr, uint16_t data);
236 void read_phy(uint8_t reg_addr, uint16_t *data);
243 void link_state_poll(
void);
248 void data_init(
void);
253 void data_deinit(
void);
virtual void set_all_multicast(bool all)
Request reception of all multicast packets.
virtual void set_hwaddr(const uint8_t *addr)
Set HW address for interface.
The Semaphore class is used to manage and protect access to a set of shared resources.
#define SL_ETH_NUM_RX_BD
Number of descriptors in receive list.
#define SL_ETH_NUM_TX_BD
Number of descriptors in transmit list.
virtual uint32_t get_mtu_size() const
Return maximum transmission unit.
virtual void add_multicast_group(const uint8_t *address)
Add device to a multicast group.
virtual bool power_up()
Initializes the HW.
virtual bool link_out(emac_mem_buf_t *buf)
Sends the packet over the link.
mbed::Callback< void(emac_mem_buf_t *buf)> emac_link_input_cb_t
Callback to be register with EMAC interface and to be called for received packets.
virtual void get_ifname(char *name, uint8_t size) const
Return interface name.
virtual void set_memory_manager(EMACMemoryManager &mem_mngr)
Sets memory manager that is used to handle memory buffers.
virtual uint32_t get_align_preference() const
Gets memory buffer alignment preference.
This interface should be used to abstract low level access to networking hardware All operations rece...
virtual bool get_hwaddr(uint8_t *addr) const
Return interface-supplied HW address.
virtual void remove_multicast_group(const uint8_t *address)
Remove device from a multicast group.
virtual uint8_t get_hwaddr_size() const
Returns size of the underlying interface HW address size.
virtual void power_down()
Deinitializes the HW.
virtual void set_link_input_cb(emac_link_input_cb_t input_cb)
Sets a callback that needs to be called for packets received for that interface.
virtual void set_link_state_cb(emac_link_state_change_cb_t state_cb)
Sets a callback that needs to be called on link status changes for given interface.