takashi kadono / Mbed OS Nucleo_446

Dependencies:   ssd1331

Embed: (wiki syntax)

« Back to documentation index

EMAC Class Reference

This interface should be used to abstract low level access to networking hardware All operations receive a `void *` hw pointer which an emac device provides when it is registered with a stack. More...

#include <EMAC.h>

Public Types

typedef 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.
typedef mbed::Callback< void(bool
up)> 
emac_link_state_change_cb_t
 Callback to be register with Emac interface and to be called for link status changes.

Public Member Functions

virtual uint32_t get_mtu_size () const =0
 Return maximum transmission unit.
virtual uint32_t get_align_preference () const =0
 Gets memory buffer alignment preference.
virtual void get_ifname (char *name, uint8_t size) const =0
 Return interface name.
virtual uint8_t get_hwaddr_size () const =0
 Returns size of the underlying interface HW address size.
virtual bool get_hwaddr (uint8_t *addr) const =0
 Return interface-supplied HW address.
virtual void set_hwaddr (const uint8_t *addr)=0
 Set HW address for interface.
virtual bool link_out (emac_mem_buf_t *buf)=0
 Sends the packet over the link.
virtual bool power_up ()=0
 Initializes the HW.
virtual void power_down ()=0
 Deinitializes the HW.
virtual void set_link_input_cb (emac_link_input_cb_t input_cb)=0
 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)=0
 Sets a callback that needs to be called on link status changes for given interface.
virtual void add_multicast_group (const uint8_t *address)=0
 Add device to a multicast group.
virtual void remove_multicast_group (const uint8_t *address)=0
 Remove device from a multicast group.
virtual void set_all_multicast (bool all)=0
 Request reception of all multicast packets.
virtual void set_memory_manager (EMACMemoryManager &mem_mngr)=0
 Sets memory manager that is used to handle memory buffers.

Static Public Member Functions

static EMACget_default_instance ()
 Return the default on-board EMAC.

Detailed Description

This interface should be used to abstract low level access to networking hardware All operations receive a `void *` hw pointer which an emac device provides when it is registered with a stack.

Definition at line 32 of file EMAC.h.


Member Typedef Documentation

typedef 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.

Parameters:
bufReceived data

Definition at line 48 of file EMAC.h.

typedef mbed::Callback<void (bool up)> emac_link_state_change_cb_t

Callback to be register with Emac interface and to be called for link status changes.

Parameters:
upLink status

Definition at line 56 of file EMAC.h.


Member Function Documentation

virtual void add_multicast_group ( const uint8_t *  address ) [pure virtual]

Add device to a multicast group.

Parameters:
addressA multicast group hardware address
virtual uint32_t get_align_preference (  ) const [pure virtual]

Gets memory buffer alignment preference.

Gets preferred memory buffer alignment of the Emac device. IP stack may or may not align link out memory buffer chains using the alignment.

Returns:
Memory alignment requirement in bytes
static EMAC& get_default_instance (  ) [static]

Return the default on-board EMAC.

Returns the default on-board EMAC - this will be target-specific, and may not be available on all targets.

virtual bool get_hwaddr ( uint8_t *  addr ) const [pure virtual]

Return interface-supplied HW address.

Copies HW address to provided memory,

Parameters:
addrhas to be of correct size see get_hwaddr_size

HW address need not be provided if this interface does not have its own HW address configuration; stack will choose address from central system configuration if the function returns false and does not write to addr.

Parameters:
addrHW address for underlying interface
Returns:
true if HW address is available
virtual uint8_t get_hwaddr_size (  ) const [pure virtual]

Returns size of the underlying interface HW address size.

Returns:
HW address size in bytes
virtual void get_ifname ( char *  name,
uint8_t  size 
) const [pure virtual]

Return interface name.

Parameters:
namePointer to where the name should be written
sizeMaximum number of character to copy
virtual uint32_t get_mtu_size (  ) const [pure virtual]

Return maximum transmission unit.

Returns:
MTU in bytes
virtual bool link_out ( emac_mem_buf_t *  buf ) [pure virtual]

Sends the packet over the link.

That can not be called from an interrupt context.

Parameters:
bufPacket to be send
Returns:
True if the packet was send successfully, False otherwise
virtual void power_down (  ) [pure virtual]

Deinitializes the HW.

virtual bool power_up (  ) [pure virtual]

Initializes the HW.

Returns:
True on success, False in case of an error.
virtual void remove_multicast_group ( const uint8_t *  address ) [pure virtual]

Remove device from a multicast group.

Parameters:
addressA multicast group hardware address
virtual void set_all_multicast ( bool  all ) [pure virtual]

Request reception of all multicast packets.

Parameters:
allTrue to receive all multicasts False to receive only multicasts addressed to specified groups
virtual void set_hwaddr ( const uint8_t *  addr ) [pure virtual]

Set HW address for interface.

Provided address has to be of correct size, see get_hwaddr_size

Called to set the MAC address to actually use - if get_hwaddr is provided the stack would normally use that, but it could be overridden, eg for test purposes.

Parameters:
addrAddress to be set
virtual void set_link_input_cb ( emac_link_input_cb_t  input_cb ) [pure virtual]

Sets a callback that needs to be called for packets received for that interface.

Parameters:
input_cbFunction to be register as a callback
virtual void set_link_state_cb ( emac_link_state_change_cb_t  state_cb ) [pure virtual]

Sets a callback that needs to be called on link status changes for given interface.

Parameters:
state_cbFunction to be register as a callback
virtual void set_memory_manager ( EMACMemoryManager &  mem_mngr ) [pure virtual]

Sets memory manager that is used to handle memory buffers.

Parameters:
mem_mngrPointer to memory manager