diff options
author | Allan Stephens <allan.stephens@windriver.com> | 2010-05-11 16:30:14 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-05-13 08:02:27 +0200 |
commit | 3e22e62b6204414cf31c414d5a91897e2b718135 (patch) | |
tree | c41ccb573b4c1b91645d8a7671e250cbbc1e7e8e /net/tipc/bcast.h | |
parent | tipc: Reduce footprint by un-inlining address routines (diff) | |
download | linux-3e22e62b6204414cf31c414d5a91897e2b718135.tar.xz linux-3e22e62b6204414cf31c414d5a91897e2b718135.zip |
tipc: Reduce footprint by un-inlining nmap routines
Converts nmap inline routines that are more than one line into standard
functions, thereby eliminating a significant amount of repeated code.
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r-- | net/tipc/bcast.h | 63 |
1 files changed, 4 insertions, 59 deletions
diff --git a/net/tipc/bcast.h b/net/tipc/bcast.h index 2b1c4a755dfa..cd779816383f 100644 --- a/net/tipc/bcast.h +++ b/net/tipc/bcast.h @@ -72,38 +72,8 @@ struct tipc_node; extern const char tipc_bclink_name[]; - -/** - * tipc_nmap_add - add a node to a node map - */ - -static inline void tipc_nmap_add(struct tipc_node_map *nm_ptr, u32 node) -{ - int n = tipc_node(node); - int w = n / WSIZE; - u32 mask = (1 << (n % WSIZE)); - - if ((nm_ptr->map[w] & mask) == 0) { - nm_ptr->count++; - nm_ptr->map[w] |= mask; - } -} - -/** - * tipc_nmap_remove - remove a node from a node map - */ - -static inline void tipc_nmap_remove(struct tipc_node_map *nm_ptr, u32 node) -{ - int n = tipc_node(node); - int w = n / WSIZE; - u32 mask = (1 << (n % WSIZE)); - - if ((nm_ptr->map[w] & mask) != 0) { - nm_ptr->map[w] &= ~mask; - nm_ptr->count--; - } -} +void tipc_nmap_add(struct tipc_node_map *nm_ptr, u32 node); +void tipc_nmap_remove(struct tipc_node_map *nm_ptr, u32 node); /** * tipc_nmap_equal - test for equality of node maps @@ -114,33 +84,8 @@ static inline int tipc_nmap_equal(struct tipc_node_map *nm_a, struct tipc_node_m return !memcmp(nm_a, nm_b, sizeof(*nm_a)); } -/** - * tipc_nmap_diff - find differences between node maps - * @nm_a: input node map A - * @nm_b: input node map B - * @nm_diff: output node map A-B (i.e. nodes of A that are not in B) - */ - -static inline void tipc_nmap_diff(struct tipc_node_map *nm_a, struct tipc_node_map *nm_b, - struct tipc_node_map *nm_diff) -{ - int stop = ARRAY_SIZE(nm_a->map); - int w; - int b; - u32 map; - - memset(nm_diff, 0, sizeof(*nm_diff)); - for (w = 0; w < stop; w++) { - map = nm_a->map[w] ^ (nm_a->map[w] & nm_b->map[w]); - nm_diff->map[w] = map; - if (map != 0) { - for (b = 0 ; b < WSIZE; b++) { - if (map & (1 << b)) - nm_diff->count++; - } - } - } -} +void tipc_nmap_diff(struct tipc_node_map *nm_a, struct tipc_node_map *nm_b, + struct tipc_node_map *nm_diff); /** * tipc_port_list_add - add a port to a port list, ensuring no duplicates |