119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*
219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * fsck.h
319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project */
419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include <time.h>
619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef __STDC__
819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define NOARGS void
919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else
1019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define NOARGS
1119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define const
1219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
1319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
1419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef __GNUC__
1519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define FSCK_ATTR(x) __attribute__(x)
1619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else
1719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define FSCK_ATTR(x)
1819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
1919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
2019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
2119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifndef DEFAULT_FSTYPE
2219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define DEFAULT_FSTYPE	"ext2"
2319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
2419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
2519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define MAX_DEVICES 32
2619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define MAX_ARGS 32
2719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
2819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define EXIT_OK          0
2919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define EXIT_NONDESTRUCT 1
3019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define EXIT_DESTRUCT    2
3119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define EXIT_UNCORRECTED 4
3219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define EXIT_ERROR       8
3319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define EXIT_USAGE       16
3419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define EXIT_LIBRARY     128
3519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
3619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*
3719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * Internal structure for mount tabel entries.
3819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project */
3919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
4019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstruct fs_info {
4119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	char  *device;
4219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	char  *mountpt;
4319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	char  *type;
4419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	char  *opts;
4519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	int   freq;
4619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	int   passno;
4719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	int   flags;
4819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	struct fs_info *next;
4919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
5019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
5119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define FLAG_DONE 1
5219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define FLAG_PROGRESS 2
5319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
5419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*
5519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * Structure to allow exit codes to be stored
5619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project */
5719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstruct fsck_instance {
5819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	int	pid;
5919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	int	flags;
6019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	int	exit_status;
6119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	time_t	start_time;
6219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	char *	prog;
6319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	char *	type;
6419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	char *	device;
6519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	char *	base_device;
6619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project	struct fsck_instance *next;
6719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project};
6819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
6919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern char *base_device(const char *device);
7019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern const char *identify_fs(const char *fs_name, const char *fs_types);
713984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt
723984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt/* ismounted.h */
733984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidtextern int is_mounted(const char *file);
74