1248619Sdes/*
2180750Sdes * CDDL HEADER START
3180750Sdes *
4180750Sdes * This file and its contents are supplied under the terms of the
5180750Sdes * Common Development and Distribution License ("CDDL"), version 1.0.
6180750Sdes * You may only use this file in accordance with the terms of version
7180750Sdes * 1.0 of the CDDL.
8180750Sdes *
9180750Sdes * A full copy of the text of the CDDL should have accompanied this
10180750Sdes * source.  A copy of the CDDL is also available via the Internet at
11180750Sdes * http://www.illumos.org/license/CDDL.
12180750Sdes *
13180750Sdes * CDDL HEADER END
14180750Sdes */
15180750Sdes/*
16290671Sdes * Copyright (c) 2013 by Delphix. All rights reserved.
17180750Sdes */
18180750Sdes
19180750Sdes#ifndef	_SYS_DSL_BOOKMARK_H
20180750Sdes#define	_SYS_DSL_BOOKMARK_H
21226046Sdes
22180750Sdes#include <sys/zfs_context.h>
23180750Sdes
24180750Sdes#ifdef	__cplusplus
25226046Sdesextern "C" {
26180750Sdes#endif
27180750Sdes
28180750Sdesstruct dsl_pool;
29180750Sdesstruct dsl_dataset;
30180750Sdes
31180750Sdes/*
32180750Sdes * On disk zap object.
33180750Sdes */
34226046Sdestypedef struct zfs_bookmark_phys {
35180750Sdes	uint64_t zbm_guid;		/* guid of bookmarked dataset */
36180750Sdes	uint64_t zbm_creation_txg;	/* birth transaction group */
37180750Sdes	uint64_t zbm_creation_time;	/* bookmark creation time */
38180750Sdes} zfs_bookmark_phys_t;
39180750Sdes
40226046Sdesint dsl_bookmark_create(nvlist_t *, nvlist_t *);
41180750Sdesint dsl_get_bookmarks(const char *, nvlist_t *, nvlist_t *);
42226046Sdesint dsl_get_bookmarks_impl(dsl_dataset_t *, nvlist_t *, nvlist_t *);
43180750Sdesint dsl_bookmark_destroy(nvlist_t *, nvlist_t *);
44180750Sdesint dsl_bookmark_lookup(struct dsl_pool *, const char *,
45180750Sdes    struct dsl_dataset *, zfs_bookmark_phys_t *);
46180750Sdes
47180750Sdes#ifdef	__cplusplus
48180750Sdes}
49226046Sdes#endif
50180750Sdes
51180750Sdes#endif /* _SYS_DSL_BOOKMARK_H */
52180750Sdes