1a7ce5b29Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
2a7ce5b29Sopenharmony_ci/*
3a7ce5b29Sopenharmony_ci *  Copyright (C) 2020 Hyunchul Lee <hyc.lee@gmail.com>
4a7ce5b29Sopenharmony_ci */
5a7ce5b29Sopenharmony_ci#ifndef _FSCK_H
6a7ce5b29Sopenharmony_ci#define _FSCK_H
7a7ce5b29Sopenharmony_ci
8a7ce5b29Sopenharmony_ci#include "list.h"
9a7ce5b29Sopenharmony_ci
10a7ce5b29Sopenharmony_cienum fsck_ui_options {
11a7ce5b29Sopenharmony_ci	FSCK_OPTS_REPAIR_ASK	= 0x01,
12a7ce5b29Sopenharmony_ci	FSCK_OPTS_REPAIR_YES	= 0x02,
13a7ce5b29Sopenharmony_ci	FSCK_OPTS_REPAIR_NO	= 0x04,
14a7ce5b29Sopenharmony_ci	FSCK_OPTS_REPAIR_AUTO	= 0x08,
15a7ce5b29Sopenharmony_ci	FSCK_OPTS_REPAIR_WRITE	= 0x0b,
16a7ce5b29Sopenharmony_ci	FSCK_OPTS_REPAIR_ALL	= 0x0f,
17a7ce5b29Sopenharmony_ci	FSCK_OPTS_IGNORE_BAD_FS_NAME	= 0x10,
18a7ce5b29Sopenharmony_ci	FSCK_OPTS_RESCUE_CLUS	= 0x20,
19a7ce5b29Sopenharmony_ci};
20a7ce5b29Sopenharmony_ci
21a7ce5b29Sopenharmony_cistruct exfat;
22a7ce5b29Sopenharmony_cistruct exfat_inode;
23a7ce5b29Sopenharmony_ci
24a7ce5b29Sopenharmony_cistruct exfat_fsck {
25a7ce5b29Sopenharmony_ci	struct exfat		*exfat;
26a7ce5b29Sopenharmony_ci	struct exfat_de_iter	de_iter;
27a7ce5b29Sopenharmony_ci	struct buffer_desc	*buffer_desc;	/* cluster * 2 */
28a7ce5b29Sopenharmony_ci	enum fsck_ui_options	options;
29a7ce5b29Sopenharmony_ci	bool			dirty:1;
30a7ce5b29Sopenharmony_ci	bool			dirty_fat:1;
31a7ce5b29Sopenharmony_ci};
32a7ce5b29Sopenharmony_ci
33a7ce5b29Sopenharmony_cioff_t exfat_c2o(struct exfat *exfat, unsigned int clus);
34a7ce5b29Sopenharmony_ci
35a7ce5b29Sopenharmony_ci#endif
36