/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2022, STMicroelectronics */ #ifndef __RPMSG_CHRDEV_H__ #define __RPMSG_CHRDEV_H__ #if IS_ENABLED(CONFIG_RPMSG_CHAR) /** * rpmsg_chrdev_eptdev_create() - register char device based on an endpoint * @rpdev: prepared rpdev to be used for creating endpoints * @parent: parent device * @chinfo: associated endpoint channel information. * * This function create a new rpmsg char endpoint device to instantiate a new * endpoint based on chinfo information. */ int rpmsg_chrdev_eptdev_create(struct rpmsg_device *rpdev, struct device *parent, struct rpmsg_channel_info chinfo); /** * rpmsg_chrdev_eptdev_destroy() - destroy created char device endpoint. * @data: private data associated to the endpoint device * * This function destroys a rpmsg char endpoint device created by the RPMSG_DESTROY_EPT_IOCTL * control. */ int rpmsg_chrdev_eptdev_destroy(struct device *dev, void *data); #else /*IS_ENABLED(CONFIG_RPMSG_CHAR) */ static inline int rpmsg_chrdev_eptdev_create(struct rpmsg_device *rpdev, struct device *parent, struct rpmsg_channel_info chinfo) { return -ENXIO; } static inline int rpmsg_chrdev_eptdev_destroy(struct device *dev, void *data) { return -ENXIO; } #endif /*IS_ENABLED(CONFIG_RPMSG_CHAR) */ #endif /*__RPMSG_CHRDEV_H__ */