#ifndef REFTABLE_FSCK_H #define REFTABLE_FSCK_H #include "reftable-stack.h" enum reftable_fsck_error { /* Invalid table name */ REFTABLE_FSCK_ERROR_TABLE_NAME = 0, /* Used for bounds checking, must be last */ REFTABLE_FSCK_MAX_VALUE, }; /* Represents an individual error encountered during the FSCK checks. */ struct reftable_fsck_info { enum reftable_fsck_error error; const char *msg; const char *path; }; typedef int reftable_fsck_report_fn(struct reftable_fsck_info *info, void *cb_data); typedef void reftable_fsck_verbose_fn(const char *msg, void *cb_data); /* * Given a reftable stack, perform consistency checks on the stack. * * If an issue is encountered, the issue is reported to the callee via the * provided 'report_fn'. If the issue is non-recoverable the flow will not * continue. If it is recoverable, the flow will continue and further issues * will be reported as identified. * * The 'verbose_fn' will be invoked to provide verbose information about * the progress and state of the consistency checks. */ int reftable_fsck_check(struct reftable_stack *stack, reftable_fsck_report_fn report_fn, reftable_fsck_verbose_fn verbose_fn, void *cb_data); #endif /* REFTABLE_FSCK_H */