#[repr(C)]
pub struct gnrc_netif_ops { pub init: Option<unsafe extern "C" fn(netif: *mut gnrc_netif_t) -> c_int>, 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) -> c_int>

@brief Initializes and registers network interface.

@pre netif != NULL

@param[in] netif The network interface.

This function should init the device driver or MAC underlying MAC layer. This is called 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. This function MUST call @ref netif_register if the initialization is successful.

@return 0 if the initialization of the device or MAC layer was successful @return negative errno on error.

§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§

source§

impl Clone for gnrc_netif_ops

source§

fn clone(&self) -> gnrc_netif_ops

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for gnrc_netif_ops

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for gnrc_netif_ops

source§

fn default() -> gnrc_netif_ops

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

impl Copy for gnrc_netif_ops

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.