kernel: remove static qualifier from functions generated by btree convenience macros

This commit is contained in:
2023-07-09 21:57:04 +01:00
parent cefbd3e8d6
commit 53440653f2

View File

@@ -63,7 +63,7 @@ extern "C" {
@param function_name the name of the function to generate. @param function_name the name of the function to generate.
*/ */
#define BTREE_DEFINE_SIMPLE_INSERT(node_type, container_node_member, container_key_member, function_name) \ #define BTREE_DEFINE_SIMPLE_INSERT(node_type, container_node_member, container_key_member, function_name) \
static void function_name(struct btree *tree, node_type *node) \ void function_name(struct btree *tree, node_type *node) \
{ \ { \
if (!tree->b_root) { \ if (!tree->b_root) { \
tree->b_root = &node->container_node_member; \ tree->b_root = &node->container_node_member; \
@@ -71,10 +71,10 @@ extern "C" {
return; \ return; \
} \ } \
\ \
struct btree_node *cur = tree->b_root; \ struct btree_node *cur = tree->b_root; \
while (1) { \ while (1) { \
node_type *cur_node = BTREE_CONTAINER(node_type, container_node_member, cur); \ node_type *cur_node = BTREE_CONTAINER(node_type, container_node_member, cur); \
struct btree_node *next = NULL; \ struct btree_node *next = NULL; \
\ \
if (node->container_key_member > cur_node->container_key_member) { \ if (node->container_key_member > cur_node->container_key_member) { \
next = btree_right(cur); \ next = btree_right(cur); \
@@ -138,7 +138,7 @@ extern "C" {
requirements listed above. requirements listed above.
*/ */
#define BTREE_DEFINE_INSERT(node_type, container_node_member, container_key_member, function_name, comparator) \ #define BTREE_DEFINE_INSERT(node_type, container_node_member, container_key_member, function_name, comparator) \
static void function_name(struct btree *tree, node_type *node) \ void function_name(struct btree *tree, node_type *node) \
{ \ { \
if (!tree->b_root) { \ if (!tree->b_root) { \
tree->b_root = &node->container_node_member; \ tree->b_root = &node->container_node_member; \
@@ -146,10 +146,10 @@ extern "C" {
return; \ return; \
} \ } \
\ \
struct btree_node *cur = tree->b_root; \ struct btree_node *cur = tree->b_root; \
while (1) { \ while (1) { \
node_type *cur_node = BTREE_CONTAINER(node_type, container_node_member, cur); \ node_type *cur_node = BTREE_CONTAINER(node_type, container_node_member, cur); \
struct btree_node *next = NULL; \ struct btree_node *next = NULL; \
int cmp = comparator(node, cur_node); \ int cmp = comparator(node, cur_node); \
\ \
if (cmp == 1) { \ if (cmp == 1) { \
@@ -203,22 +203,22 @@ extern "C" {
@param function_name the name of the function to generate. @param function_name the name of the function to generate.
*/ */
#define BTREE_DEFINE_SIMPLE_GET(node_type, key_type, container_node_member, container_key_member, function_name) \ #define BTREE_DEFINE_SIMPLE_GET(node_type, key_type, container_node_member, container_key_member, function_name) \
node_type *function_name(struct btree *tree, key_type key) \ node_type *function_name(struct btree *tree, key_type key) \
{ \ { \
struct btree_node *cur = tree->b_root; \ struct btree_node *cur = tree->b_root; \
while (cur) { \ while (cur) { \
node_type *cur_node = BTREE_CONTAINER(node_type, container_node_member, cur); \ node_type *cur_node = BTREE_CONTAINER(node_type, container_node_member, cur); \
if (key > cur_node->container_key_member) { \ if (key > cur_node->container_key_member) { \
cur = btree_right(cur); \ cur = btree_right(cur); \
} else if (key < cur_node->container_key_member) { \ } else if (key < cur_node->container_key_member) { \
cur = btree_left(cur); \ cur = btree_left(cur); \
} else { \ } else { \
return cur_node; \ return cur_node; \
} \ } \
} \ } \
\ \
return NULL; \ return NULL; \
} }
/* perform an in-order traversal of a binary tree /* perform an in-order traversal of a binary tree