47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* 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__ */
 |