aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/tipc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux/tipc.h')
-rw-r--r--include/uapi/linux/tipc.h102
1 files changed, 54 insertions, 48 deletions
diff --git a/include/uapi/linux/tipc.h b/include/uapi/linux/tipc.h
index 14bacc7e6cef..4ac9f1f02b06 100644
--- a/include/uapi/linux/tipc.h
+++ b/include/uapi/linux/tipc.h
@@ -61,50 +61,6 @@ struct tipc_name_seq {
61 __u32 upper; 61 __u32 upper;
62}; 62};
63 63
64/* TIPC Address Size, Offset, Mask specification for Z.C.N
65 */
66#define TIPC_NODE_BITS 12
67#define TIPC_CLUSTER_BITS 12
68#define TIPC_ZONE_BITS 8
69
70#define TIPC_NODE_OFFSET 0
71#define TIPC_CLUSTER_OFFSET TIPC_NODE_BITS
72#define TIPC_ZONE_OFFSET (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS)
73
74#define TIPC_NODE_SIZE ((1UL << TIPC_NODE_BITS) - 1)
75#define TIPC_CLUSTER_SIZE ((1UL << TIPC_CLUSTER_BITS) - 1)
76#define TIPC_ZONE_SIZE ((1UL << TIPC_ZONE_BITS) - 1)
77
78#define TIPC_NODE_MASK (TIPC_NODE_SIZE << TIPC_NODE_OFFSET)
79#define TIPC_CLUSTER_MASK (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET)
80#define TIPC_ZONE_MASK (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET)
81
82#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
83
84static inline __u32 tipc_addr(unsigned int zone,
85 unsigned int cluster,
86 unsigned int node)
87{
88 return (zone << TIPC_ZONE_OFFSET) |
89 (cluster << TIPC_CLUSTER_OFFSET) |
90 node;
91}
92
93static inline unsigned int tipc_zone(__u32 addr)
94{
95 return addr >> TIPC_ZONE_OFFSET;
96}
97
98static inline unsigned int tipc_cluster(__u32 addr)
99{
100 return (addr & TIPC_CLUSTER_MASK) >> TIPC_CLUSTER_OFFSET;
101}
102
103static inline unsigned int tipc_node(__u32 addr)
104{
105 return addr & TIPC_NODE_MASK;
106}
107
108/* 64/*
109 * Application-accessible port name types 65 * Application-accessible port name types
110 */ 66 */
@@ -117,9 +73,10 @@ static inline unsigned int tipc_node(__u32 addr)
117/* 73/*
118 * Publication scopes when binding port names and port name sequences 74 * Publication scopes when binding port names and port name sequences
119 */ 75 */
120#define TIPC_ZONE_SCOPE 1 76enum tipc_scope {
121#define TIPC_CLUSTER_SCOPE 2 77 TIPC_CLUSTER_SCOPE = 2, /* 0 can also be used */
122#define TIPC_NODE_SCOPE 3 78 TIPC_NODE_SCOPE = 3
79};
123 80
124/* 81/*
125 * Limiting values for messages 82 * Limiting values for messages
@@ -243,7 +200,7 @@ struct sockaddr_tipc {
243struct tipc_group_req { 200struct tipc_group_req {
244 __u32 type; /* group id */ 201 __u32 type; /* group id */
245 __u32 instance; /* member id */ 202 __u32 instance; /* member id */
246 __u32 scope; /* zone/cluster/node */ 203 __u32 scope; /* cluster/node */
247 __u32 flags; 204 __u32 flags;
248}; 205};
249 206
@@ -268,4 +225,53 @@ struct tipc_sioc_ln_req {
268 __u32 bearer_id; 225 __u32 bearer_id;
269 char linkname[TIPC_MAX_LINK_NAME]; 226 char linkname[TIPC_MAX_LINK_NAME];
270}; 227};
228
229
230/* The macros and functions below are deprecated:
231 */
232
233#define TIPC_ZONE_SCOPE 1
234
235#define TIPC_NODE_BITS 12
236#define TIPC_CLUSTER_BITS 12
237#define TIPC_ZONE_BITS 8
238
239#define TIPC_NODE_OFFSET 0
240#define TIPC_CLUSTER_OFFSET TIPC_NODE_BITS
241#define TIPC_ZONE_OFFSET (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS)
242
243#define TIPC_NODE_SIZE ((1UL << TIPC_NODE_BITS) - 1)
244#define TIPC_CLUSTER_SIZE ((1UL << TIPC_CLUSTER_BITS) - 1)
245#define TIPC_ZONE_SIZE ((1UL << TIPC_ZONE_BITS) - 1)
246
247#define TIPC_NODE_MASK (TIPC_NODE_SIZE << TIPC_NODE_OFFSET)
248#define TIPC_CLUSTER_MASK (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET)
249#define TIPC_ZONE_MASK (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET)
250
251#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
252
253static inline __u32 tipc_addr(unsigned int zone,
254 unsigned int cluster,
255 unsigned int node)
256{
257 return (zone << TIPC_ZONE_OFFSET) |
258 (cluster << TIPC_CLUSTER_OFFSET) |
259 node;
260}
261
262static inline unsigned int tipc_zone(__u32 addr)
263{
264 return addr >> TIPC_ZONE_OFFSET;
265}
266
267static inline unsigned int tipc_cluster(__u32 addr)
268{
269 return (addr & TIPC_CLUSTER_MASK) >> TIPC_CLUSTER_OFFSET;
270}
271
272static inline unsigned int tipc_node(__u32 addr)
273{
274 return addr & TIPC_NODE_MASK;
275}
276
271#endif 277#endif