Merge 30c2ed3096
into 1713aa7b4d
This commit is contained in:
commit
e038377438
|
@ -70,10 +70,36 @@ extern "C" {
|
||||||
#define ZFS_ACLTYPE_POSIX 1
|
#define ZFS_ACLTYPE_POSIX 1
|
||||||
#define ZFS_ACLTYPE_NFSV4 2
|
#define ZFS_ACLTYPE_NFSV4 2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The drr_versioninfo field of the dmu_replay_record has the
|
||||||
|
* following layout:
|
||||||
|
*
|
||||||
|
* 64 56 48 40 32 24 16 8 0
|
||||||
|
* +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||||
|
* |reserve| feature-flags |C|S|
|
||||||
|
* +-------+-------+-------+-------+-------+-------+-------+-------+
|
||||||
|
*
|
||||||
|
* The low order two bits indicate the header type: SUBSTREAM (0x1)
|
||||||
|
* or COMPOUNDSTREAM (0x2). Using two bits for this is historical:
|
||||||
|
* this field used to be a version number, where the two version types
|
||||||
|
* were 1 and 2. Using two bits for this allows earlier versions of
|
||||||
|
* the code to be able to recognize send streams that don't use any
|
||||||
|
* of the features indicated by feature flags.
|
||||||
|
*
|
||||||
|
* The top 8 bits are reserved for future expansion. At time of writing there
|
||||||
|
* are no plans for these. If you want to use them, please reach out to the
|
||||||
|
* OpenZFS community, e.g., on GitHub or Slack.
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Field manipulation macros for the drr_versioninfo field of the
|
* Field manipulation macros for the drr_versioninfo field of the
|
||||||
* send stream header.
|
* send stream header.
|
||||||
*/
|
*/
|
||||||
|
#define DMU_GET_STREAM_HDRTYPE(vi) BF64_GET((vi), 0, 2)
|
||||||
|
#define DMU_SET_STREAM_HDRTYPE(vi, x) BF64_SET((vi), 0, 2, x)
|
||||||
|
|
||||||
|
#define DMU_GET_FEATUREFLAGS(vi) BF64_GET((vi), 2, 54)
|
||||||
|
#define DMU_SET_FEATUREFLAGS(vi, x) BF64_SET((vi), 2, 54, x)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Header types for zfs send streams.
|
* Header types for zfs send streams.
|
||||||
|
@ -83,16 +109,9 @@ typedef enum drr_headertype {
|
||||||
DMU_COMPOUNDSTREAM = 0x2
|
DMU_COMPOUNDSTREAM = 0x2
|
||||||
} drr_headertype_t;
|
} drr_headertype_t;
|
||||||
|
|
||||||
#define DMU_GET_STREAM_HDRTYPE(vi) BF64_GET((vi), 0, 2)
|
|
||||||
#define DMU_SET_STREAM_HDRTYPE(vi, x) BF64_SET((vi), 0, 2, x)
|
|
||||||
|
|
||||||
#define DMU_GET_FEATUREFLAGS(vi) BF64_GET((vi), 2, 30)
|
|
||||||
#define DMU_SET_FEATUREFLAGS(vi, x) BF64_SET((vi), 2, 30, x)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature flags for zfs send streams (flags in drr_versioninfo)
|
* Feature flags for zfs send streams (flags in drr_versioninfo)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define DMU_BACKUP_FEATURE_DEDUP (1 << 0)
|
#define DMU_BACKUP_FEATURE_DEDUP (1 << 0)
|
||||||
#define DMU_BACKUP_FEATURE_DEDUPPROPS (1 << 1)
|
#define DMU_BACKUP_FEATURE_DEDUPPROPS (1 << 1)
|
||||||
#define DMU_BACKUP_FEATURE_SA_SPILL (1 << 2)
|
#define DMU_BACKUP_FEATURE_SA_SPILL (1 << 2)
|
||||||
|
@ -125,12 +144,6 @@ typedef enum drr_headertype {
|
||||||
*/
|
*/
|
||||||
#define DMU_BACKUP_FEATURE_SWITCH_TO_LARGE_BLOCKS (1 << 27)
|
#define DMU_BACKUP_FEATURE_SWITCH_TO_LARGE_BLOCKS (1 << 27)
|
||||||
/* flag #28 is reserved for a Nutanix feature */
|
/* flag #28 is reserved for a Nutanix feature */
|
||||||
/*
|
|
||||||
* flag #29 is the last unused bit. It is reserved to indicate a to-be-designed
|
|
||||||
* extension to the stream format which will accomodate more feature flags.
|
|
||||||
* If you need to add another feature flag, please reach out to the OpenZFS
|
|
||||||
* community, e.g., on GitHub or Slack.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mask of all supported backup features
|
* Mask of all supported backup features
|
||||||
|
@ -150,23 +163,6 @@ typedef enum dmu_send_resume_token_version {
|
||||||
ZFS_SEND_RESUME_TOKEN_VERSION = 1
|
ZFS_SEND_RESUME_TOKEN_VERSION = 1
|
||||||
} dmu_send_resume_token_version_t;
|
} dmu_send_resume_token_version_t;
|
||||||
|
|
||||||
/*
|
|
||||||
* The drr_versioninfo field of the dmu_replay_record has the
|
|
||||||
* following layout:
|
|
||||||
*
|
|
||||||
* 64 56 48 40 32 24 16 8 0
|
|
||||||
* +-------+-------+-------+-------+-------+-------+-------+-------+
|
|
||||||
* | reserved | feature-flags |C|S|
|
|
||||||
* +-------+-------+-------+-------+-------+-------+-------+-------+
|
|
||||||
*
|
|
||||||
* The low order two bits indicate the header type: SUBSTREAM (0x1)
|
|
||||||
* or COMPOUNDSTREAM (0x2). Using two bits for this is historical:
|
|
||||||
* this field used to be a version number, where the two version types
|
|
||||||
* were 1 and 2. Using two bits for this allows earlier versions of
|
|
||||||
* the code to be able to recognize send streams that don't use any
|
|
||||||
* of the features indicated by feature flags.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define DMU_BACKUP_MAGIC 0x2F5bacbacULL
|
#define DMU_BACKUP_MAGIC 0x2F5bacbacULL
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -230,10 +226,6 @@ typedef enum dmu_send_resume_token_version {
|
||||||
((drro)->drr_raw_bonuslen != 0 ? \
|
((drro)->drr_raw_bonuslen != 0 ? \
|
||||||
(drro)->drr_raw_bonuslen : P2ROUNDUP((drro)->drr_bonuslen, 8))
|
(drro)->drr_raw_bonuslen : P2ROUNDUP((drro)->drr_bonuslen, 8))
|
||||||
|
|
||||||
/*
|
|
||||||
* zfs ioctl command structure
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Header is used in C++ so can't forward declare untagged struct */
|
/* Header is used in C++ so can't forward declare untagged struct */
|
||||||
struct drr_begin {
|
struct drr_begin {
|
||||||
uint64_t drr_magic;
|
uint64_t drr_magic;
|
||||||
|
@ -477,6 +469,10 @@ typedef enum zfs_case {
|
||||||
ZFS_CASE_MIXED
|
ZFS_CASE_MIXED
|
||||||
} zfs_case_t;
|
} zfs_case_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* zfs ioctl command structure
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note: this struct must have the same layout in 32-bit and 64-bit, so
|
* Note: this struct must have the same layout in 32-bit and 64-bit, so
|
||||||
* that 32-bit processes (like /sbin/zfs) can pass it to the 64-bit
|
* that 32-bit processes (like /sbin/zfs) can pass it to the 64-bit
|
||||||
|
|
Loading…
Reference in New Issue