blob: b66b3400d7a2c9d475369d3b561b5d16cc40119e [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _LINUX_TIPC_H_
20#define _LINUX_TIPC_H_
21#include <linux/types.h>
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070022#include <linux/sockios.h>
Christopher Ferris76a1d452018-06-27 14:12:29 -070023struct tipc_socket_addr {
Tao Baod7db5942015-01-28 10:07:51 -080024 __u32 ref;
25 __u32 node;
Ben Cheng655a7c02013-10-16 16:09:24 -070026};
Christopher Ferris76a1d452018-06-27 14:12:29 -070027struct tipc_service_addr {
Tao Baod7db5942015-01-28 10:07:51 -080028 __u32 type;
29 __u32 instance;
Ben Cheng655a7c02013-10-16 16:09:24 -070030};
Christopher Ferris76a1d452018-06-27 14:12:29 -070031struct tipc_service_range {
Tao Baod7db5942015-01-28 10:07:51 -080032 __u32 type;
33 __u32 lower;
34 __u32 upper;
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070035};
Christopher Ferris76a1d452018-06-27 14:12:29 -070036#define TIPC_NODE_STATE 0
Ben Cheng655a7c02013-10-16 16:09:24 -070037#define TIPC_TOP_SRV 1
Christopher Ferris49f525c2016-12-12 14:55:36 -080038#define TIPC_LINK_STATE 2
Ben Cheng655a7c02013-10-16 16:09:24 -070039#define TIPC_RESERVED_TYPES 64
Christopher Ferris76a1d452018-06-27 14:12:29 -070040enum tipc_scope {
41 TIPC_CLUSTER_SCOPE = 2,
42 TIPC_NODE_SCOPE = 3
43};
Ben Cheng655a7c02013-10-16 16:09:24 -070044#define TIPC_MAX_USER_MSG_SIZE 66000U
45#define TIPC_LOW_IMPORTANCE 0
Ben Cheng655a7c02013-10-16 16:09:24 -070046#define TIPC_MEDIUM_IMPORTANCE 1
Christopher Ferris49f525c2016-12-12 14:55:36 -080047#define TIPC_HIGH_IMPORTANCE 2
Ben Cheng655a7c02013-10-16 16:09:24 -070048#define TIPC_CRITICAL_IMPORTANCE 3
49#define TIPC_OK 0
Ben Cheng655a7c02013-10-16 16:09:24 -070050#define TIPC_ERR_NO_NAME 1
Christopher Ferris49f525c2016-12-12 14:55:36 -080051#define TIPC_ERR_NO_PORT 2
Ben Cheng655a7c02013-10-16 16:09:24 -070052#define TIPC_ERR_NO_NODE 3
53#define TIPC_ERR_OVERLOAD 4
Ben Cheng655a7c02013-10-16 16:09:24 -070054#define TIPC_CONN_SHUTDOWN 5
Christopher Ferris49f525c2016-12-12 14:55:36 -080055#define TIPC_SUB_PORTS 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -070056#define TIPC_SUB_SERVICE 0x02
57#define TIPC_SUB_CANCEL 0x04
Ben Cheng655a7c02013-10-16 16:09:24 -070058#define TIPC_WAIT_FOREVER (~0)
Christopher Ferris49f525c2016-12-12 14:55:36 -080059struct tipc_subscr {
Christopher Ferris76a1d452018-06-27 14:12:29 -070060 struct tipc_service_range seq;
Tao Baod7db5942015-01-28 10:07:51 -080061 __u32 timeout;
62 __u32 filter;
Christopher Ferris49f525c2016-12-12 14:55:36 -080063 char usr_handle[8];
Ben Cheng655a7c02013-10-16 16:09:24 -070064};
65#define TIPC_PUBLISHED 1
Ben Cheng655a7c02013-10-16 16:09:24 -070066#define TIPC_WITHDRAWN 2
Christopher Ferris49f525c2016-12-12 14:55:36 -080067#define TIPC_SUBSCR_TIMEOUT 3
Ben Cheng655a7c02013-10-16 16:09:24 -070068struct tipc_event {
Tao Baod7db5942015-01-28 10:07:51 -080069 __u32 event;
70 __u32 found_lower;
Christopher Ferris49f525c2016-12-12 14:55:36 -080071 __u32 found_upper;
Christopher Ferris76a1d452018-06-27 14:12:29 -070072 struct tipc_socket_addr port;
Tao Baod7db5942015-01-28 10:07:51 -080073 struct tipc_subscr s;
Ben Cheng655a7c02013-10-16 16:09:24 -070074};
Christopher Ferris49f525c2016-12-12 14:55:36 -080075#ifndef AF_TIPC
Ben Cheng655a7c02013-10-16 16:09:24 -070076#define AF_TIPC 30
77#endif
Ben Cheng655a7c02013-10-16 16:09:24 -070078#ifndef PF_TIPC
Christopher Ferris49f525c2016-12-12 14:55:36 -080079#define PF_TIPC AF_TIPC
Ben Cheng655a7c02013-10-16 16:09:24 -070080#endif
81#ifndef SOL_TIPC
Ben Cheng655a7c02013-10-16 16:09:24 -070082#define SOL_TIPC 271
Christopher Ferris49f525c2016-12-12 14:55:36 -080083#endif
Ben Cheng655a7c02013-10-16 16:09:24 -070084#define TIPC_ADDR_MCAST 1
Christopher Ferris76a1d452018-06-27 14:12:29 -070085#define TIPC_SERVICE_RANGE 1
86#define TIPC_SERVICE_ADDR 2
87#define TIPC_SOCKET_ADDR 3
Ben Cheng655a7c02013-10-16 16:09:24 -070088struct sockaddr_tipc {
Tao Baod7db5942015-01-28 10:07:51 -080089 unsigned short family;
90 unsigned char addrtype;
Christopher Ferris49f525c2016-12-12 14:55:36 -080091 signed char scope;
Tao Baod7db5942015-01-28 10:07:51 -080092 union {
Christopher Ferris76a1d452018-06-27 14:12:29 -070093 struct tipc_socket_addr id;
94 struct tipc_service_range nameseq;
Christopher Ferris49f525c2016-12-12 14:55:36 -080095 struct {
Christopher Ferris76a1d452018-06-27 14:12:29 -070096 struct tipc_service_addr name;
Tao Baod7db5942015-01-28 10:07:51 -080097 __u32 domain;
98 } name;
Christopher Ferris49f525c2016-12-12 14:55:36 -080099 } addr;
Ben Cheng655a7c02013-10-16 16:09:24 -0700100};
101#define TIPC_ERRINFO 1
Ben Cheng655a7c02013-10-16 16:09:24 -0700102#define TIPC_RETDATA 2
Christopher Ferris49f525c2016-12-12 14:55:36 -0800103#define TIPC_DESTNAME 3
Ben Cheng655a7c02013-10-16 16:09:24 -0700104#define TIPC_IMPORTANCE 127
105#define TIPC_SRC_DROPPABLE 128
Ben Cheng655a7c02013-10-16 16:09:24 -0700106#define TIPC_DEST_DROPPABLE 129
Christopher Ferris49f525c2016-12-12 14:55:36 -0800107#define TIPC_CONN_TIMEOUT 130
Ben Cheng655a7c02013-10-16 16:09:24 -0700108#define TIPC_NODE_RECVQ_DEPTH 131
109#define TIPC_SOCK_RECVQ_DEPTH 132
Christopher Ferris525ce912017-07-26 13:12:53 -0700110#define TIPC_MCAST_BROADCAST 133
111#define TIPC_MCAST_REPLICAST 134
Christopher Ferris934ec942018-01-31 15:29:16 -0800112#define TIPC_GROUP_JOIN 135
113#define TIPC_GROUP_LEAVE 136
Christopher Ferrisaeddbcf2019-07-08 12:45:46 -0700114#define TIPC_SOCK_RECVQ_USED 137
Christopher Ferris934ec942018-01-31 15:29:16 -0800115#define TIPC_GROUP_LOOPBACK 0x1
116#define TIPC_GROUP_MEMBER_EVTS 0x2
117struct tipc_group_req {
118 __u32 type;
119 __u32 instance;
120 __u32 scope;
121 __u32 flags;
122};
Christopher Ferris9ce28842018-10-25 12:11:39 -0700123#define TIPC_NODEID_LEN 16
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700124#define TIPC_MAX_MEDIA_NAME 16
Christopher Ferris49f525c2016-12-12 14:55:36 -0800125#define TIPC_MAX_IF_NAME 16
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700126#define TIPC_MAX_BEARER_NAME 32
Christopher Ferris76a1d452018-06-27 14:12:29 -0700127#define TIPC_MAX_LINK_NAME 68
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700128#define SIOCGETLINKNAME SIOCPROTOPRIVATE
Christopher Ferris9ce28842018-10-25 12:11:39 -0700129#define SIOCGETNODEID (SIOCPROTOPRIVATE + 1)
Christopher Ferris49f525c2016-12-12 14:55:36 -0800130struct tipc_sioc_ln_req {
Tao Baod7db5942015-01-28 10:07:51 -0800131 __u32 peer;
132 __u32 bearer_id;
133 char linkname[TIPC_MAX_LINK_NAME];
Christopher Ferris49f525c2016-12-12 14:55:36 -0800134};
Christopher Ferris9ce28842018-10-25 12:11:39 -0700135struct tipc_sioc_nodeid_req {
136 __u32 peer;
137 char node_id[TIPC_NODEID_LEN];
138};
Christopher Ferris76a1d452018-06-27 14:12:29 -0700139#define TIPC_CFG_SRV 0
140#define TIPC_ZONE_SCOPE 1
141#define TIPC_ADDR_NAMESEQ 1
142#define TIPC_ADDR_NAME 2
143#define TIPC_ADDR_ID 3
144#define TIPC_NODE_BITS 12
145#define TIPC_CLUSTER_BITS 12
146#define TIPC_ZONE_BITS 8
147#define TIPC_NODE_OFFSET 0
148#define TIPC_CLUSTER_OFFSET TIPC_NODE_BITS
149#define TIPC_ZONE_OFFSET (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS)
150#define TIPC_NODE_SIZE ((1UL << TIPC_NODE_BITS) - 1)
151#define TIPC_CLUSTER_SIZE ((1UL << TIPC_CLUSTER_BITS) - 1)
152#define TIPC_ZONE_SIZE ((1UL << TIPC_ZONE_BITS) - 1)
153#define TIPC_NODE_MASK (TIPC_NODE_SIZE << TIPC_NODE_OFFSET)
154#define TIPC_CLUSTER_MASK (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET)
155#define TIPC_ZONE_MASK (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET)
156#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
157#define tipc_portid tipc_socket_addr
158#define tipc_name tipc_service_addr
159#define tipc_name_seq tipc_service_range
Ben Cheng655a7c02013-10-16 16:09:24 -0700160#endif