|
@@ -60,26 +60,48 @@ struct tipc_name_seq {
|
|
__u32 upper;
|
|
__u32 upper;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/* TIPC Address Size, Offset, Mask specification for Z.C.N
|
|
|
|
+ */
|
|
|
|
+#define TIPC_NODE_BITS 12
|
|
|
|
+#define TIPC_CLUSTER_BITS 12
|
|
|
|
+#define TIPC_ZONE_BITS 8
|
|
|
|
+
|
|
|
|
+#define TIPC_NODE_OFFSET 0
|
|
|
|
+#define TIPC_CLUSTER_OFFSET TIPC_NODE_BITS
|
|
|
|
+#define TIPC_ZONE_OFFSET (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS)
|
|
|
|
+
|
|
|
|
+#define TIPC_NODE_SIZE ((1UL << TIPC_NODE_BITS) - 1)
|
|
|
|
+#define TIPC_CLUSTER_SIZE ((1UL << TIPC_CLUSTER_BITS) - 1)
|
|
|
|
+#define TIPC_ZONE_SIZE ((1UL << TIPC_ZONE_BITS) - 1)
|
|
|
|
+
|
|
|
|
+#define TIPC_NODE_MASK (TIPC_NODE_SIZE << TIPC_NODE_OFFSET)
|
|
|
|
+#define TIPC_CLUSTER_MASK (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET)
|
|
|
|
+#define TIPC_ZONE_MASK (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET)
|
|
|
|
+
|
|
|
|
+#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
|
|
|
|
+
|
|
static inline __u32 tipc_addr(unsigned int zone,
|
|
static inline __u32 tipc_addr(unsigned int zone,
|
|
unsigned int cluster,
|
|
unsigned int cluster,
|
|
unsigned int node)
|
|
unsigned int node)
|
|
{
|
|
{
|
|
- return (zone << 24) | (cluster << 12) | node;
|
|
|
|
|
|
+ return (zone << TIPC_ZONE_OFFSET) |
|
|
|
|
+ (cluster << TIPC_CLUSTER_OFFSET) |
|
|
|
|
+ node;
|
|
}
|
|
}
|
|
|
|
|
|
static inline unsigned int tipc_zone(__u32 addr)
|
|
static inline unsigned int tipc_zone(__u32 addr)
|
|
{
|
|
{
|
|
- return addr >> 24;
|
|
|
|
|
|
+ return addr >> TIPC_ZONE_OFFSET;
|
|
}
|
|
}
|
|
|
|
|
|
static inline unsigned int tipc_cluster(__u32 addr)
|
|
static inline unsigned int tipc_cluster(__u32 addr)
|
|
{
|
|
{
|
|
- return (addr >> 12) & 0xfff;
|
|
|
|
|
|
+ return (addr & TIPC_CLUSTER_MASK) >> TIPC_CLUSTER_OFFSET;
|
|
}
|
|
}
|
|
|
|
|
|
static inline unsigned int tipc_node(__u32 addr)
|
|
static inline unsigned int tipc_node(__u32 addr)
|
|
{
|
|
{
|
|
- return addr & 0xfff;
|
|
|
|
|
|
+ return addr & TIPC_NODE_MASK;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|