ioctl: add decoding support for btrfs ioctls
* btrfs.c: New file. * file_ioctl.c: Likewise. * Makefile.am (strace_SOURCES): Add them. * configure.ac (AC_CHECK_HEADERS): Add linux/btrfs.h. (AC_CHECK_MEMBERS): Add struct btrfs_ioctl_feature_flags.compat_flags, struct btrfs_ioctl_fs_info_args.nodesize, struct btrfs_ioctl_defrag_range_args.start, and struct btrfs_ioctl_search_args_v2.buf_size. (AC_CHECK_DECLS): Add BTRFS_COMPRESS_* enums. * defs.h (btrfs_ioctl, file_ioctl): New prototypes. * ioctl.c (ioctl_decode) [HAVE_LINUX_BTRFS_H]: Use btrfs_ioctl. * xlat/btrfs_balance_args.in: New file. * xlat/btrfs_balance_ctl_cmds.in: Likewise. * xlat/btrfs_balance_flags.in: Likewise. * xlat/btrfs_balance_state.in: Likewise. * xlat/btrfs_compress_types.in: Likewise. * xlat/btrfs_defrag_flags.in: Likewise. * xlat/btrfs_dev_replace_cmds.in: Likewise. * xlat/btrfs_dev_replace_results.in: Likewise. * xlat/btrfs_dev_replace_state.in: Likewise. * xlat/btrfs_dev_stats_flags.in: Likewise. * xlat/btrfs_dev_stats_values.in: Likewise. * xlat/btrfs_features_compat.in: Likewise. * xlat/btrfs_features_compat_ro.in: Likewise. * xlat/btrfs_features_incompat.in: Likewise. * xlat/btrfs_key_types.in: Likewise. * xlat/btrfs_qgroup_ctl_cmds.in: Likewise. * xlat/btrfs_qgroup_inherit_flags.in: Likewise. * xlat/btrfs_qgroup_limit_flags.in: Likewise. * xlat/btrfs_qgroup_status_flags.in: Likewise. * xlat/btrfs_scrub_flags.in: Likewise. * xlat/btrfs_send_flags.in: Likewise. * xlat/btrfs_snap_flags_v2.in: Likewise. * xlat/btrfs_space_info_flags.in: Likewise. * xlat/btrfs_tree_objectids.in: Likewise.
This commit is contained in:
parent
c4d4d3c3a6
commit
8cc6962216
@ -81,6 +81,7 @@ strace_SOURCES = \
|
||||
bjm.c \
|
||||
block.c \
|
||||
bpf.c \
|
||||
btrfs.c \
|
||||
cacheflush.c \
|
||||
capability.c \
|
||||
caps0.h \
|
||||
@ -110,6 +111,7 @@ strace_SOURCES = \
|
||||
fetch_struct_statfs.c \
|
||||
file.c \
|
||||
file_handle.c \
|
||||
file_ioctl.c \
|
||||
flock.c \
|
||||
flock.h \
|
||||
futex.c \
|
||||
|
12
configure.ac
12
configure.ac
@ -453,6 +453,18 @@ AC_CHECK_TYPES([struct statfs64], [
|
||||
],, [#include <linux/types.h>
|
||||
#include <asm/statfs.h>])
|
||||
|
||||
AC_CHECK_HEADERS([linux/btrfs.h], [
|
||||
AC_CHECK_MEMBERS(m4_normalize([
|
||||
struct btrfs_ioctl_feature_flags.compat_flags,
|
||||
struct btrfs_ioctl_fs_info_args.nodesize,
|
||||
struct btrfs_ioctl_defrag_range_args.start
|
||||
struct btrfs_ioctl_search_args_v2.buf_size
|
||||
]),,, [ #include <stdio.h>
|
||||
#include <linux/btrfs.h>])
|
||||
AC_CHECK_DECLS(m4_normalize([BTRFS_COMPRESS_NONE, BTRFS_COMPRESS_ZLIB,
|
||||
BTRFS_COMPRESS_LZO]),,,[ #include <stdio.h>
|
||||
#include <linux/btrfs.h>])])
|
||||
|
||||
AC_CHECK_DECLS([sys_errlist])
|
||||
AC_CHECK_DECLS(m4_normalize([
|
||||
PTRACE_PEEKUSER,
|
||||
|
2
defs.h
2
defs.h
@ -660,7 +660,9 @@ extern void print_struct_statfs(struct tcb *tcp, long);
|
||||
extern void print_struct_statfs64(struct tcb *tcp, long, unsigned long);
|
||||
|
||||
extern int block_ioctl(struct tcb *, const unsigned int, long);
|
||||
extern int btrfs_ioctl(struct tcb *, const unsigned int, long);
|
||||
extern int evdev_ioctl(struct tcb *, const unsigned int, long);
|
||||
extern int file_ioctl(struct tcb *, const unsigned int, long);
|
||||
extern int loop_ioctl(struct tcb *, const unsigned int, long);
|
||||
extern int mtd_ioctl(struct tcb *, const unsigned int, long);
|
||||
extern int ptp_ioctl(struct tcb *, const unsigned int, long);
|
||||
|
162
file_ioctl.c
Normal file
162
file_ioctl.c
Normal file
@ -0,0 +1,162 @@
|
||||
/*
|
||||
* Copyright (c) 2016 Jeff Mahoney <jeffm@suse.com>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "defs.h"
|
||||
#include <sys/ioctl.h>
|
||||
#include <linux/fs.h>
|
||||
#ifndef FICLONE
|
||||
#define FICLONE _IOW(0x94, 9, int)
|
||||
#endif
|
||||
|
||||
#ifndef FICLONERANGE
|
||||
#define FICLONERANGE _IOW(0x94, 13, struct file_clone_range)
|
||||
struct file_clone_range {
|
||||
int64_t src_fd;
|
||||
uint64_t src_offset;
|
||||
uint64_t src_length;
|
||||
uint64_t dest_offset;
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifndef FIDEDUPERANGE
|
||||
#define FIDEDUPERANGE _IOWR(0x94, 54, struct file_dedupe_range)
|
||||
struct file_dedupe_range_info {
|
||||
int64_t dest_fd; /* in - destination file */
|
||||
uint64_t dest_offset; /* in - start of extent in destination */
|
||||
uint64_t bytes_deduped; /* out - total # of bytes we were able
|
||||
* to dedupe from this file. */
|
||||
/* status of this dedupe operation:
|
||||
* < 0 for error
|
||||
* == FILE_DEDUPE_RANGE_SAME if dedupe succeeds
|
||||
* == FILE_DEDUPE_RANGE_DIFFERS if data differs
|
||||
*/
|
||||
int32_t status; /* out - see above description */
|
||||
uint32_t reserved; /* must be zero */
|
||||
};
|
||||
|
||||
struct file_dedupe_range {
|
||||
uint64_t src_offset; /* in - start of extent in source */
|
||||
uint64_t src_length; /* in - length of extent */
|
||||
uint16_t dest_count; /* in - total elements in info array */
|
||||
uint16_t reserved1; /* must be zero */
|
||||
uint32_t reserved2; /* must be zero */
|
||||
struct file_dedupe_range_info info[0];
|
||||
};
|
||||
#endif
|
||||
|
||||
int
|
||||
file_ioctl(struct tcb *tcp, const unsigned int code, const long arg)
|
||||
{
|
||||
switch (code) {
|
||||
/* take a signed int */
|
||||
case FICLONE: /* W */
|
||||
tprintf(", %d", (int)arg);
|
||||
break;
|
||||
|
||||
case FICLONERANGE: { /* W */
|
||||
struct file_clone_range args;
|
||||
|
||||
tprints(", ");
|
||||
|
||||
if (umove_or_printaddr(tcp, arg, &args))
|
||||
break;
|
||||
|
||||
tprintf("{src_fd=%" PRIi64 ", "
|
||||
"src_offset=%" PRIu64 ", "
|
||||
"src_length=%" PRIu64 ", "
|
||||
"dest_offset=%" PRIu64 "}",
|
||||
(int64_t)args.src_fd, (uint64_t)args.src_offset,
|
||||
(uint64_t)args.src_length, (uint64_t)args.dest_offset);
|
||||
break;
|
||||
}
|
||||
|
||||
case FIDEDUPERANGE: { /* RW */
|
||||
struct file_dedupe_range args;
|
||||
uint64_t info_addr;
|
||||
uint16_t i;
|
||||
|
||||
if (entering(tcp))
|
||||
tprints(", ");
|
||||
else if (syserror(tcp))
|
||||
break;
|
||||
else
|
||||
tprints(" => ");
|
||||
|
||||
if (umove_or_printaddr(tcp, arg, &args))
|
||||
break;
|
||||
|
||||
if (entering(tcp)) {
|
||||
tprintf("{src_offset=%" PRIu64 ", "
|
||||
"src_length=%" PRIu64 ", "
|
||||
"dest_count=%hu, info=",
|
||||
(uint64_t)args.src_offset,
|
||||
(uint64_t)args.src_length,
|
||||
(uint16_t)args.dest_count);
|
||||
} else
|
||||
tprints("{info=");
|
||||
|
||||
if (abbrev(tcp)) {
|
||||
tprints("...}");
|
||||
} else {
|
||||
tprints("[");
|
||||
info_addr = arg + offsetof(typeof(args), info);
|
||||
for (i = 0; i < args.dest_count; i++) {
|
||||
struct file_dedupe_range_info info;
|
||||
uint64_t addr = info_addr + sizeof(info) * i;
|
||||
if (i)
|
||||
tprints(", ");
|
||||
|
||||
if (umoven(tcp, addr, sizeof(info), &info)) {
|
||||
tprints("...");
|
||||
break;
|
||||
}
|
||||
|
||||
if (entering(tcp))
|
||||
tprintf("{dest_fd=%" PRIi64 ", "
|
||||
"dest_offset=%" PRIu64 "}",
|
||||
(int64_t)info.dest_fd,
|
||||
(uint64_t)info.dest_offset);
|
||||
else {
|
||||
tprintf("{bytes_deduped=%" PRIu64 ", "
|
||||
"status=%d}",
|
||||
(uint64_t)info.bytes_deduped,
|
||||
info.status);
|
||||
}
|
||||
}
|
||||
tprints("]}");
|
||||
}
|
||||
if (entering(tcp))
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
return RVAL_DECODED;
|
||||
};
|
||||
|
||||
return RVAL_DECODED | 1;
|
||||
}
|
4
ioctl.c
4
ioctl.c
@ -266,6 +266,10 @@ ioctl_decode(struct tcb *tcp)
|
||||
#ifdef HAVE_LINUX_USERFAULTFD_H
|
||||
case 0xaa:
|
||||
return uffdio_ioctl(tcp, code, arg);
|
||||
#endif
|
||||
#ifdef HAVE_LINUX_BTRFS_H
|
||||
case 0x94:
|
||||
return btrfs_ioctl(tcp, code, arg);
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
|
12
xlat/btrfs_balance_args.in
Normal file
12
xlat/btrfs_balance_args.in
Normal file
@ -0,0 +1,12 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_BALANCE_ARGS_PROFILES (1ULL << 0)
|
||||
BTRFS_BALANCE_ARGS_USAGE (1ULL << 1)
|
||||
BTRFS_BALANCE_ARGS_DEVID (1ULL << 2)
|
||||
BTRFS_BALANCE_ARGS_DRANGE (1ULL << 3)
|
||||
BTRFS_BALANCE_ARGS_VRANGE (1ULL << 4)
|
||||
BTRFS_BALANCE_ARGS_LIMIT (1ULL << 5)
|
||||
BTRFS_BALANCE_ARGS_LIMIT_RANGE (1ULL << 6)
|
||||
BTRFS_BALANCE_ARGS_STRIPES_RANGE (1ULL << 7)
|
||||
BTRFS_BALANCE_ARGS_CONVERT (1ULL << 8)
|
||||
BTRFS_BALANCE_ARGS_SOFT (1ULL << 9)
|
||||
BTRFS_BALANCE_ARGS_USAGE_RANGE (1ULL << 10)
|
2
xlat/btrfs_balance_ctl_cmds.in
Normal file
2
xlat/btrfs_balance_ctl_cmds.in
Normal file
@ -0,0 +1,2 @@
|
||||
BTRFS_BALANCE_CTL_PAUSE 1
|
||||
BTRFS_BALANCE_CTL_CANCEL 2
|
6
xlat/btrfs_balance_flags.in
Normal file
6
xlat/btrfs_balance_flags.in
Normal file
@ -0,0 +1,6 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_BALANCE_DATA (1ULL << 0)
|
||||
BTRFS_BALANCE_SYSTEM (1ULL << 1)
|
||||
BTRFS_BALANCE_METADATA (1ULL << 2)
|
||||
BTRFS_BALANCE_FORCE (1ULL << 3)
|
||||
BTRFS_BALANCE_RESUME (1ULL << 4)
|
3
xlat/btrfs_balance_state.in
Normal file
3
xlat/btrfs_balance_state.in
Normal file
@ -0,0 +1,3 @@
|
||||
BTRFS_BALANCE_STATE_RUNNING (1ULL << 0)
|
||||
BTRFS_BALANCE_STATE_PAUSE_REQ (1ULL << 1)
|
||||
BTRFS_BALANCE_STATE_CANCEL_REQ (1ULL << 2)
|
3
xlat/btrfs_compress_types.in
Normal file
3
xlat/btrfs_compress_types.in
Normal file
@ -0,0 +1,3 @@
|
||||
BTRFS_COMPRESS_NONE 0
|
||||
BTRFS_COMPRESS_ZLIB 1
|
||||
BTRFS_COMPRESS_LZO 2
|
3
xlat/btrfs_defrag_flags.in
Normal file
3
xlat/btrfs_defrag_flags.in
Normal file
@ -0,0 +1,3 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_DEFRAG_RANGE_COMPRESS
|
||||
BTRFS_DEFRAG_RANGE_START_IO
|
4
xlat/btrfs_dev_replace_cmds.in
Normal file
4
xlat/btrfs_dev_replace_cmds.in
Normal file
@ -0,0 +1,4 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_IOCTL_DEV_REPLACE_CMD_START
|
||||
BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS
|
||||
BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL
|
5
xlat/btrfs_dev_replace_results.in
Normal file
5
xlat/btrfs_dev_replace_results.in
Normal file
@ -0,0 +1,5 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR
|
||||
BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED
|
||||
BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED
|
||||
BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS
|
6
xlat/btrfs_dev_replace_state.in
Normal file
6
xlat/btrfs_dev_replace_state.in
Normal file
@ -0,0 +1,6 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED
|
||||
BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED
|
||||
BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED
|
||||
BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED
|
||||
BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED
|
2
xlat/btrfs_dev_stats_flags.in
Normal file
2
xlat/btrfs_dev_stats_flags.in
Normal file
@ -0,0 +1,2 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_DEV_STATS_RESET
|
12
xlat/btrfs_dev_stats_values.in
Normal file
12
xlat/btrfs_dev_stats_values.in
Normal file
@ -0,0 +1,12 @@
|
||||
#val_type uint64_t
|
||||
#define HAVE_DECL_BTRFS_DEV_STAT_WRITE_ERRS 1
|
||||
#define HAVE_DECL_BTRFS_DEV_STAT_READ_ERRS 1
|
||||
#define HAVE_DECL_BTRFS_DEV_STAT_FLUSH_ERRS 1
|
||||
#define HAVE_DECL_BTRFS_DEV_STAT_CORRUPTION_ERRS 1
|
||||
#define HAVE_DECL_BTRFS_DEV_STAT_GENERATION_ERRS 1
|
||||
|
||||
BTRFS_DEV_STAT_WRITE_ERRS
|
||||
BTRFS_DEV_STAT_READ_ERRS
|
||||
BTRFS_DEV_STAT_FLUSH_ERRS
|
||||
BTRFS_DEV_STAT_CORRUPTION_ERRS
|
||||
BTRFS_DEV_STAT_GENERATION_ERRS
|
0
xlat/btrfs_features_compat.in
Normal file
0
xlat/btrfs_features_compat.in
Normal file
2
xlat/btrfs_features_compat_ro.in
Normal file
2
xlat/btrfs_features_compat_ro.in
Normal file
@ -0,0 +1,2 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE (1ULL << 0)
|
11
xlat/btrfs_features_incompat.in
Normal file
11
xlat/btrfs_features_incompat.in
Normal file
@ -0,0 +1,11 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0)
|
||||
BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
|
||||
BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2)
|
||||
BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO (1ULL << 3)
|
||||
BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2 (1ULL << 4)
|
||||
BTRFS_FEATURE_INCOMPAT_BIG_METADATA (1ULL << 5)
|
||||
BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF (1ULL << 6)
|
||||
BTRFS_FEATURE_INCOMPAT_RAID56 (1ULL << 7)
|
||||
BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA (1ULL << 8)
|
||||
BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9)
|
42
xlat/btrfs_key_types.in
Normal file
42
xlat/btrfs_key_types.in
Normal file
@ -0,0 +1,42 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_INODE_ITEM_KEY 1
|
||||
BTRFS_INODE_REF_KEY 12
|
||||
BTRFS_INODE_EXTREF_KEY 13
|
||||
BTRFS_XATTR_ITEM_KEY 24
|
||||
BTRFS_ORPHAN_ITEM_KEY 48
|
||||
BTRFS_DIR_LOG_ITEM_KEY 60
|
||||
BTRFS_DIR_LOG_INDEX_KEY 72
|
||||
BTRFS_DIR_ITEM_KEY 84
|
||||
BTRFS_DIR_INDEX_KEY 96
|
||||
BTRFS_EXTENT_DATA_KEY 108
|
||||
BTRFS_EXTENT_CSUM_KEY 128
|
||||
BTRFS_ROOT_ITEM_KEY 132
|
||||
BTRFS_ROOT_BACKREF_KEY 144
|
||||
BTRFS_ROOT_REF_KEY 156
|
||||
BTRFS_EXTENT_ITEM_KEY 168
|
||||
BTRFS_METADATA_ITEM_KEY 169
|
||||
BTRFS_TREE_BLOCK_REF_KEY 176
|
||||
BTRFS_EXTENT_DATA_REF_KEY 178
|
||||
BTRFS_EXTENT_REF_V0_KEY 180
|
||||
BTRFS_SHARED_BLOCK_REF_KEY 182
|
||||
BTRFS_SHARED_DATA_REF_KEY 184
|
||||
BTRFS_BLOCK_GROUP_ITEM_KEY 192
|
||||
BTRFS_FREE_SPACE_INFO_KEY 198
|
||||
BTRFS_FREE_SPACE_EXTENT_KEY 199
|
||||
BTRFS_FREE_SPACE_BITMAP_KEY 200
|
||||
BTRFS_DEV_EXTENT_KEY 204
|
||||
BTRFS_DEV_ITEM_KEY 216
|
||||
BTRFS_CHUNK_ITEM_KEY 228
|
||||
BTRFS_QGROUP_STATUS_KEY 240
|
||||
BTRFS_QGROUP_INFO_KEY 242
|
||||
BTRFS_QGROUP_LIMIT_KEY 244
|
||||
BTRFS_QGROUP_RELATION_KEY 246
|
||||
BTRFS_BALANCE_ITEM_KEY 248
|
||||
BTRFS_TEMPORARY_ITEM_KEY 248
|
||||
BTRFS_DEV_STATS_KEY 249
|
||||
BTRFS_PERSISTENT_ITEM_KEY 249
|
||||
BTRFS_DEV_REPLACE_KEY 250
|
||||
BTRFS_UUID_KEY_SUBVOL 251
|
||||
BTRFS_UUID_KEY_RECEIVED_SUBVOL 252
|
||||
BTRFS_STRING_ITEM_KEY 253
|
||||
UINT32_MAX -1U
|
4
xlat/btrfs_qgroup_ctl_cmds.in
Normal file
4
xlat/btrfs_qgroup_ctl_cmds.in
Normal file
@ -0,0 +1,4 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_QUOTA_CTL_ENABLE
|
||||
BTRFS_QUOTA_CTL_DISABLE
|
||||
BTRFS_QUOTA_CTL_RESCAN__NOTUSED
|
2
xlat/btrfs_qgroup_inherit_flags.in
Normal file
2
xlat/btrfs_qgroup_inherit_flags.in
Normal file
@ -0,0 +1,2 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_QGROUP_INHERIT_SET_LIMITS
|
7
xlat/btrfs_qgroup_limit_flags.in
Normal file
7
xlat/btrfs_qgroup_limit_flags.in
Normal file
@ -0,0 +1,7 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_QGROUP_LIMIT_MAX_RFER (1ULL << 0)
|
||||
BTRFS_QGROUP_LIMIT_MAX_EXCL (1ULL << 1)
|
||||
BTRFS_QGROUP_LIMIT_RSV_RFER (1ULL << 2)
|
||||
BTRFS_QGROUP_LIMIT_RSV_EXCL (1ULL << 3)
|
||||
BTRFS_QGROUP_LIMIT_RFER_CMPR (1ULL << 4)
|
||||
BTRFS_QGROUP_LIMIT_EXCL_CMPR (1ULL << 5)
|
3
xlat/btrfs_qgroup_status_flags.in
Normal file
3
xlat/btrfs_qgroup_status_flags.in
Normal file
@ -0,0 +1,3 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_QGROUP_STATUS_FLAG_ON (1ULL << 0)
|
||||
BTRFS_QGROUP_STATUS_FLAG_RESCAN (1ULL << 1)
|
2
xlat/btrfs_scrub_flags.in
Normal file
2
xlat/btrfs_scrub_flags.in
Normal file
@ -0,0 +1,2 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_SCRUB_READONLY 1
|
3
xlat/btrfs_send_flags.in
Normal file
3
xlat/btrfs_send_flags.in
Normal file
@ -0,0 +1,3 @@
|
||||
BTRFS_SEND_FLAG_NO_FILE_DATA 0x1
|
||||
BTRFS_SEND_FLAG_OMIT_STREAM_HEADER 0x2
|
||||
BTRFS_SEND_FLAG_OMIT_END_CMD 0x4
|
4
xlat/btrfs_snap_flags_v2.in
Normal file
4
xlat/btrfs_snap_flags_v2.in
Normal file
@ -0,0 +1,4 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_SUBVOL_CREATE_ASYNC
|
||||
BTRFS_SUBVOL_RDONLY
|
||||
BTRFS_SUBVOL_QGROUP_INHERIT
|
12
xlat/btrfs_space_info_flags.in
Normal file
12
xlat/btrfs_space_info_flags.in
Normal file
@ -0,0 +1,12 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_BLOCK_GROUP_DATA (1ULL << 0)
|
||||
BTRFS_BLOCK_GROUP_SYSTEM (1ULL << 1)
|
||||
BTRFS_BLOCK_GROUP_METADATA (1ULL << 2)
|
||||
BTRFS_BLOCK_GROUP_RAID0 (1ULL << 3)
|
||||
BTRFS_BLOCK_GROUP_RAID1 (1ULL << 4)
|
||||
BTRFS_BLOCK_GROUP_DUP (1ULL << 5)
|
||||
BTRFS_BLOCK_GROUP_RAID10 (1ULL << 6)
|
||||
BTRFS_BLOCK_GROUP_RAID5 (1ULL << 7)
|
||||
BTRFS_BLOCK_GROUP_RAID6 (1ULL << 8)
|
||||
BTRFS_AVAIL_ALLOC_BIT_SINGLE (1ULL << 48)
|
||||
BTRFS_SPACE_INFO_GLOBAL_RSV (1ULL << 49)
|
14
xlat/btrfs_tree_objectids.in
Normal file
14
xlat/btrfs_tree_objectids.in
Normal file
@ -0,0 +1,14 @@
|
||||
#val_type uint64_t
|
||||
BTRFS_ROOT_TREE_OBJECTID 1ULL
|
||||
BTRFS_EXTENT_TREE_OBJECTID 2ULL
|
||||
BTRFS_CHUNK_TREE_OBJECTID 3ULL
|
||||
BTRFS_DEV_TREE_OBJECTID 4ULL
|
||||
BTRFS_FS_TREE_OBJECTID 5ULL
|
||||
BTRFS_ROOT_TREE_DIR_OBJECTID 6ULL
|
||||
BTRFS_CSUM_TREE_OBJECTID 7ULL
|
||||
BTRFS_QUOTA_TREE_OBJECTID 8ULL
|
||||
BTRFS_UUID_TREE_OBJECTID 9ULL
|
||||
BTRFS_FREE_SPACE_TREE_OBJECTID 10ULL
|
||||
BTRFS_FIRST_FREE_OBJECTID 256ULL
|
||||
BTRFS_LAST_FREE_OBJECTID -256ULL
|
||||
UINT64_MAX -1ULL
|
Loading…
x
Reference in New Issue
Block a user