18#define BTRFS_MAGIC 0x4d5f53665248425f
19#define MAX_LABEL_SIZE 0x100
20#define SUBVOL_ROOT_INODE 0x100
21#define BTRFS_LAST_FREE_OBJECTID 0xffffffffffffff00
23#define TYPE_INODE_ITEM 0x01
24#define TYPE_INODE_REF 0x0C
25#define TYPE_INODE_EXTREF 0x0D
26#define TYPE_XATTR_ITEM 0x18
27#define TYPE_ORPHAN_INODE 0x30
28#define TYPE_DIR_ITEM 0x54
29#define TYPE_DIR_INDEX 0x60
30#define TYPE_EXTENT_DATA 0x6C
31#define TYPE_EXTENT_CSUM 0x80
32#define TYPE_ROOT_ITEM 0x84
33#define TYPE_ROOT_BACKREF 0x90
34#define TYPE_ROOT_REF 0x9C
35#define TYPE_EXTENT_ITEM 0xA8
36#define TYPE_METADATA_ITEM 0xA9
37#define TYPE_TREE_BLOCK_REF 0xB0
38#define TYPE_EXTENT_DATA_REF 0xB2
39#define TYPE_EXTENT_REF_V0 0xB4
40#define TYPE_SHARED_BLOCK_REF 0xB6
41#define TYPE_SHARED_DATA_REF 0xB8
42#define TYPE_BLOCK_GROUP_ITEM 0xC0
43#define TYPE_FREE_SPACE_INFO 0xC6
44#define TYPE_FREE_SPACE_EXTENT 0xC7
45#define TYPE_FREE_SPACE_BITMAP 0xC8
46#define TYPE_DEV_EXTENT 0xCC
47#define TYPE_DEV_ITEM 0xD8
48#define TYPE_CHUNK_ITEM 0xE4
49#define TYPE_TEMP_ITEM 0xF8
50#define TYPE_DEV_STATS 0xF9
51#define TYPE_SUBVOL_UUID 0xFB
52#define TYPE_SUBVOL_REC_UUID 0xFC
54#define BTRFS_ROOT_ROOT 1
55#define BTRFS_ROOT_EXTENT 2
56#define BTRFS_ROOT_CHUNK 3
57#define BTRFS_ROOT_DEVTREE 4
58#define BTRFS_ROOT_FSTREE 5
59#define BTRFS_ROOT_TREEDIR 6
60#define BTRFS_ROOT_CHECKSUM 7
61#define BTRFS_ROOT_UUID 9
62#define BTRFS_ROOT_FREE_SPACE 0xa
63#define BTRFS_ROOT_DATA_RELOC 0xFFFFFFFFFFFFFFF7
65#define BTRFS_COMPRESSION_NONE 0
66#define BTRFS_COMPRESSION_ZLIB 1
67#define BTRFS_COMPRESSION_LZO 2
68#define BTRFS_COMPRESSION_ZSTD 3
70#define BTRFS_ENCRYPTION_NONE 0
72#define BTRFS_ENCODING_NONE 0
74#define EXTENT_TYPE_INLINE 0
75#define EXTENT_TYPE_REGULAR 1
76#define EXTENT_TYPE_PREALLOC 2
78#define BLOCK_FLAG_DATA 0x001
79#define BLOCK_FLAG_SYSTEM 0x002
80#define BLOCK_FLAG_METADATA 0x004
81#define BLOCK_FLAG_RAID0 0x008
82#define BLOCK_FLAG_RAID1 0x010
83#define BLOCK_FLAG_DUPLICATE 0x020
84#define BLOCK_FLAG_RAID10 0x040
85#define BLOCK_FLAG_RAID5 0x080
86#define BLOCK_FLAG_RAID6 0x100
87#define BLOCK_FLAG_RAID1C3 0x200
88#define BLOCK_FLAG_RAID1C4 0x400
90#define FREE_SPACE_CACHE_ID 0xFFFFFFFFFFFFFFF5
91#define EXTENT_CSUM_ID 0xFFFFFFFFFFFFFFF6
92#define BALANCE_ITEM_ID 0xFFFFFFFFFFFFFFFC
94#define BTRFS_INODE_NODATASUM 0x001
95#define BTRFS_INODE_NODATACOW 0x002
96#define BTRFS_INODE_READONLY 0x004
97#define BTRFS_INODE_NOCOMPRESS 0x008
98#define BTRFS_INODE_PREALLOC 0x010
99#define BTRFS_INODE_SYNC 0x020
100#define BTRFS_INODE_IMMUTABLE 0x040
101#define BTRFS_INODE_APPEND 0x080
102#define BTRFS_INODE_NODUMP 0x100
103#define BTRFS_INODE_NOATIME 0x200
104#define BTRFS_INODE_DIRSYNC 0x400
105#define BTRFS_INODE_COMPRESS 0x800
107#define BTRFS_INODE_RO_VERITY 0x1
109#define BTRFS_SUBVOL_READONLY 0x1
111#define BTRFS_COMPAT_RO_FLAGS_FREE_SPACE_CACHE 0x1
112#define BTRFS_COMPAT_RO_FLAGS_FREE_SPACE_CACHE_VALID 0x2
113#define BTRFS_COMPAT_RO_FLAGS_VERITY 0x4
115#define BTRFS_INCOMPAT_FLAGS_MIXED_BACKREF 0x0001
116#define BTRFS_INCOMPAT_FLAGS_DEFAULT_SUBVOL 0x0002
117#define BTRFS_INCOMPAT_FLAGS_MIXED_GROUPS 0x0004
118#define BTRFS_INCOMPAT_FLAGS_COMPRESS_LZO 0x0008
119#define BTRFS_INCOMPAT_FLAGS_COMPRESS_ZSTD 0x0010
120#define BTRFS_INCOMPAT_FLAGS_BIG_METADATA 0x0020
121#define BTRFS_INCOMPAT_FLAGS_EXTENDED_IREF 0x0040
122#define BTRFS_INCOMPAT_FLAGS_RAID56 0x0080
123#define BTRFS_INCOMPAT_FLAGS_SKINNY_METADATA 0x0100
124#define BTRFS_INCOMPAT_FLAGS_NO_HOLES 0x0200
125#define BTRFS_INCOMPAT_FLAGS_METADATA_UUID 0x0400
126#define BTRFS_INCOMPAT_FLAGS_RAID1C34 0x0800
128#define BTRFS_SUPERBLOCK_FLAGS_SEEDING 0x100000000
130#define BTRFS_ORPHAN_INODE_OBJID 0xFFFFFFFFFFFFFFFB
132#define CSUM_TYPE_CRC32C 0
133#define CSUM_TYPE_XXHASH 1
134#define CSUM_TYPE_SHA256 2
135#define CSUM_TYPE_BLAKE2 3
149#define HEADER_FLAG_WRITTEN 0x000000000000001
150#define HEADER_FLAG_SHARED_BACKREF 0x000000000000002
151#define HEADER_FLAG_MIXED_BACKREF 0x100000000000000
194#define SYS_CHUNK_ARRAY_SIZE 0x800
195#define BTRFS_NUM_BACKUP_ROOTS 4
262#define BTRFS_TYPE_UNKNOWN 0
263#define BTRFS_TYPE_FILE 1
264#define BTRFS_TYPE_DIRECTORY 2
265#define BTRFS_TYPE_CHARDEV 3
266#define BTRFS_TYPE_BLOCKDEV 4
267#define BTRFS_TYPE_FIFO 5
268#define BTRFS_TYPE_SOCKET 6
269#define BTRFS_TYPE_SYMLINK 7
270#define BTRFS_TYPE_EA 8
308static_assert(
sizeof(
INODE_ITEM) == 0xa0,
"INODE_ITEM has wrong size");
387#define EXTENT_ITEM_DATA 0x001
388#define EXTENT_ITEM_TREE_BLOCK 0x002
389#define EXTENT_ITEM_SHARED_BACKREFS 0x100
445#define FREE_SPACE_EXTENT 1
446#define FREE_SPACE_BITMAP 2
476#define BALANCE_FLAGS_DATA 0x1
477#define BALANCE_FLAGS_SYSTEM 0x2
478#define BALANCE_FLAGS_METADATA 0x4
480#define BALANCE_ARGS_FLAGS_PROFILES 0x001
481#define BALANCE_ARGS_FLAGS_USAGE 0x002
482#define BALANCE_ARGS_FLAGS_DEVID 0x004
483#define BALANCE_ARGS_FLAGS_DRANGE 0x008
484#define BALANCE_ARGS_FLAGS_VRANGE 0x010
485#define BALANCE_ARGS_FLAGS_LIMIT 0x020
486#define BALANCE_ARGS_FLAGS_LIMIT_RANGE 0x040
487#define BALANCE_ARGS_FLAGS_STRIPES_RANGE 0x080
488#define BALANCE_ARGS_FLAGS_CONVERT 0x100
489#define BALANCE_ARGS_FLAGS_SOFT 0x200
490#define BALANCE_ARGS_FLAGS_USAGE_RANGE 0x400
532#define BTRFS_FREE_SPACE_USING_BITMAPS 1
539#define BTRFS_DEV_STAT_WRITE_ERRORS 0
540#define BTRFS_DEV_STAT_READ_ERRORS 1
541#define BTRFS_DEV_STAT_FLUSH_ERRORS 2
542#define BTRFS_DEV_STAT_CORRUPTION_ERRORS 3
543#define BTRFS_DEV_STAT_GENERATION_ERRORS 4
545#define BTRFS_SEND_CMD_SUBVOL 1
546#define BTRFS_SEND_CMD_SNAPSHOT 2
547#define BTRFS_SEND_CMD_MKFILE 3
548#define BTRFS_SEND_CMD_MKDIR 4
549#define BTRFS_SEND_CMD_MKNOD 5
550#define BTRFS_SEND_CMD_MKFIFO 6
551#define BTRFS_SEND_CMD_MKSOCK 7
552#define BTRFS_SEND_CMD_SYMLINK 8
553#define BTRFS_SEND_CMD_RENAME 9
554#define BTRFS_SEND_CMD_LINK 10
555#define BTRFS_SEND_CMD_UNLINK 11
556#define BTRFS_SEND_CMD_RMDIR 12
557#define BTRFS_SEND_CMD_SET_XATTR 13
558#define BTRFS_SEND_CMD_REMOVE_XATTR 14
559#define BTRFS_SEND_CMD_WRITE 15
560#define BTRFS_SEND_CMD_CLONE 16
561#define BTRFS_SEND_CMD_TRUNCATE 17
562#define BTRFS_SEND_CMD_CHMOD 18
563#define BTRFS_SEND_CMD_CHOWN 19
564#define BTRFS_SEND_CMD_UTIMES 20
565#define BTRFS_SEND_CMD_END 21
566#define BTRFS_SEND_CMD_UPDATE_EXTENT 22
568#define BTRFS_SEND_TLV_UUID 1
569#define BTRFS_SEND_TLV_TRANSID 2
570#define BTRFS_SEND_TLV_INODE 3
571#define BTRFS_SEND_TLV_SIZE 4
572#define BTRFS_SEND_TLV_MODE 5
573#define BTRFS_SEND_TLV_UID 6
574#define BTRFS_SEND_TLV_GID 7
575#define BTRFS_SEND_TLV_RDEV 8
576#define BTRFS_SEND_TLV_CTIME 9
577#define BTRFS_SEND_TLV_MTIME 10
578#define BTRFS_SEND_TLV_ATIME 11
579#define BTRFS_SEND_TLV_OTIME 12
580#define BTRFS_SEND_TLV_XATTR_NAME 13
581#define BTRFS_SEND_TLV_XATTR_DATA 14
582#define BTRFS_SEND_TLV_PATH 15
583#define BTRFS_SEND_TLV_PATH_TO 16
584#define BTRFS_SEND_TLV_PATH_LINK 17
585#define BTRFS_SEND_TLV_OFFSET 18
586#define BTRFS_SEND_TLV_DATA 19
587#define BTRFS_SEND_TLV_CLONE_UUID 20
588#define BTRFS_SEND_TLV_CLONE_CTRANSID 21
589#define BTRFS_SEND_TLV_CLONE_PATH 22
590#define BTRFS_SEND_TLV_CLONE_OFFSET 23
591#define BTRFS_SEND_TLV_CLONE_LENGTH 24
593#define BTRFS_SEND_MAGIC "btrfs-stream"
unsigned short int uint16_t
static cab_ULONG checksum(const cab_UBYTE *data, cab_UWORD bytes, cab_ULONG csum)
#define BTRFS_NUM_BACKUP_ROOTS
static const uint64_t superblock_addrs[]
#define SYS_CHUNK_ARRAY_SIZE
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
static const WCHAR label[]
uint32_t opt_io_alignment
BTRFS_UUID chunktree_uuid
uint32_t optimal_io_align
uint32_t optimal_io_width
uint64_t last_snapshot_generation
uint64_t dev_root_generation
uint8_t extent_root_level
uint64_t extent_tree_addr
uint64_t root_tree_generation
uint64_t extent_tree_generation
uint64_t fs_tree_generation
uint64_t csum_root_generation
uint64_t chunk_tree_generation
uint64_t chunk_root_generation
uint64_t uuid_tree_generation
uint64_t root_dir_objectid
uint64_t log_root_transid
uint64_t cache_generation