diff options
Diffstat (limited to 'print-tree.c')
-rw-r--r-- | print-tree.c | 145 |
1 files changed, 73 insertions, 72 deletions
diff --git a/print-tree.c b/print-tree.c index 81ab81fe..f97482f3 100644 --- a/print-tree.c +++ b/print-tree.c @@ -577,227 +577,228 @@ static void print_free_space_header(struct extent_buffer *leaf, int slot) (unsigned long long)btrfs_free_space_bitmaps(leaf, header)); } -static void print_key_type(u64 objectid, u8 type) +void print_key_type(FILE *stream, u64 objectid, u8 type) { if (type == 0 && objectid == BTRFS_FREE_SPACE_OBJECTID) { - printf("UNTYPED"); + fprintf(stream, "UNTYPED"); return; } switch (type) { case BTRFS_INODE_ITEM_KEY: - printf("INODE_ITEM"); + fprintf(stream, "INODE_ITEM"); break; case BTRFS_INODE_REF_KEY: - printf("INODE_REF"); + fprintf(stream, "INODE_REF"); break; case BTRFS_INODE_EXTREF_KEY: - printf("INODE_EXTREF"); + fprintf(stream, "INODE_EXTREF"); break; case BTRFS_DIR_ITEM_KEY: - printf("DIR_ITEM"); + fprintf(stream, "DIR_ITEM"); break; case BTRFS_DIR_INDEX_KEY: - printf("DIR_INDEX"); + fprintf(stream, "DIR_INDEX"); break; case BTRFS_DIR_LOG_ITEM_KEY: - printf("DIR_LOG_ITEM"); + fprintf(stream, "DIR_LOG_ITEM"); break; case BTRFS_DIR_LOG_INDEX_KEY: - printf("DIR_LOG_INDEX"); + fprintf(stream, "DIR_LOG_INDEX"); break; case BTRFS_XATTR_ITEM_KEY: - printf("XATTR_ITEM"); + fprintf(stream, "XATTR_ITEM"); break; case BTRFS_ORPHAN_ITEM_KEY: - printf("ORPHAN_ITEM"); + fprintf(stream, "ORPHAN_ITEM"); break; case BTRFS_ROOT_ITEM_KEY: - printf("ROOT_ITEM"); + fprintf(stream, "ROOT_ITEM"); break; case BTRFS_ROOT_REF_KEY: - printf("ROOT_REF"); + fprintf(stream, "ROOT_REF"); break; case BTRFS_ROOT_BACKREF_KEY: - printf("ROOT_BACKREF"); + fprintf(stream, "ROOT_BACKREF"); break; case BTRFS_EXTENT_ITEM_KEY: - printf("EXTENT_ITEM"); + fprintf(stream, "EXTENT_ITEM"); break; case BTRFS_METADATA_ITEM_KEY: - printf("METADATA_ITEM"); + fprintf(stream, "METADATA_ITEM"); break; case BTRFS_TREE_BLOCK_REF_KEY: - printf("TREE_BLOCK_REF"); + fprintf(stream, "TREE_BLOCK_REF"); break; case BTRFS_SHARED_BLOCK_REF_KEY: - printf("SHARED_BLOCK_REF"); + fprintf(stream, "SHARED_BLOCK_REF"); break; case BTRFS_EXTENT_DATA_REF_KEY: - printf("EXTENT_DATA_REF"); + fprintf(stream, "EXTENT_DATA_REF"); break; case BTRFS_SHARED_DATA_REF_KEY: - printf("SHARED_DATA_REF"); + fprintf(stream, "SHARED_DATA_REF"); break; case BTRFS_EXTENT_REF_V0_KEY: - printf("EXTENT_REF_V0"); + fprintf(stream, "EXTENT_REF_V0"); break; case BTRFS_CSUM_ITEM_KEY: - printf("CSUM_ITEM"); + fprintf(stream, "CSUM_ITEM"); break; case BTRFS_EXTENT_CSUM_KEY: - printf("EXTENT_CSUM"); + fprintf(stream, "EXTENT_CSUM"); break; case BTRFS_EXTENT_DATA_KEY: - printf("EXTENT_DATA"); + fprintf(stream, "EXTENT_DATA"); break; case BTRFS_BLOCK_GROUP_ITEM_KEY: - printf("BLOCK_GROUP_ITEM"); + fprintf(stream, "BLOCK_GROUP_ITEM"); break; case BTRFS_FREE_SPACE_INFO_KEY: - printf("FREE_SPACE_INFO"); + fprintf(stream, "FREE_SPACE_INFO"); break; case BTRFS_FREE_SPACE_EXTENT_KEY: - printf("FREE_SPACE_EXTENT"); + fprintf(stream, "FREE_SPACE_EXTENT"); break; case BTRFS_FREE_SPACE_BITMAP_KEY: - printf("FREE_SPACE_BITMAP"); + fprintf(stream, "FREE_SPACE_BITMAP"); break; case BTRFS_CHUNK_ITEM_KEY: - printf("CHUNK_ITEM"); + fprintf(stream, "CHUNK_ITEM"); break; case BTRFS_DEV_ITEM_KEY: - printf("DEV_ITEM"); + fprintf(stream, "DEV_ITEM"); break; case BTRFS_DEV_EXTENT_KEY: - printf("DEV_EXTENT"); + fprintf(stream, "DEV_EXTENT"); break; case BTRFS_BALANCE_ITEM_KEY: - printf("BALANCE_ITEM"); + fprintf(stream, "BALANCE_ITEM"); break; case BTRFS_DEV_REPLACE_KEY: - printf("DEV_REPLACE"); + fprintf(stream, "DEV_REPLACE"); break; case BTRFS_STRING_ITEM_KEY: - printf("STRING_ITEM"); + fprintf(stream, "STRING_ITEM"); break; case BTRFS_QGROUP_STATUS_KEY: - printf("QGROUP_STATUS"); + fprintf(stream, "QGROUP_STATUS"); break; case BTRFS_QGROUP_RELATION_KEY: - printf("QGROUP_RELATION"); + fprintf(stream, "QGROUP_RELATION"); break; case BTRFS_QGROUP_INFO_KEY: - printf("QGROUP_INFO"); + fprintf(stream, "QGROUP_INFO"); break; case BTRFS_QGROUP_LIMIT_KEY: - printf("QGROUP_LIMIT"); + fprintf(stream, "QGROUP_LIMIT"); break; case BTRFS_DEV_STATS_KEY: - printf("DEV_STATS"); + fprintf(stream, "DEV_STATS"); break; case BTRFS_UUID_KEY_SUBVOL: - printf("UUID_KEY_SUBVOL"); + fprintf(stream, "UUID_KEY_SUBVOL"); break; case BTRFS_UUID_KEY_RECEIVED_SUBVOL: - printf("UUID_KEY_RECEIVED_SUBVOL"); + fprintf(stream, "UUID_KEY_RECEIVED_SUBVOL"); break; default: - printf("UNKNOWN.%d", type); + fprintf(stream, "UNKNOWN.%d", type); }; } -static void print_objectid(u64 objectid, u8 type) +void print_objectid(FILE *stream, u64 objectid, u8 type) { switch (type) { case BTRFS_DEV_EXTENT_KEY: - printf("%llu", (unsigned long long)objectid); /* device id */ + /* device id */ + fprintf(stream, "%llu", (unsigned long long)objectid); return; case BTRFS_QGROUP_RELATION_KEY: - printf("%llu/%llu", btrfs_qgroup_level(objectid), + fprintf(stream, "%llu/%llu", btrfs_qgroup_level(objectid), btrfs_qgroup_subvid(objectid)); return; case BTRFS_UUID_KEY_SUBVOL: case BTRFS_UUID_KEY_RECEIVED_SUBVOL: - printf("0x%016llx", (unsigned long long)objectid); + fprintf(stream, "0x%016llx", (unsigned long long)objectid); return; } switch (objectid) { case BTRFS_ROOT_TREE_OBJECTID: if (type == BTRFS_DEV_ITEM_KEY) - printf("DEV_ITEMS"); + fprintf(stream, "DEV_ITEMS"); else - printf("ROOT_TREE"); + fprintf(stream, "ROOT_TREE"); break; case BTRFS_EXTENT_TREE_OBJECTID: - printf("EXTENT_TREE"); + fprintf(stream, "EXTENT_TREE"); break; case BTRFS_CHUNK_TREE_OBJECTID: - printf("CHUNK_TREE"); + fprintf(stream, "CHUNK_TREE"); break; case BTRFS_DEV_TREE_OBJECTID: - printf("DEV_TREE"); + fprintf(stream, "DEV_TREE"); break; case BTRFS_FS_TREE_OBJECTID: - printf("FS_TREE"); + fprintf(stream, "FS_TREE"); break; case BTRFS_ROOT_TREE_DIR_OBJECTID: - printf("ROOT_TREE_DIR"); + fprintf(stream, "ROOT_TREE_DIR"); break; case BTRFS_CSUM_TREE_OBJECTID: - printf("CSUM_TREE"); + fprintf(stream, "CSUM_TREE"); break; case BTRFS_BALANCE_OBJECTID: - printf("BALANCE"); + fprintf(stream, "BALANCE"); break; case BTRFS_ORPHAN_OBJECTID: - printf("ORPHAN"); + fprintf(stream, "ORPHAN"); break; case BTRFS_TREE_LOG_OBJECTID: - printf("TREE_LOG"); + fprintf(stream, "TREE_LOG"); break; case BTRFS_TREE_LOG_FIXUP_OBJECTID: - printf("LOG_FIXUP"); + fprintf(stream, "LOG_FIXUP"); break; case BTRFS_TREE_RELOC_OBJECTID: - printf("TREE_RELOC"); + fprintf(stream, "TREE_RELOC"); break; case BTRFS_DATA_RELOC_TREE_OBJECTID: - printf("DATA_RELOC_TREE"); + fprintf(stream, "DATA_RELOC_TREE"); break; case BTRFS_EXTENT_CSUM_OBJECTID: - printf("EXTENT_CSUM"); + fprintf(stream, "EXTENT_CSUM"); break; case BTRFS_FREE_SPACE_OBJECTID: - printf("FREE_SPACE"); + fprintf(stream, "FREE_SPACE"); break; case BTRFS_FREE_INO_OBJECTID: - printf("FREE_INO"); + fprintf(stream, "FREE_INO"); break; case BTRFS_QUOTA_TREE_OBJECTID: - printf("QUOTA_TREE"); + fprintf(stream, "QUOTA_TREE"); break; case BTRFS_UUID_TREE_OBJECTID: - printf("UUID_TREE"); + fprintf(stream, "UUID_TREE"); break; case BTRFS_FREE_SPACE_TREE_OBJECTID: - printf("FREE_SPACE_TREE"); + fprintf(stream, "FREE_SPACE_TREE"); break; case BTRFS_MULTIPLE_OBJECTIDS: - printf("MULTIPLE"); + fprintf(stream, "MULTIPLE"); break; case (u64)-1: - printf("-1"); + fprintf(stream, "-1"); break; case BTRFS_FIRST_CHUNK_TREE_OBJECTID: if (type == BTRFS_CHUNK_ITEM_KEY) { - printf("FIRST_CHUNK_TREE"); + fprintf(stream, "FIRST_CHUNK_TREE"); break; } /* fall-thru */ default: - printf("%llu", (unsigned long long)objectid); + fprintf(stream, "%llu", (unsigned long long)objectid); } } @@ -808,9 +809,9 @@ void btrfs_print_key(struct btrfs_disk_key *disk_key) u64 offset = btrfs_disk_key_offset(disk_key); printf("key ("); - print_objectid(objectid, type); + print_objectid(stdout, objectid, type); printf(" "); - print_key_type(objectid, type); + print_key_type(stdout, objectid, type); switch (type) { case BTRFS_QGROUP_RELATION_KEY: case BTRFS_QGROUP_INFO_KEY: |