aboutsummaryrefslogtreecommitdiff
path: root/lib/libbe/be_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libbe/be_impl.h')
-rw-r--r--lib/libbe/be_impl.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/lib/libbe/be_impl.h b/lib/libbe/be_impl.h
new file mode 100644
index 000000000000..11d1e0ddca28
--- /dev/null
+++ b/lib/libbe/be_impl.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2017 Kyle J. Kneitinger <kyle@kneit.in>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#ifndef _LIBBE_IMPL_H
+#define _LIBBE_IMPL_H
+
+#include <libzfs.h>
+
+#include "be.h"
+
+struct libbe_handle {
+ char root[BE_MAXPATHLEN];
+ char rootfs[BE_MAXPATHLEN];
+ char bootfs[BE_MAXPATHLEN];
+ char *bootonce;
+ size_t altroot_len;
+ zpool_handle_t *active_phandle;
+ libzfs_handle_t *lzh;
+ be_error_t error;
+ bool print_on_err;
+};
+
+struct libbe_deep_clone {
+ libbe_handle_t *lbh;
+ const char *bename;
+ const char *snapname;
+ int depth;
+ int depth_limit;
+};
+
+struct libbe_dccb {
+ libbe_handle_t *lbh;
+ zfs_handle_t *zhp;
+ nvlist_t *props;
+};
+
+typedef struct prop_data {
+ nvlist_t *list;
+ libbe_handle_t *lbh;
+ bool single_object; /* list will contain props directly */
+ char *bootonce;
+} prop_data_t;
+
+int prop_list_builder_cb(zfs_handle_t *, void *);
+int be_proplist_update(prop_data_t *);
+
+char *be_mountpoint_augmented(libbe_handle_t *lbh, char *mountpoint);
+
+/* Clobbers any previous errors */
+int set_error(libbe_handle_t *, be_error_t);
+
+#endif /* _LIBBE_IMPL_H */