1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _LINUX_QRTR_H
3 #define _LINUX_QRTR_H
4 
5 #include <linux/socket.h>
6 #include <linux/types.h>
7 
8 #define QRTR_NODE_BCAST	0xffffffffu
9 #define QRTR_PORT_CTRL	0xfffffffeu
10 
11 struct sockaddr_qrtr {
12 	__kernel_sa_family_t sq_family;
13 	__u32 sq_node;
14 	__u32 sq_port;
15 };
16 
17 enum qrtr_pkt_type {
18 	QRTR_TYPE_DATA		= 1,
19 	QRTR_TYPE_HELLO		= 2,
20 	QRTR_TYPE_BYE		= 3,
21 	QRTR_TYPE_NEW_SERVER	= 4,
22 	QRTR_TYPE_DEL_SERVER	= 5,
23 	QRTR_TYPE_DEL_CLIENT	= 6,
24 	QRTR_TYPE_RESUME_TX	= 7,
25 	QRTR_TYPE_EXIT          = 8,
26 	QRTR_TYPE_PING          = 9,
27 	QRTR_TYPE_NEW_LOOKUP	= 10,
28 	QRTR_TYPE_DEL_LOOKUP	= 11,
29 };
30 
31 struct qrtr_ctrl_pkt {
32 	__le32 cmd;
33 
34 	union {
35 		struct {
36 			__le32 service;
37 			__le32 instance;
38 			__le32 node;
39 			__le32 port;
40 		} server;
41 
42 		struct {
43 			__le32 node;
44 			__le32 port;
45 		} client;
46 	};
47 } __packed;
48 
49 #endif /* _LINUX_QRTR_H */
50