netdev: add netdev_register_signal

This commit is contained in:
Jose Alamos 2021-09-30 16:34:11 +02:00
parent 193ebb51e7
commit 503f5a9ddb
No known key found for this signature in database
GPG Key ID: F483EB800EF89DD9

View File

@ -331,6 +331,14 @@ typedef enum {
*/ */
#define NETDEV_INDEX_ANY (0xFF) #define NETDEV_INDEX_ANY (0xFF)
#if DOXYGEN
/**
* @brief Call @ref netdev_register_signal when the netdev device is
* registered.
*/
#define CONFIG_NETDEV_REGISTER_SIGNAL 0
#endif
/** /**
* @brief Structure to hold driver state * @brief Structure to hold driver state
* *
@ -356,6 +364,21 @@ struct netdev {
#endif #endif
}; };
/**
* @brief Signal that the @ref netdev_register function registered the device.
*
* This function is called right after @ref netdev_register registered
* the device.
*
* @note This function is called only if the CFLAG @ref
* CONFIG_NETDEV_REGISTER_SIGNAL is set.
*
* @param[in] dev pointer to the device descriptor
* @param[in] type the driver used for the netdev
* @param[in] index the index in the config struct
*/
void netdev_register_signal(struct netdev *dev, netdev_type_t type, uint8_t index);
/** /**
* @brief Register a device with netdev. * @brief Register a device with netdev.
* Must by called by the driver's setup function. * Must by called by the driver's setup function.
@ -374,6 +397,10 @@ static inline void netdev_register(struct netdev *dev, netdev_type_t type, uint8
(void) type; (void) type;
(void) index; (void) index;
#endif #endif
if (IS_ACTIVE(CONFIG_NETDEV_REGISTER_SIGNAL)) {
netdev_register_signal(dev, type, index);
}
} }
/** /**