blob: 9de9eb726a781df1f2be938b9a7ebbc691ea108c [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0
#ifndef _XFS_REPAIR_PROGRESS_RPT_H_
#define _XFS_REPAIR_PROGRESS_RPT_H_
#define PROG_RPT_DEFAULT (15*60) /* default 15 minute report interval */
#define PHASE_START 0
#define PHASE_END 1
#define PROG_FMT_SCAN_AG 0 /* Phase 2 */
#define PROG_FMT_AGI_UNLINKED 1 /* Phase 3 */
#define PROG_FMT_UNCERTAIN 2
#define PROG_FMT_PROCESS_INO 3
#define PROG_FMT_NEW_INODES 4
#define PROG_FMT_DUP_EXTENT 5 /* Phase 4 */
#define PROG_FMT_INIT_RTEXT 6
#define PROG_FMT_RESET_RTBM 7
#define PROG_FMT_DUP_BLOCKS 8
#define PROG_FMT_REBUILD_AG 9 /* Phase 5 */
#define PROG_FMT_TRAVERSAL 10 /* Phase 6 */
#define PROG_FMT_TRAVERSSUB 11
#define PROG_FMT_DISCONINODE 12
#define PROGRESS_FMT_CORR_LINK 13 /* Phase 7 */
#define PROGRESS_FMT_VRFY_LINK 14
#define DURATION_BUF_SIZE 512
extern void init_progress_rpt(void);
extern void stop_progress_rpt(void);
extern void summary_report(void);
extern int set_progress_msg(int report, uint64_t total);
extern uint64_t print_final_rpt(void);
extern char *timestamp(int end, int phase, char *buf);
extern char *duration(int val, char *buf);
extern int do_parallel;
#define PROG_RPT_INC(a,b) if (ag_stride && prog_rpt_done) (a) += (b)
#endif /* _XFS_REPAIR_PROGRESS_RPT_H_ */