blob: 2c1690db1b17ac8956afddc895c08f3a0a8bfd23 [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_ZERO_LOG 0 /* Phase 2 */
#define PROG_FMT_SCAN_AG 1
#define PROG_FMT_AGI_UNLINKED 2 /* Phase 3 */
#define PROG_FMT_UNCERTAIN 3
#define PROG_FMT_PROCESS_INO 4
#define PROG_FMT_NEW_INODES 5
#define PROG_FMT_DUP_EXTENT 6 /* Phase 4 */
#define PROG_FMT_INIT_RTEXT 7
#define PROG_FMT_RESET_RTBM 8
#define PROG_FMT_DUP_BLOCKS 9
#define PROG_FMT_REBUILD_AG 10 /* Phase 5 */
#define PROG_FMT_TRAVERSAL 11 /* Phase 6 */
#define PROG_FMT_TRAVERSSUB 12
#define PROG_FMT_DISCONINODE 13
#define PROGRESS_FMT_CORR_LINK 14 /* Phase 7 */
#define PROGRESS_FMT_VRFY_LINK 15
#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_ */