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