diff --git a/components/drivers/wlan/wlan_dev.c b/components/drivers/wlan/wlan_dev.c index d86dfb25d350b9b0774cb1b03d886d0209c36f8a..387f65fde255768dc7e92e608a23f6884b83dcac 100644 --- a/components/drivers/wlan/wlan_dev.c +++ b/components/drivers/wlan/wlan_dev.c @@ -733,22 +733,16 @@ static rt_err_t _rt_wlan_dev_control(rt_device_t dev, int cmd, void *args) return err; } -struct rt_wlan_device *rt_wlan_dev_register(const char *name, const struct rt_wlan_dev_ops *ops, rt_uint32_t flag, void *user_data) +rt_err_t rt_wlan_dev_register(struct rt_wlan_device *wlan, const char *name, const struct rt_wlan_dev_ops *ops, rt_uint32_t flag, void *user_data) { - struct rt_wlan_device *wlan; + rt_err_t err = RT_EOK; - if (name == RT_NULL || ops == RT_NULL) + if ((wlan == RT_NULL) || (name == RT_NULL) || (ops == RT_NULL)) { LOG_E("F:%s L:%d parameter Wrongful", __FUNCTION__, __LINE__); return RT_NULL; } - wlan = rt_malloc(sizeof(struct rt_wlan_device)); - if (wlan == RT_NULL) - { - LOG_E("F:%s L:%d", __FUNCTION__, __LINE__); - return RT_NULL; - } rt_memset(wlan, 0, sizeof(struct rt_wlan_device)); wlan->device.init = _rt_wlan_dev_init; @@ -765,9 +759,9 @@ struct rt_wlan_device *rt_wlan_dev_register(const char *name, const struct rt_wl wlan->user_data = user_data; wlan->flags = flag; - rt_device_register(&wlan->device, name, RT_DEVICE_FLAG_RDWR); + err = rt_device_register(&wlan->device, name, RT_DEVICE_FLAG_RDWR); LOG_D("F:%s L:%d run", __FUNCTION__, __LINE__); - return wlan; + return err; } diff --git a/components/drivers/wlan/wlan_dev.h b/components/drivers/wlan/wlan_dev.h index f46f3c001fd27f5b6f05703a5de9352b1f7dd2fc..e3f0d3dc6180b20dbcad1c523a274ba6beb242fa 100644 --- a/components/drivers/wlan/wlan_dev.h +++ b/components/drivers/wlan/wlan_dev.h @@ -576,7 +576,8 @@ rt_err_t rt_wlan_dev_report_data(struct rt_wlan_device *device, void *buff, int /* * wlan device register interface */ -struct rt_wlan_device *rt_wlan_dev_register(const char *name, const struct rt_wlan_dev_ops *ops, rt_uint32_t flag, void *user_data); +rt_err_t rt_wlan_dev_register(struct rt_wlan_device *wlan, const char *name, + const struct rt_wlan_dev_ops *ops, rt_uint32_t flag, void *user_data); #ifdef __cplusplus }