Print this page
*** NO COMMENTS ***


 785 extern void dmu_fini(void);
 786 
 787 typedef void (*dmu_traverse_cb_t)(objset_t *os, void *arg, struct blkptr *bp,
 788     uint64_t object, uint64_t offset, int len);
 789 void dmu_traverse_objset(objset_t *os, uint64_t txg_start,
 790     dmu_traverse_cb_t cb, void *arg);
 791 
 792 int dmu_send(objset_t *tosnap, objset_t *fromsnap, boolean_t fromorigin,
 793     int outfd, struct vnode *vp, offset_t *off);
 794 int dmu_send_estimate(objset_t *tosnap, objset_t *fromsnap, boolean_t fromorign,
 795     uint64_t *sizep);
 796 
 797 typedef struct dmu_recv_cookie {
 798         /*
 799          * This structure is opaque!
 800          *
 801          * If logical and real are different, we are recving the stream
 802          * into the "real" temporary clone, and then switching it with
 803          * the "logical" target.
 804          */
 805         struct dsl_dataset *drc_logical_ds;
 806         struct dsl_dataset *drc_real_ds;
 807         struct drr_begin *drc_drrb;
 808         char *drc_tosnap;
 809         char *drc_top_ds;
 810         boolean_t drc_newfs;
 811         boolean_t drc_force;
 812         struct avl_tree *drc_guid_to_ds_map;
 813 } dmu_recv_cookie_t;
 814 
 815 int dmu_recv_begin(char *tofs, char *tosnap, char *topds, struct drr_begin *,
 816     boolean_t force, objset_t *origin, dmu_recv_cookie_t *);
 817 int dmu_recv_stream(dmu_recv_cookie_t *drc, struct vnode *vp, offset_t *voffp,
 818     int cleanup_fd, uint64_t *action_handlep);
 819 int dmu_recv_end(dmu_recv_cookie_t *drc);
 820 
 821 int dmu_diff(objset_t *tosnap, objset_t *fromsnap, struct vnode *vp,
 822     offset_t *off);
 823 
 824 /* CRC64 table */
 825 #define ZFS_CRC64_POLY  0xC96C5795D7870F42ULL   /* ECMA-182, reflected form */


 785 extern void dmu_fini(void);
 786 
 787 typedef void (*dmu_traverse_cb_t)(objset_t *os, void *arg, struct blkptr *bp,
 788     uint64_t object, uint64_t offset, int len);
 789 void dmu_traverse_objset(objset_t *os, uint64_t txg_start,
 790     dmu_traverse_cb_t cb, void *arg);
 791 
 792 int dmu_send(objset_t *tosnap, objset_t *fromsnap, boolean_t fromorigin,
 793     int outfd, struct vnode *vp, offset_t *off);
 794 int dmu_send_estimate(objset_t *tosnap, objset_t *fromsnap, boolean_t fromorign,
 795     uint64_t *sizep);
 796 
 797 typedef struct dmu_recv_cookie {
 798         /*
 799          * This structure is opaque!
 800          *
 801          * If logical and real are different, we are recving the stream
 802          * into the "real" temporary clone, and then switching it with
 803          * the "logical" target.
 804          */
 805         uint64_t drc_logical_dsobj;
 806         struct dsl_dataset *drc_real_ds;
 807         struct drr_begin *drc_drrb;
 808         char *drc_tosnap;
 809         char *drc_top_ds;
 810         boolean_t drc_newfs;
 811         boolean_t drc_force;
 812         struct avl_tree *drc_guid_to_ds_map;
 813 } dmu_recv_cookie_t;
 814 
 815 int dmu_recv_begin(char *tofs, char *tosnap, char *topds, struct drr_begin *,
 816     boolean_t force, objset_t *origin, dmu_recv_cookie_t *);
 817 int dmu_recv_stream(dmu_recv_cookie_t *drc, struct vnode *vp, offset_t *voffp,
 818     int cleanup_fd, uint64_t *action_handlep);
 819 int dmu_recv_end(dmu_recv_cookie_t *drc);
 820 
 821 int dmu_diff(objset_t *tosnap, objset_t *fromsnap, struct vnode *vp,
 822     offset_t *off);
 823 
 824 /* CRC64 table */
 825 #define ZFS_CRC64_POLY  0xC96C5795D7870F42ULL   /* ECMA-182, reflected form */