1/*
2 * fsck.h
3 */
4
5#include <time.h>
6
7#ifdef __STDC__
8#define NOARGS void
9#else
10#define NOARGS
11#define const
12#endif
13
14#ifdef __GNUC__
15#define FSCK_ATTR(x) __attribute__(x)
16#else
17#define FSCK_ATTR(x)
18#endif
19
20
21#ifndef DEFAULT_FSTYPE
22#define DEFAULT_FSTYPE	"ext2"
23#endif
24
25#define MAX_DEVICES 32
26#define MAX_ARGS 32
27
28#define EXIT_OK          0
29#define EXIT_NONDESTRUCT 1
30#define EXIT_DESTRUCT    2
31#define EXIT_UNCORRECTED 4
32#define EXIT_ERROR       8
33#define EXIT_USAGE       16
34#define EXIT_LIBRARY     128
35
36/*
37 * Internal structure for mount tabel entries.
38 */
39
40struct fs_info {
41	char  *device;
42	char  *mountpt;
43	char  *type;
44	char  *opts;
45	int   freq;
46	int   passno;
47	int   flags;
48	struct fs_info *next;
49};
50
51#define FLAG_DONE 1
52#define FLAG_PROGRESS 2
53
54/*
55 * Structure to allow exit codes to be stored
56 */
57struct fsck_instance {
58	int	pid;
59	int	flags;
60	int	exit_status;
61	time_t	start_time;
62	char *	prog;
63	char *	type;
64	char *	device;
65	char *	base_device;
66	struct fsck_instance *next;
67};
68
69extern char *base_device(const char *device);
70extern const char *identify_fs(const char *fs_name, const char *fs_types);
71
72/* ismounted.h */
73extern int is_mounted(const char *file);
74