/* SPDX-License-Identifier: GPL-2.0 */ /* Copyright (c) 2025, Intel Corporation. */ #ifndef _IXD_DEVLINK_H_ #define _IXD_DEVLINK_H_ #include #include "ixd.h" struct ixd_adapter *ixd_adapter_alloc(struct device *dev); /** * ixd_devlink_free - teardown the devlink * @adapter: the adapter structure to free * */ static inline void ixd_devlink_free(struct ixd_adapter *adapter) { struct devlink *devlink = priv_to_devlink(adapter); devlink_free(devlink); } /** * ixd_devlink_unregister - Unregister devlink for this adapter. * @adapter: the adapter structure to cleanup * * Init task must be completed or cancelled beforehand. */ static inline void ixd_devlink_unregister(struct ixd_adapter *adapter) { if (!adapter->init_task.success) return; devlink_unregister(priv_to_devlink(adapter)); } /** * ixd_devlink_register - Register devlink interface for this adapter * @adapter: pointer to ixd adapter structure to be associated with devlink * * Register the devlink instance associated with this adapter */ static inline void ixd_devlink_register(struct ixd_adapter *adapter) { devlink_register(priv_to_devlink(adapter)); } #endif /* _IXD_DEVLINK_H_ */