Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/lib/libbe/be_impl.h
34820 views
1
/*
2
* Copyright (c) 2017 Kyle J. Kneitinger <[email protected]>
3
*
4
* SPDX-License-Identifier: BSD-2-Clause
5
*/
6
7
#ifndef _LIBBE_IMPL_H
8
#define _LIBBE_IMPL_H
9
10
#include <libzfs.h>
11
12
#include "be.h"
13
14
struct libbe_handle {
15
char root[BE_MAXPATHLEN];
16
char rootfs[BE_MAXPATHLEN];
17
char bootfs[BE_MAXPATHLEN];
18
char *bootonce;
19
size_t altroot_len;
20
zpool_handle_t *active_phandle;
21
libzfs_handle_t *lzh;
22
be_error_t error;
23
bool print_on_err;
24
};
25
26
struct libbe_deep_clone {
27
libbe_handle_t *lbh;
28
const char *bename;
29
const char *snapname;
30
int depth;
31
int depth_limit;
32
};
33
34
struct libbe_dccb {
35
libbe_handle_t *lbh;
36
zfs_handle_t *zhp;
37
nvlist_t *props;
38
};
39
40
typedef struct prop_data {
41
nvlist_t *list;
42
libbe_handle_t *lbh;
43
bool single_object; /* list will contain props directly */
44
char *bootonce;
45
} prop_data_t;
46
47
int prop_list_builder_cb(zfs_handle_t *, void *);
48
int be_proplist_update(prop_data_t *);
49
50
char *be_mountpoint_augmented(libbe_handle_t *lbh, char *mountpoint);
51
52
/* Clobbers any previous errors */
53
int set_error(libbe_handle_t *, be_error_t);
54
55
#endif /* _LIBBE_IMPL_H */
56
57