1*6f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2bdabad3eSCourtney Cavin #ifndef _LINUX_QRTR_H 3bdabad3eSCourtney Cavin #define _LINUX_QRTR_H 4bdabad3eSCourtney Cavin 5bdabad3eSCourtney Cavin #include <linux/socket.h> 69078b4eeSNicolas Dichtel #include <linux/types.h> 7bdabad3eSCourtney Cavin 8bdabad3eSCourtney Cavin #define QRTR_NODE_BCAST 0xffffffffu 9bdabad3eSCourtney Cavin #define QRTR_PORT_CTRL 0xfffffffeu 10bdabad3eSCourtney Cavin 11bdabad3eSCourtney Cavin struct sockaddr_qrtr { 12bdabad3eSCourtney Cavin __kernel_sa_family_t sq_family; 13bdabad3eSCourtney Cavin __u32 sq_node; 14bdabad3eSCourtney Cavin __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