Path: blob/main/sys/contrib/openzfs/include/libzdb.h
48255 views
#define ZDB_COMPRESS_NAME(idx) ((idx) < ZIO_COMPRESS_FUNCTIONS ? \1zio_compress_table[(idx)].ci_name : "UNKNOWN")2#define ZDB_CHECKSUM_NAME(idx) ((idx) < ZIO_CHECKSUM_FUNCTIONS ? \3zio_checksum_table[(idx)].ci_name : "UNKNOWN")4#define ZDB_OT_TYPE(idx) ((idx) < DMU_OT_NUMTYPES ? (idx) : \5(idx) == DMU_OTN_ZAP_DATA || (idx) == DMU_OTN_ZAP_METADATA ? \6DMU_OT_ZAP_OTHER : \7(idx) == DMU_OTN_UINT64_DATA || (idx) == DMU_OTN_UINT64_METADATA ? \8DMU_OT_UINT64_OTHER : DMU_OT_NUMTYPES)910/* Some platforms require part of inode IDs to be remapped */11#ifdef __APPLE__12#define ZDB_MAP_OBJECT_ID(obj) INO_XNUTOZFS(obj, 2)13#else14#define ZDB_MAP_OBJECT_ID(obj) (obj)15#endif1617#define ZOR_FLAG_PLAIN_FILE 0x000118#define ZOR_FLAG_DIRECTORY 0x000219#define ZOR_FLAG_SPACE_MAP 0x000420#define ZOR_FLAG_ZAP 0x000821#define ZOR_FLAG_ALL_TYPES -122#define ZOR_SUPPORTED_FLAGS (ZOR_FLAG_PLAIN_FILE | \23ZOR_FLAG_DIRECTORY | \24ZOR_FLAG_SPACE_MAP | \25ZOR_FLAG_ZAP)2627#define ZDB_FLAG_CHECKSUM 0x000128#define ZDB_FLAG_DECOMPRESS 0x000229#define ZDB_FLAG_BSWAP 0x000430#define ZDB_FLAG_GBH 0x000831#define ZDB_FLAG_INDIRECT 0x001032#define ZDB_FLAG_RAW 0x002033#define ZDB_FLAG_PRINT_BLKPTR 0x004034#define ZDB_FLAG_VERBOSE 0x0080353637typedef struct zdb_ctx {38} zdb_ctx_t;3940typedef struct zopt_object_range {41uint64_t zor_obj_start;42uint64_t zor_obj_end;43uint64_t zor_flags;44} zopt_object_range_t;454647typedef struct sublivelist_verify {48/* FREE's that haven't yet matched to an ALLOC, in one sub-livelist */49zfs_btree_t sv_pair;5051/* ALLOC's without a matching FREE, accumulates across sub-livelists */52zfs_btree_t sv_leftover;53} sublivelist_verify_t;5455typedef struct sublivelist_verify_block {56dva_t svb_dva;5758/*59* We need this to check if the block marked as allocated60* in the livelist was freed (and potentially reallocated)61* in the metaslab spacemaps at a later TXG.62*/63uint64_t svb_allocated_txg;64} sublivelist_verify_block_t;6566const char *zdb_ot_name(dmu_object_type_t type);67int livelist_compare(const void *larg, const void *rarg);686970