1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2  /*
3   * Copyright (c) 2016, Linaro Ltd.
4   */
5  
6  #ifndef _UAPI_RPMSG_H_
7  #define _UAPI_RPMSG_H_
8  
9  #include <linux/ioctl.h>
10  #include <linux/types.h>
11  
12  #define RPMSG_ADDR_ANY		0xFFFFFFFF
13  
14  /**
15   * struct rpmsg_endpoint_info - endpoint info representation
16   * @name: name of service
17   * @src: local address. To set to RPMSG_ADDR_ANY if not used.
18   * @dst: destination address. To set to RPMSG_ADDR_ANY if not used.
19   */
20  struct rpmsg_endpoint_info {
21  	char name[32];
22  	__u32 src;
23  	__u32 dst;
24  };
25  
26  /**
27   * Instantiate a new rmpsg char device endpoint.
28   */
29  #define RPMSG_CREATE_EPT_IOCTL	_IOW(0xb5, 0x1, struct rpmsg_endpoint_info)
30  
31  /**
32   * Destroy a rpmsg char device endpoint created by the RPMSG_CREATE_EPT_IOCTL.
33   */
34  #define RPMSG_DESTROY_EPT_IOCTL	_IO(0xb5, 0x2)
35  
36  /**
37   * Instantiate a new local rpmsg service device.
38   */
39  #define RPMSG_CREATE_DEV_IOCTL	_IOW(0xb5, 0x3, struct rpmsg_endpoint_info)
40  
41  /**
42   * Release a local rpmsg device.
43   */
44  #define RPMSG_RELEASE_DEV_IOCTL	_IOW(0xb5, 0x4, struct rpmsg_endpoint_info)
45  
46  /**
47   * Get the flow control state of the remote rpmsg char device.
48   */
49  #define RPMSG_GET_OUTGOING_FLOWCONTROL _IOR(0xb5, 0x5, int)
50  
51  /**
52   * Set the flow control state of the local rpmsg char device.
53   */
54  #define RPMSG_SET_INCOMING_FLOWCONTROL _IOR(0xb5, 0x6, int)
55  
56  #endif
57