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