/* Generated by ./xlat/gen.sh from ./xlat/btrfs_tree_objectids.in; do not edit. */
#if !(defined(BTRFS_ROOT_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_ROOT_TREE_OBJECTID) && HAVE_DECL_BTRFS_ROOT_TREE_OBJECTID))
# define BTRFS_ROOT_TREE_OBJECTID 1ULL
#endif
#if !(defined(BTRFS_EXTENT_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_EXTENT_TREE_OBJECTID) && HAVE_DECL_BTRFS_EXTENT_TREE_OBJECTID))
# define BTRFS_EXTENT_TREE_OBJECTID 2ULL
#endif
#if !(defined(BTRFS_CHUNK_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_CHUNK_TREE_OBJECTID) && HAVE_DECL_BTRFS_CHUNK_TREE_OBJECTID))
# define BTRFS_CHUNK_TREE_OBJECTID 3ULL
#endif
#if !(defined(BTRFS_DEV_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_DEV_TREE_OBJECTID) && HAVE_DECL_BTRFS_DEV_TREE_OBJECTID))
# define BTRFS_DEV_TREE_OBJECTID 4ULL
#endif
#if !(defined(BTRFS_FS_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_FS_TREE_OBJECTID) && HAVE_DECL_BTRFS_FS_TREE_OBJECTID))
# define BTRFS_FS_TREE_OBJECTID 5ULL
#endif
#if !(defined(BTRFS_ROOT_TREE_DIR_OBJECTID) || (defined(HAVE_DECL_BTRFS_ROOT_TREE_DIR_OBJECTID) && HAVE_DECL_BTRFS_ROOT_TREE_DIR_OBJECTID))
# define BTRFS_ROOT_TREE_DIR_OBJECTID 6ULL
#endif
#if !(defined(BTRFS_CSUM_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_CSUM_TREE_OBJECTID) && HAVE_DECL_BTRFS_CSUM_TREE_OBJECTID))
# define BTRFS_CSUM_TREE_OBJECTID 7ULL
#endif
#if !(defined(BTRFS_QUOTA_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_QUOTA_TREE_OBJECTID) && HAVE_DECL_BTRFS_QUOTA_TREE_OBJECTID))
# define BTRFS_QUOTA_TREE_OBJECTID 8ULL
#endif
#if !(defined(BTRFS_UUID_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_UUID_TREE_OBJECTID) && HAVE_DECL_BTRFS_UUID_TREE_OBJECTID))
# define BTRFS_UUID_TREE_OBJECTID 9ULL
#endif
#if !(defined(BTRFS_FREE_SPACE_TREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_FREE_SPACE_TREE_OBJECTID) && HAVE_DECL_BTRFS_FREE_SPACE_TREE_OBJECTID))
# define BTRFS_FREE_SPACE_TREE_OBJECTID 10ULL
#endif
#if !(defined(BTRFS_FIRST_FREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_FIRST_FREE_OBJECTID) && HAVE_DECL_BTRFS_FIRST_FREE_OBJECTID))
# define BTRFS_FIRST_FREE_OBJECTID 256ULL
#endif
#if !(defined(BTRFS_LAST_FREE_OBJECTID) || (defined(HAVE_DECL_BTRFS_LAST_FREE_OBJECTID) && HAVE_DECL_BTRFS_LAST_FREE_OBJECTID))
# define BTRFS_LAST_FREE_OBJECTID -256ULL
#endif
#if !(defined(UINT64_MAX) || (defined(HAVE_DECL_UINT64_MAX) && HAVE_DECL_UINT64_MAX))
# define UINT64_MAX -1ULL
#endif

#ifdef IN_MPERS

extern const struct xlat btrfs_tree_objectids[];

#else

# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
# endif
const struct xlat btrfs_tree_objectids[] = {
 XLAT_TYPE(uint64_t, BTRFS_ROOT_TREE_OBJECTID),
 XLAT_TYPE(uint64_t, BTRFS_EXTENT_TREE_OBJECTID),
 XLAT_TYPE(uint64_t, BTRFS_CHUNK_TREE_OBJECTID),
 XLAT_TYPE(uint64_t, BTRFS_DEV_TREE_OBJECTID),
 XLAT_TYPE(uint64_t, BTRFS_FS_TREE_OBJECTID),
 XLAT_TYPE(uint64_t, BTRFS_ROOT_TREE_DIR_OBJECTID),
 XLAT_TYPE(uint64_t, BTRFS_CSUM_TREE_OBJECTID),
 XLAT_TYPE(uint64_t, BTRFS_QUOTA_TREE_OBJECTID),
 XLAT_TYPE(uint64_t, BTRFS_UUID_TREE_OBJECTID),
 XLAT_TYPE(uint64_t, BTRFS_FREE_SPACE_TREE_OBJECTID),
 XLAT_TYPE(uint64_t, BTRFS_FIRST_FREE_OBJECTID),
 XLAT_TYPE(uint64_t, BTRFS_LAST_FREE_OBJECTID),
 XLAT_TYPE(uint64_t, UINT64_MAX),
 XLAT_END
};

#endif /* !IN_MPERS */
