diff options
author | Arvin Schnell <aschnell@suse.de> | 2013-01-30 14:50:26 -0800 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2013-02-19 11:15:30 +0100 |
commit | 0c38ff3ca4f481bbae74283fd00a56fbd938e4b2 (patch) | |
tree | 0cfb6ca9cf09a104237203bfba74eb52dc47f51c | |
parent | 7d4dc89f96644c6f1b7efb5a3759bbee58f5b27e (diff) |
btrfs-progs: make libbtrfs usable from C++
Please find attached a patch to make the new libbtrfs usable from
C++ (at least for the parts snapper will likely need).
Signed-off-by: Arvin Schnell <aschnell@suse.de>
Signed-off-by: Mark Fasheh <mfasheh@suse.de>
-rw-r--r-- | extent_io.c | 6 | ||||
-rw-r--r-- | extent_io.h | 6 | ||||
-rw-r--r-- | ioctl.h | 8 | ||||
-rw-r--r-- | list.h | 40 | ||||
-rw-r--r-- | rbtree.h | 2 | ||||
-rw-r--r-- | send-stream.h | 7 | ||||
-rw-r--r-- | send-utils.h | 7 | ||||
-rw-r--r-- | send.h | 8 |
8 files changed, 57 insertions, 27 deletions
diff --git a/extent_io.c b/extent_io.c index 987452e1..78deb502 100644 --- a/extent_io.c +++ b/extent_io.c @@ -48,7 +48,7 @@ static struct extent_state *alloc_extent_state(void) return NULL; state->refs = 1; state->state = 0; - state->private = 0; + state->xprivate = 0; return state; } @@ -511,7 +511,7 @@ int set_state_private(struct extent_io_tree *tree, u64 start, u64 private) ret = -ENOENT; goto out; } - state->private = private; + state->xprivate = private; out: return ret; } @@ -532,7 +532,7 @@ int get_state_private(struct extent_io_tree *tree, u64 start, u64 *private) ret = -ENOENT; goto out; } - *private = state->private; + *private = state->xprivate; out: return ret; } diff --git a/extent_io.h b/extent_io.h index 5df44f7d..63e90042 100644 --- a/extent_io.h +++ b/extent_io.h @@ -47,7 +47,7 @@ struct extent_state { u64 end; int refs; unsigned long state; - u64 private; + u64 xprivate; }; struct extent_buffer { @@ -86,8 +86,8 @@ int extent_buffer_uptodate(struct extent_buffer *eb); int set_extent_buffer_uptodate(struct extent_buffer *eb); int clear_extent_buffer_uptodate(struct extent_io_tree *tree, struct extent_buffer *eb); -int set_state_private(struct extent_io_tree *tree, u64 start, u64 private); -int get_state_private(struct extent_io_tree *tree, u64 start, u64 *private); +int set_state_private(struct extent_io_tree *tree, u64 start, u64 xprivate); +int get_state_private(struct extent_io_tree *tree, u64 start, u64 *xprivate); struct extent_buffer *find_extent_buffer(struct extent_io_tree *tree, u64 bytenr, u32 blocksize); struct extent_buffer *find_first_extent_buffer(struct extent_io_tree *tree, @@ -22,6 +22,10 @@ #include <linux/ioctl.h> #include <time.h> +#ifdef __cplusplus +extern "C" { +#endif + #define BTRFS_IOCTL_MAGIC 0x94 #define BTRFS_VOL_NAME_MAX 255 @@ -521,4 +525,8 @@ struct btrfs_ioctl_clone_range_args { #define BTRFS_IOC_DEV_REPLACE _IOWR(BTRFS_IOCTL_MAGIC, 53, \ struct btrfs_ioctl_dev_replace_args) +#ifdef __cplusplus +} +#endif + #endif @@ -19,8 +19,8 @@ #ifndef _LINUX_LIST_H #define _LINUX_LIST_H -#define LIST_POISON1 ((void *) 0x00100100) -#define LIST_POISON2 ((void *) 0x00200200) +#define LIST_POISON1 ((struct list_head *) 0x00100100) +#define LIST_POISON2 ((struct list_head *) 0x00200200) /* * Simple doubly linked list implementation. @@ -54,17 +54,17 @@ static inline void INIT_LIST_HEAD(struct list_head *list) * the prev/next entries already! */ #ifndef CONFIG_DEBUG_LIST -static inline void __list_add(struct list_head *new, +static inline void __list_add(struct list_head *xnew, struct list_head *prev, struct list_head *next) { - next->prev = new; - new->next = next; - new->prev = prev; - prev->next = new; + next->prev = xnew; + xnew->next = next; + xnew->prev = prev; + prev->next = xnew; } #else -extern void __list_add(struct list_head *new, +extern void __list_add(struct list_head *xnew, struct list_head *prev, struct list_head *next); #endif @@ -78,12 +78,12 @@ extern void __list_add(struct list_head *new, * This is good for implementing stacks. */ #ifndef CONFIG_DEBUG_LIST -static inline void list_add(struct list_head *new, struct list_head *head) +static inline void list_add(struct list_head *xnew, struct list_head *head) { - __list_add(new, head, head->next); + __list_add(xnew, head, head->next); } #else -extern void list_add(struct list_head *new, struct list_head *head); +extern void list_add(struct list_head *xnew, struct list_head *head); #endif @@ -95,9 +95,9 @@ extern void list_add(struct list_head *new, struct list_head *head); * Insert a new entry before the specified head. * This is useful for implementing queues. */ -static inline void list_add_tail(struct list_head *new, struct list_head *head) +static inline void list_add_tail(struct list_head *xnew, struct list_head *head) { - __list_add(new, head->prev, head); + __list_add(xnew, head->prev, head); } /* @@ -137,18 +137,18 @@ extern void list_del(struct list_head *entry); * Note: if 'old' was empty, it will be overwritten. */ static inline void list_replace(struct list_head *old, - struct list_head *new) + struct list_head *xnew) { - new->next = old->next; - new->next->prev = new; - new->prev = old->prev; - new->prev->next = new; + xnew->next = old->next; + xnew->next->prev = xnew; + xnew->prev = old->prev; + xnew->prev->next = xnew; } static inline void list_replace_init(struct list_head *old, - struct list_head *new) + struct list_head *xnew) { - list_replace(old, new); + list_replace(old, xnew); INIT_LIST_HEAD(old); } /** @@ -145,7 +145,7 @@ extern struct rb_node *rb_first(struct rb_root *); extern struct rb_node *rb_last(struct rb_root *); /* 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 *xnew, struct rb_root *root); static inline void rb_link_node(struct rb_node * node, struct rb_node * parent, diff --git a/send-stream.h b/send-stream.h index 9a17e32d..92230187 100644 --- a/send-stream.h +++ b/send-stream.h @@ -18,6 +18,10 @@ #ifndef SEND_STREAM_H_ #define SEND_STREAM_H_ +#ifdef __cplusplus +extern "C" { +#endif + struct btrfs_send_ops { int (*subvol)(const char *path, const u8 *uuid, u64 ctransid, void *user); @@ -55,5 +59,8 @@ struct btrfs_send_ops { int btrfs_read_and_process_send_stream(int fd, struct btrfs_send_ops *ops, void *user); +#ifdef __cplusplus +} +#endif #endif /* SEND_STREAM_H_ */ diff --git a/send-utils.h b/send-utils.h index da407eba..fea576c0 100644 --- a/send-utils.h +++ b/send-utils.h @@ -21,6 +21,10 @@ #include "ctree.h" #include "rbtree.h" +#ifdef __cplusplus +extern "C" { +#endif + enum subvol_search_type { subvol_search_by_root_id, subvol_search_by_uuid, @@ -65,5 +69,8 @@ void subvol_uuid_search_add(struct subvol_uuid_search *s, char *path_cat(const char *p1, const char *p2); char *path_cat3(const char *p1, const char *p2, const char *p3); +#ifdef __cplusplus +} +#endif #endif /* SEND_UTILS_H_ */ @@ -19,6 +19,10 @@ #include "ctree.h" +#ifdef __cplusplus +extern "C" { +#endif + #define BTRFS_SEND_STREAM_MAGIC "btrfs-stream" #define BTRFS_SEND_STREAM_VERSION 1 @@ -132,3 +136,7 @@ enum { #ifdef __KERNEL__ long btrfs_ioctl_send(struct file *mnt_file, void __user *arg); #endif + +#ifdef __cplusplus +} +#endif |