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
11struct sockaddr_qrtr {
12	__kernel_sa_family_t sq_family;
13	__u32 sq_node;
14	__u32 sq_port;
15};
16
17enum 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
31struct 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