/* * Copyright (c) 2006-2023, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 */ #include #include #if defined(RT_USING_POSIX_DEVIO) #include /* for wqueue_init */ #endif /** * This function attach a driver to bus * * @param drv the driver to be attached */ rt_err_t rt_driver_register(rt_driver_t drv) { rt_err_t ret; struct rt_bus *bus = RT_NULL; RT_ASSERT(drv != RT_NULL); if (drv->bus) { bus = drv->bus; ret = rt_bus_add_driver(bus, drv); } else { ret = -RT_EINVAL; } return ret; } RTM_EXPORT(rt_driver_register); /** * This function remove driver from system. * * @param drv the driver to be removed */ rt_err_t rt_driver_unregister(rt_driver_t drv) { rt_err_t ret; ret = rt_bus_remove_driver(drv); return ret; } RTM_EXPORT(rt_driver_register);