1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _LINUX_TIPC_CONFIG_H_
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _LINUX_TIPC_CONFIG_H_
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h>
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/string.h>
23ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#include <linux/tipc.h>
24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <asm/byteorder.h>
25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <arpa/inet.h>
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_NOOP 0x0000
27ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_CMD_GET_NODES 0x0001
28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_GET_MEDIA_NAMES 0x0002
29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_GET_BEARER_NAMES 0x0003
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_GET_LINKS 0x0004
31ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_CMD_SHOW_NAME_TABLE 0x0005
32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SHOW_PORTS 0x0006
33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SHOW_LINK_STATS 0x000B
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SHOW_STATS 0x000F
35ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_CMD_GET_REMOTE_MNG 0x4003
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_GET_MAX_PORTS 0x4004
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_GET_MAX_PUBL 0x4005
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_GET_MAX_SUBSCR 0x4006
39ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_CMD_GET_MAX_ZONES 0x4007
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_GET_MAX_CLUSTERS 0x4008
41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_GET_MAX_NODES 0x4009
42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_GET_MAX_SLAVES 0x400A
43ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_CMD_GET_NETID 0x400B
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_ENABLE_BEARER 0x4101
45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_DISABLE_BEARER 0x4102
46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SET_LINK_TOL 0x4107
47ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_CMD_SET_LINK_PRI 0x4108
48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SET_LINK_WINDOW 0x4109
49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SET_LOG_SIZE 0x410A
50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_DUMP_LOG 0x410B
51ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_CMD_RESET_LINK_STATS 0x410C
52655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SET_NODE_ADDR 0x8001
53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SET_REMOTE_MNG 0x8003
54655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SET_MAX_PORTS 0x8004
55ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_CMD_SET_MAX_PUBL 0x8005
56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SET_MAX_SUBSCR 0x8006
57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SET_MAX_ZONES 0x8007
58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SET_MAX_CLUSTERS 0x8008
59ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_CMD_SET_MAX_NODES 0x8009
60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SET_MAX_SLAVES 0x800A
61655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_SET_NETID 0x800B
62655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CMD_NOT_NET_ADMIN 0xC001
63ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_TLV_NONE 0
64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_VOID 1
65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_UNSIGNED 2
66655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_STRING 3
67ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_TLV_LARGE_STRING 4
68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_ULTRA_STRING 5
69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_ERROR_STRING 16
70655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_NET_ADDR 17
71ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_TLV_MEDIA_NAME 18
72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_BEARER_NAME 19
73655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_LINK_NAME 20
74655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_NODE_INFO 21
75ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_TLV_LINK_INFO 22
76655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_BEARER_CONFIG 23
77655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_LINK_CONFIG 24
78655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_TLV_NAME_TBL_QUERY 25
79ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_TLV_PORT_REF 26
80655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_MIN_LINK_PRI 0
81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_DEF_LINK_PRI 10
82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_MAX_LINK_PRI 31
83ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_MEDIA_LINK_PRI (TIPC_MAX_LINK_PRI + 1)
84655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_MIN_LINK_TOL 50
85655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_DEF_LINK_TOL 1500
86655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_MAX_LINK_TOL 30000
87ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#if TIPC_MIN_LINK_TOL < 16
88655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#error "TIPC_MIN_LINK_TOL is too small (abort limit may be NaN)"
89655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
90655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_MIN_LINK_WIN 16
91ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_DEF_LINK_WIN 50
9282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define TIPC_MAX_LINK_WIN 8191
93655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tipc_node_info {
94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 addr;
95d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 up;
96655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
97655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tipc_link_info {
98d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 dest;
99d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 up;
100d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char str[TIPC_MAX_LINK_NAME];
101655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
102655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tipc_bearer_config {
103d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 priority;
104d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 disc_domain;
105d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char name[TIPC_MAX_BEARER_NAME];
106655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
107ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct tipc_link_config {
108d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 value;
109d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char name[TIPC_MAX_LINK_NAME];
110655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
111ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_NTQ_ALLTYPES 0x80000000
112655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tipc_name_table_query {
113d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 depth;
114d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 type;
115d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 lowbound;
116d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 upbound;
117655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
118655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CFG_TLV_ERROR "\x80"
119ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_CFG_NOT_NET_ADMIN "\x81"
120655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CFG_NOT_ZONE_MSTR "\x82"
121655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CFG_NO_REMOTE "\x83"
122655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_CFG_NOT_SUPPORTED "\x84"
123ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_CFG_INVALID_VALUE "\x85"
124655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tlv_desc {
125d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be16 tlv_len;
126d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be16 tlv_type;
127ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris};
128655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TLV_ALIGNTO 4
129d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TLV_ALIGN(datalen) (((datalen) + (TLV_ALIGNTO - 1)) & ~(TLV_ALIGNTO - 1))
130655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TLV_LENGTH(datalen) (sizeof(struct tlv_desc) + (datalen))
131ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TLV_SPACE(datalen) (TLV_ALIGN(TLV_LENGTH(datalen)))
132d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TLV_DATA(tlv) ((void *) ((char *) (tlv) + TLV_LENGTH(0)))
133655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tlv_list_desc {
134d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct tlv_desc * tlv_ptr;
135d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 tlv_space;
136655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
137655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_GENL_NAME "TIPC"
138655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_GENL_VERSION 0x1
139ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TIPC_GENL_CMD 0x1
140655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tipc_genlmsghdr {
141d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 dest;
142d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 cmd;
143d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 reserved;
144655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
145655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TIPC_GENL_HDRLEN NLMSG_ALIGN(sizeof(struct tipc_genlmsghdr))
146655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tipc_cfg_msg_hdr {
147d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 tcm_len;
148d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be16 tcm_type;
149d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be16 tcm_flags;
150d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char tcm_reserved[8];
151ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris};
152655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCM_F_REQUEST 0x1
153655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCM_F_MORE 0x2
154d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TCM_ALIGN(datalen) (((datalen) + 3) & ~3)
155ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define TCM_LENGTH(datalen) (sizeof(struct tipc_cfg_msg_hdr) + datalen)
156655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCM_SPACE(datalen) (TCM_ALIGN(TCM_LENGTH(datalen)))
157d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TCM_DATA(tcm_hdr) ((void *) ((char *) (tcm_hdr) + TCM_LENGTH(0)))
158655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
159