xref: /linux/include/uapi/linux/rpmsg.h (revision a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0)
1e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2c0cdc19fSBjorn Andersson /*
3c0cdc19fSBjorn Andersson  * Copyright (c) 2016, Linaro Ltd.
4c0cdc19fSBjorn Andersson  */
5c0cdc19fSBjorn Andersson 
6c0cdc19fSBjorn Andersson #ifndef _UAPI_RPMSG_H_
7c0cdc19fSBjorn Andersson #define _UAPI_RPMSG_H_
8c0cdc19fSBjorn Andersson 
9c0cdc19fSBjorn Andersson #include <linux/ioctl.h>
10c0cdc19fSBjorn Andersson #include <linux/types.h>
11c0cdc19fSBjorn Andersson 
123093c3c7SArnaud Pouliquen #define RPMSG_ADDR_ANY		0xFFFFFFFF
133093c3c7SArnaud Pouliquen 
14c0cdc19fSBjorn Andersson /**
15c0cdc19fSBjorn Andersson  * struct rpmsg_endpoint_info - endpoint info representation
16c0cdc19fSBjorn Andersson  * @name: name of service
17809328b4SArnaud Pouliquen  * @src: local address. To set to RPMSG_ADDR_ANY if not used.
18809328b4SArnaud Pouliquen  * @dst: destination address. To set to RPMSG_ADDR_ANY if not used.
19c0cdc19fSBjorn Andersson  */
20c0cdc19fSBjorn Andersson struct rpmsg_endpoint_info {
21c0cdc19fSBjorn Andersson 	char name[32];
22c0cdc19fSBjorn Andersson 	__u32 src;
23c0cdc19fSBjorn Andersson 	__u32 dst;
24c0cdc19fSBjorn Andersson };
25c0cdc19fSBjorn Andersson 
26809328b4SArnaud Pouliquen /**
27809328b4SArnaud Pouliquen  * Instantiate a new rmpsg char device endpoint.
28809328b4SArnaud Pouliquen  */
29c0cdc19fSBjorn Andersson #define RPMSG_CREATE_EPT_IOCTL	_IOW(0xb5, 0x1, struct rpmsg_endpoint_info)
30809328b4SArnaud Pouliquen 
31809328b4SArnaud Pouliquen /**
32809328b4SArnaud Pouliquen  * Destroy a rpmsg char device endpoint created by the RPMSG_CREATE_EPT_IOCTL.
33809328b4SArnaud Pouliquen  */
34c0cdc19fSBjorn Andersson #define RPMSG_DESTROY_EPT_IOCTL	_IO(0xb5, 0x2)
35c0cdc19fSBjorn Andersson 
368109517bSArnaud Pouliquen /**
378109517bSArnaud Pouliquen  * Instantiate a new local rpmsg service device.
388109517bSArnaud Pouliquen  */
398109517bSArnaud Pouliquen #define RPMSG_CREATE_DEV_IOCTL	_IOW(0xb5, 0x3, struct rpmsg_endpoint_info)
408109517bSArnaud Pouliquen 
418109517bSArnaud Pouliquen /**
428109517bSArnaud Pouliquen  * Release a local rpmsg device.
438109517bSArnaud Pouliquen  */
448109517bSArnaud Pouliquen #define RPMSG_RELEASE_DEV_IOCTL	_IOW(0xb5, 0x4, struct rpmsg_endpoint_info)
458109517bSArnaud Pouliquen 
46*5550201cSChris Lew /**
47*5550201cSChris Lew  * Get the flow control state of the remote rpmsg char device.
48*5550201cSChris Lew  */
49*5550201cSChris Lew #define RPMSG_GET_OUTGOING_FLOWCONTROL _IOR(0xb5, 0x5, int)
50*5550201cSChris Lew 
51*5550201cSChris Lew /**
52*5550201cSChris Lew  * Set the flow control state of the local rpmsg char device.
53*5550201cSChris Lew  */
54*5550201cSChris Lew #define RPMSG_SET_INCOMING_FLOWCONTROL _IOR(0xb5, 0x6, int)
55*5550201cSChris Lew 
56c0cdc19fSBjorn Andersson #endif
57