2424#include <stdlib.h>
2525#include <stdbool.h>
2626
27- static inline int radix_chunk (pid_t pid ,
27+ static inline int radix_chunk (uint64_t ident ,
2828 int level )
2929{
3030 int shift = (RADIX_LEVELS - 1 - level ) * RADIX_BITS ;
31- return (pid >> shift) & RADIX_MASK;
31+ return (ident >> shift ) & RADIX_MASK ;
3232}
3333
3434void * radix_lookup (radix_tree_t * tree ,
35- pid_t pid )
35+ uint64_t ident )
3636{
3737 radix_node_t * node = tree -> root ;
3838
@@ -43,7 +43,7 @@ static inline int radix_chunk(pid_t pid,
4343 return NULL ;
4444 }
4545
46- int chunk = radix_chunk (pid , level);
46+ int chunk = radix_chunk (ident , level );
4747 node = (radix_node_t * )node -> slots [chunk ];
4848 }
4949
@@ -52,12 +52,12 @@ static inline int radix_chunk(pid_t pid,
5252 return NULL ;
5353 }
5454
55- int chunk = radix_chunk (pid , RADIX_LEVELS - 1 );
55+ int chunk = radix_chunk (ident , RADIX_LEVELS - 1 );
5656 return node -> slots [chunk ];
5757}
5858
5959int radix_insert (radix_tree_t * tree ,
60- pid_t pid ,
60+ uint64_t ident ,
6161 void * value )
6262{
6363 if (tree -> root == NULL )
@@ -69,7 +69,7 @@ int radix_insert(radix_tree_t *tree,
6969
7070 for (int level = 0 ; level < RADIX_LEVELS - 1 ; level ++ )
7171 {
72- int chunk = radix_chunk (pid , level);
72+ int chunk = radix_chunk (ident , level );
7373
7474 if (node -> slots [chunk ] == NULL )
7575 {
@@ -79,13 +79,14 @@ int radix_insert(radix_tree_t *tree,
7979 node = (radix_node_t * )node -> slots [chunk ];
8080 }
8181
82- int chunk = radix_chunk (pid , RADIX_LEVELS - 1 );
82+ int chunk = radix_chunk (ident , RADIX_LEVELS - 1 );
8383 node -> slots [chunk ] = value ;
8484
8585 return 0 ;
8686}
8787
88- void *radix_remove (radix_tree_t *tree, pid_t pid)
88+ void * radix_remove (radix_tree_t * tree ,
89+ uint64_t ident )
8990{
9091 radix_node_t * node = tree -> root ;
9192 radix_node_t * path [RADIX_LEVELS ];
@@ -99,7 +100,7 @@ int radix_insert(radix_tree_t *tree,
99100 }
100101
101102 path [level ] = node ;
102- chunks[level] = radix_chunk (pid , level);
103+ chunks [level ] = radix_chunk (ident , level );
103104
104105 if (level < RADIX_LEVELS - 1 )
105106 {
@@ -137,7 +138,7 @@ int radix_insert(radix_tree_t *tree,
137138
138139static void radix_walk_node (radix_node_t * node ,
139140 int level ,
140- pid_t pid_prefix ,
141+ uint64_t ident_prefix ,
141142 radix_walk_fn callback ,
142143 void * ctx )
143144{
@@ -153,15 +154,15 @@ static void radix_walk_node(radix_node_t *node,
153154 continue ;
154155 }
155156
156- pid_t pid = pid_prefix | (i << ((RADIX_LEVELS - 1 - level) * RADIX_BITS));
157+ uint64_t ident = ident_prefix | (i << ((RADIX_LEVELS - 1 - level ) * RADIX_BITS ));
157158
158159 if (level == RADIX_LEVELS - 1 )
159160 {
160- callback (pid , node->slots [i], ctx);
161+ callback (ident_prefix , node -> slots [i ], ctx );
161162 }
162163 else
163164 {
164- radix_walk_node ((radix_node_t *)node->slots [i], level + 1 , pid , callback, ctx);
165+ radix_walk_node ((radix_node_t * )node -> slots [i ], level + 1 , ident_prefix , callback , ctx );
165166 }
166167 }
167168}
0 commit comments