| /* 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__ */ |