David Sterba
2014-Nov-03 22:53 UTC
[PATCH] btrfs-progs: libbtrfs, make exported headers compatible with C++
Add externs and don't use a reserved keyword. Signed-off-by: David Sterba <dsterba@suse.cz> --- rbtree-utils.h | 8 ++++++++ rbtree.h | 10 +++++++++- rbtree_augmented.h | 8 ++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/rbtree-utils.h b/rbtree-utils.h index 7298c72eba3d..718581ff105c 100644 --- a/rbtree-utils.h +++ b/rbtree-utils.h @@ -21,6 +21,10 @@ #include "rbtree.h" +#ifdef __cplusplus +extern "C" { +#endif + /* The common insert/search/free functions */ typedef int (*rb_compare_nodes)(struct rb_node *node1, struct rb_node *node2); typedef int (*rb_compare_keys)(struct rb_node *node, void *key); @@ -42,4 +46,8 @@ static void free_##name##_tree(struct rb_root *root) \ rb_free_nodes(root, free_func); \ } +#ifdef __cplusplus +} +#endif + #endif diff --git a/rbtree.h b/rbtree.h index 03c06d8ec16a..0d4f2bfd5a5e 100644 --- a/rbtree.h +++ b/rbtree.h @@ -34,6 +34,10 @@ #include <btrfs/kerncompat.h> #endif /* BTRFS_FLAT_INCLUDES */ +#ifdef __cplusplus +extern "C" { +#endif + struct rb_node { unsigned long __rb_parent_color; struct rb_node *rb_right; @@ -75,7 +79,7 @@ extern struct rb_node *rb_first_postorder(const struct rb_root *); extern struct rb_node *rb_next_postorder(const struct rb_node *); /* Fast replacement of a single node without remove/rebalance/add/rebalance */ -extern void rb_replace_node(struct rb_node *victim, struct rb_node *new, +extern void rb_replace_node(struct rb_node *victim, struct rb_node *new_node, struct rb_root *root); static inline void rb_link_node(struct rb_node * node, struct rb_node * parent, @@ -107,4 +111,8 @@ static inline void rb_link_node(struct rb_node * node, struct rb_node * parent, typeof(*pos), field); 1; }); \ pos = n) +#ifdef __cplusplus +} +#endif + #endif /* _LINUX_RBTREE_H */ diff --git a/rbtree_augmented.h b/rbtree_augmented.h index 079eb978dc4d..cbc963981667 100644 --- a/rbtree_augmented.h +++ b/rbtree_augmented.h @@ -26,6 +26,10 @@ #include "rbtree.h" +#ifdef __cplusplus +extern "C" { +#endif + /* * Please note - only struct rb_augment_callbacks and the prototypes for * rb_insert_augmented() and rb_erase_augmented() are intended to be public. @@ -228,4 +232,8 @@ rb_erase_augmented(struct rb_node *node, struct rb_root *root, __rb_erase_color(rebalance, root, augment->rotate); } +#ifdef __cplusplus +} +#endif + #endif /* _LINUX_RBTREE_AUGMENTED_H */ -- 2.1.1 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html