Struct riot_sys::gnrc_netif_ops[][src]

#[repr(C)]
pub struct gnrc_netif_ops { pub init: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t)>, pub send: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t, pkt: *mut gnrc_pktsnip_t) -> c_int>, pub recv: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t) -> *mut gnrc_pktsnip_t>, pub get: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t, opt: *mut gnrc_netapi_opt_t) -> c_int>, pub set: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t, opt: *const gnrc_netapi_opt_t) -> c_int>, pub msg_handler: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t, msg: *mut msg_t)>, }
Expand description

@see gnrc_netif_ops_t

Fields

init: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t)>

@brief Initializes network interface beyond the default settings

@pre netif != NULL

@param[in] netif The network interface.

This is called after the network device’s initial configuration, right before the interface’s thread starts receiving messages. It is not necessary to lock the interface’s mutex gnrc_netif_t::mutex, since it is already locked. Set to @ref gnrc_netif_default_init() if you do not need any special initialization. If you do need special initialization, it is recommended to call @ref gnrc_netif_default_init() at the start of the custom initialization function set here.

send: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t, pkt: *mut gnrc_pktsnip_t) -> c_int>

@brief Send a @ref net_gnrc_pkt “packet” over the network interface

@pre netif != NULL && pkt != NULL

@note The function re-formats the content of @p pkt to a format expected by the netdev_driver_t::send() method of gnrc_netif_t::dev and releases the packet before returning (so no additional release should be required after calling this method).

@param[in] netif The network interface. @param[in] pkt A packet to send.

@return The number of bytes actually sent on success @return -EBADMSG, if the @ref net_gnrc_netif_hdr in @p pkt is missing or is in an unexpected format. @return -ENOTSUP, if sending @p pkt in the given format isn’t supported (e.g. empty payload with Ethernet). @return Any negative error code reported by gnrc_netif_t::dev.

recv: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t) -> *mut gnrc_pktsnip_t>

@brief Receives a @ref net_gnrc_pkt “packet” from the network interface

@pre netif != NULL

@note The function takes the bytes received via netdev_driver_t::recv() from gnrc_netif_t::dev and re-formats it to a @ref net_gnrc_pkt “packet” containing a @ref net_gnrc_netif_hdr and a payload header in receive order.

@param[in] netif The network interface.

@return The packet received. Contains the payload (with the type marked accordingly) and a @ref net_gnrc_netif_hdr in receive order. @return NULL, if @ref net_gnrc_pktbuf was full.

get: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t, opt: *mut gnrc_netapi_opt_t) -> c_int>

@brief Gets an option from the network interface

Use gnrc_netif_get_from_netdev() to just get options from gnrc_netif_t::dev.

@param[in] netif The network interface. @param[in] opt The option parameters.

@return Number of bytes in @p data. @return -EOVERFLOW, if @p max_len is lesser than the required space. @return -ENOTSUP, if @p opt is not supported to be set. @return Any negative error code reported by gnrc_netif_t::dev.

set: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t, opt: *const gnrc_netapi_opt_t) -> c_int>

@brief Sets an option from the network interface

Use gnrc_netif_set_from_netdev() to just set options from gnrc_netif_t::dev.

@param[in] netif The network interface. @param[in] opt The option parameters.

@return Number of bytes written to gnrc_netif_t::dev. @return -EOVERFLOW, if @p data_len is greater than the allotted space in gnrc_netif_t::dev or gnrc_netif_t. @return -ENOTSUP, if @p opt is not supported to be set. @return Any negative error code reported by gnrc_netif_t::dev.

msg_handler: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t, msg: *mut msg_t)>

@brief Message handler for network interface

This message handler is used, when the network interface needs to handle message types beyond the ones defined in @ref net_gnrc_netapi “netapi”. Leave NULL if this is not the case.

@param[in] netif The network interface. @param[in] msg Message to be handled.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.