GNU Linux-libre 6.9.2-gnu
[releases.git] / include / uapi / linux / qrtr.h
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 */