ext2ed.h revision 0f31c737dbf999c90a0842e6a499416b8e1f0cb4
1583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
2583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/*
3583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
4583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/usr/src/ext2ed/ext2ed.h
5583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
6583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oA part of the extended file system 2 disk editor.
7583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
8583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o--------------------------------------
9583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oInclude file for the ext2 disk editor.
10583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o--------------------------------------
11583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
12583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oThis file contains declarations which are needed by all the files in ext2ed.
13583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
14583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oFirst written on: April 9 1995
15583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
16583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oCopyright (C) 1995 Gadi Oxman
17583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
18583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o*/
19583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
20583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#ifndef EXT2ED_EDITOR_H
21583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define EXT2ED_EDITOR_H
22583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
23583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/*
24583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
25583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o-----------------------
26583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o User definable options
27583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o-----------------------
28583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
29583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o*/
30583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
31583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#ifndef VAR_DIR
32583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	#define VAR_DIR	"/var/lib/ext2ed"		/* The configuration file will be searched here */
33583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#endif
34583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
35583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define DEBUG						/* Activate self-sanity checks */
36583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
37583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#include <linux/ext2_fs.h>				/* Main kernel ext2 include file */
380f31c737dbf999c90a0842e6a499416b8e1f0cb4Theodore Ts'o#include <sys/stat.h>
39583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
40583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#ifdef OLD_NCURSES					/* The ncurses interface */
41583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	#include <ncurses/ncurses.h>
42583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#else
43583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	#include <ncurses/curses.h>
44583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#endif
45583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
46583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define MAX_FIELDS 		400
47583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
48583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define MAX_COMMAND_LINE 	81
49583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define MAX_COMMANDS_NUM	30			/* Maximum number of commands of one type */
50583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define REMEMBER_COUNT		30			/* Object memory size */
51583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
52583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/*
53583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	The user screen consists of four parts:
54583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
55583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o		1.	Title window (title_win).
56583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o		2.	Show (status) window (show_win).
57583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o		3.	Main show pad (show_pad).
58583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o		4.	Command window (command_win).
59583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
60583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o*/
61583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
62583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/*
63583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
64583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o   The show pad is mapped to the space left between the other three windows.
65583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
66583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o   If you wondered why ext2ed grabs so memory, the answer is probably below - I wanted to treat
67583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o   the virtual display as infinite. Decrease the following for more realistic memory consumption.
68583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
69583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o*/
70583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
71583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define SHOW_PAD_LINES 3000
72583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define SHOW_PAD_COLS (COLS > 140 ? COLS : 140)
73583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
74583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define COMMAND_WIN_LINES 6				/* Change this to your preferences */
75583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define TITLE_WIN_LINES 3
76583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define SHOW_WIN_LINES 3
77583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
78583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define HEX 1
79583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define TEXT 2
80583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
81583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#ifndef EXT2_PRE_02B_MAGIC
82583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	#define EXT2_PRE_02B_MAGIC	0xEF51
83583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#endif
84583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
85583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
86583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'otypedef void (*PF) (char *);				/* Used to point to the dispatched functions */
87583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
88583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_commands {				/* Holds commands of an object */
89583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	int last_command;
90583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	char *names [MAX_COMMANDS_NUM];
91583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	char *descriptions [MAX_COMMANDS_NUM];
92583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	PF callback [MAX_COMMANDS_NUM];
93583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o};
94583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
95583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_descriptor {				/* Describes an object */
96583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long length;
97583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned char name [60];
98583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned short fields_num;
99583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned char field_names [MAX_FIELDS][80];
100583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned short field_lengths [MAX_FIELDS];
101583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned short field_positions [MAX_FIELDS];
102583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	struct struct_commands type_commands;
103583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	struct struct_descriptor *prev,*next;
104583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o};
105583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
106583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_type_data {				/* The object's data is usually here */
107583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	long offset_in_block;
108583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
109583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	union union_type_data {				/* Format it in various ways */
110583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o		char buffer [EXT2_MAX_BLOCK_SIZE];
111583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o		struct ext2_acl_header t_ext2_acl_header;
112583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o		struct ext2_acl_entry t_ext2_acl_entry;
113583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o		struct ext2_group_desc t_ext2_group_desc;
114583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o		struct ext2_inode t_ext2_inode;
115583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o		struct ext2_super_block t_ext2_super_block;
116583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o		struct ext2_dir_entry t_ext2_dir_entry;
117583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	} u;
118583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o};
119583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
120583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_file_system_info {			/* Important information about the filesystem */
121583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long long file_system_size;
122583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long super_block_offset;
123583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long first_group_desc_offset;
124583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long groups_count;
125583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long inodes_per_block;
126583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long blocks_per_group;			/* The name is misleading; beware */
127583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long no_blocks_in_group;
128583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned short block_size;
129583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	struct ext2_super_block super_block;
130583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o};
131583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
132583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_file_info {				/* Used to handle files and directories */
133583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
134583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	struct ext2_inode *inode_ptr;
135583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
136583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	long inode_offset;
137583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	long global_block_num,global_block_offset;
138583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	long block_num,blocks_count;
139583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	long file_offset,file_length;
140583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	long level;
141583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned char buffer [EXT2_MAX_BLOCK_SIZE];
142583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	long offset_in_block;
143583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
144583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	int display;
145583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	/* The following is used if the file is a directory */
146583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
147583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	long dir_entry_num,dir_entries_count;
148583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	long dir_entry_offset;
149583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o};
150583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
151583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_super_info {				/* Used to handle the superblock */
152583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long copy_num;
153583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o};
154583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
155583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_group_info {				/* Used to handle the group descriptors */
156583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long copy_num;
157583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long group_num;
158583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o};
159583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
160583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_block_bitmap_info {			/* Used in blockbitmap_com.c */
161583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long entry_num;
162583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long group_num;
163583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o};
164583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
165583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_inode_bitmap_info {			/* Used in inodebitmap_com.c */
166583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long entry_num;
167583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	unsigned long group_num;
168583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o};
169583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
170583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_remember_lifo {				/* Implements the objects circular memory */
171583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	long entries_count;
172583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
173583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	long offset [REMEMBER_COUNT];
174583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	struct struct_descriptor *type [REMEMBER_COUNT];
175583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	char name [REMEMBER_COUNT][80];
176583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o};
177583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
178583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_pad_info {				/* Used to zoom into the pad window */
179583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	int display_lines,display_cols;
180583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	int line,col;
181583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	int max_line,max_col;
182583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o	int disable_output;
183583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o};
184583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
185583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* Global variables (defined mostly in main.c) */
186583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
187583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* Configurable variables (Through configuration file) */
188583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
189583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern char AlternateDescriptors [200];
190583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern char Ext2Descriptors [200];
191583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern char LogFile [200];
192583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int LogChanges;
193583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int AllowChanges;
194583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int AllowMountedRead;
195583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int ForceExt2;
196583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int DefaultBlockSize;
197583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern unsigned long DefaultTotalBlocks;
198583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern unsigned long DefaultBlocksInGroup;
199583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int ForceDefault;
200583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
201583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern char device_name [80];
202583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern char last_command_line [80];
203583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern FILE *device_handle;
204583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern long device_offset;
205583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int  mounted;
206583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
207583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern short block_size;
208583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_commands general_commands;
209583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_commands ext2_commands;
210583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_descriptor *first_type;
211583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_descriptor *last_type;
212583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_descriptor *current_type;
213583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_type_data type_data;
214583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_file_system_info file_system_info;
215583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_file_info file_info,first_file_info;
216583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_group_info group_info;
217583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_super_info super_info;
218583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_block_bitmap_info block_bitmap_info;
219583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_inode_bitmap_info inode_bitmap_info;
220583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_remember_lifo remember_lifo;
221583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_pad_info show_pad_info;
222583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int write_access;
223583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
224583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int redraw_request;
225583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern char lines_s [80];
226583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern char cols_s [80];
227583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
228583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
229583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* init.c */
230583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
231583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int init (void);
232583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void prepare_to_close (void);
233583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int set_struct_descriptors (char *file_name);
234583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void free_struct_descriptors (void);
235583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern struct struct_descriptor *add_new_descriptor (char *name);
236583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void add_new_variable (struct struct_descriptor *descriptor,char *v_type,char *v_name);
237583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void fill_type_commands (struct struct_descriptor *ptr);
238583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void add_user_command (struct struct_commands *ptr,char *name,char *description,PF callback);
239583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void free_user_commands (struct struct_commands *ptr);
240583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int set_file_system_info (void);
241583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int process_configuration_file (void);
242583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void add_general_commands (void);
243583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void add_ext2_general_commands (void);
244583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void check_mounted (char *name);
245583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
246583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oint get_next_option (FILE *fp,char *option,char *value);
247583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid init_readline (void);
248583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid init_signals (void);
249583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid signal_SIGWINCH_handler (int sig_num);
250583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid signal_SIGTERM_handler (int sig_num);
251583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid signal_SIGSEGV_handler (int sig_num);
252583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
253583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* general_com.c */
254583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
255583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* General commands which are aviable always */
256583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
257583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void help (char *command_line);
258583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void set (char *command_line);
259583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void set_device (char *command_line);
260583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void set_offset (char *command_line);
261583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void set_type (char *command_line);
262583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void show (char *command_line);
263583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void pgup (char *command_line);
264583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void pgdn (char *command_line);
265583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void redraw (char *command_line);
266583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void remember (char *command_line);
267583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void recall (char *command_line);
268583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void cd (char *command_line);
269583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void enable_write (char *command_line);
270583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void disable_write (char *command_line);
271583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void write_data (char *command_line);
272583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void next (char *command_line);
273583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void prev (char *command_line);
274583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
275583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid hex_set (char *command_line);
276583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid detailed_help (char *text);
277583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
278583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
279583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* ext2_com.c */
280583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
281583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* Extended2 filesystem genereal commands - Aviable only when editing an
282583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o   ext2 filesystem */
283583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
284583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2___super (char *command_line);
285583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2___group (char *command_line);
286583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2___cd (char *command_line);
287583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
288583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
289583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* main.c */
290583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
291583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int version_major,version_minor;
292583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern char revision_date [80];
293583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern char email_address [80];
294583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
295583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#ifdef DEBUG
296583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void internal_error (char *description,char *source_name,char *function_name);
297583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#endif
298583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
299583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid parser (void);
300583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int dispatch (char *command_line);
301583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ochar *parse_word (char *source,char *dest);
302583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ochar *complete_command (char *text,int state);
303583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ochar *dupstr (char *src);
304583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
305583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
306583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
307583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* disk.c */
308583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
309583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int load_type_data (void);
310583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int write_type_data (void);
311583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int low_read (unsigned char *buffer,unsigned long length,unsigned long offset);
312583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int low_write (unsigned char *buffer,unsigned long length,unsigned long offset);
313583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int log_changes (unsigned char *buffer,unsigned long length,unsigned long offset);
314583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
315583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* file_com.c */
316583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
317583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int init_file_info (void);
318583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___show (char *command_line);
319583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___inode (char *command_line);
320583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___display (char *command_line);
321583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___prev (char *command_line);
322583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___next (char *command_line);
323583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___offset (char *command_line);
324583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___prevblock (char *command_line);
325583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___nextblock (char *command_line);
326583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___block (char *command_line);
327583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___remember (char *command_line);
328583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___set (char *command_line);
329583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_file___writedata (char *command_line);
330583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
331583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern long file_block_to_global_block (long file_block,struct struct_file_info *file_info_ptr);
332583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern long return_indirect (long table_block,long block_num);
333583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern long return_dindirect (long table_block,long block_num);
334583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern long return_tindirect (long table_block,long block_num);
335583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
336583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid file_show_hex (void);
337583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid file_show_text (void);
338583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid show_status (void);
339583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
340583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* inode_com.c */
341583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
342583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode___next (char *command_line);
343583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode___prev (char *command_line);
344583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode___show (char *command_line);
345583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode___group (char *command_line);
346583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode___entry (char *command_line);
347583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode___file (char *command_line);
348583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode___dir (char *command_line);
349583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
350583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern long inode_offset_to_group_num (long inode_offset);
351583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern long int inode_offset_to_inode_num (long inode_offset);
352583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern long int inode_num_to_inode_offset (long inode_num);
353583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
354583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* dir_com.c */
355583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
356583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern int init_dir_info (struct struct_file_info *info);
357583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___show (char *command_line);
358583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___inode (char *command_line);
359583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___pgdn (char *command_line);
360583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___pgup (char *command_line);
361583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___prev (char *command_line);
362583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___next (char *command_line);
363583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___followinode (char *command_line);
364583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___remember (char *command_line);
365583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___cd (char *command_line);
366583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___entry (char *command_line);
367583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___writedata (char *command_line);
368583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_dir___set (char *command_line);
369583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
370583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define HEX 1
371583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define TEXT 2
372583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
373583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define ABORT		0
374583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define CONTINUE	1
375583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o#define FOUND		2
376583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
377583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ostruct struct_file_info search_dir_entries (int (*action) (struct struct_file_info *info),int *status);
378583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oint action_count (struct struct_file_info *info);
379583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid show_dir_status (void);
380583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'olong count_dir_entries (void);
381583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oint action_name (struct struct_file_info *info);
382583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oint action_entry_num (struct struct_file_info *info);
383583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oint action_show (struct struct_file_info *info);
384583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
385583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* super_com.c */
386583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
387583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_super_block___show (char *command_line);
388583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_super_block___gocopy (char *command_line);
389583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_super_block___setactivecopy (char *command_line);
390583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
391583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* group_com.c */
392583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
393583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_group_desc___next (char *command_line);
394583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_group_desc___prev (char *command_line);
395583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_group_desc___entry (char *command_line);
396583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_group_desc___show (char *command_line);
397583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_group_desc___inode (char *command_line);
398583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_group_desc___gocopy (char *command_line);
399583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_group_desc___blockbitmap (char *command_line);
400583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_group_desc___inodebitmap (char *command_line);
401583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_group_desc___setactivecopy (char *command_line);
402583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
403583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* blockbitmap_com.c */
404583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
405583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_block_bitmap___show (char *command_line);
406583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_block_bitmap___entry (char *command_line);
407583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_block_bitmap___next (char *command_line);
408583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_block_bitmap___prev (char *command_line);
409583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_block_bitmap___allocate (char *command_line);
410583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_block_bitmap___deallocate (char *command_line);
411583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid allocate_block (long entry_num);
412583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid deallocate_block (long entry_num);
413583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
414583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* inodebitmap_bom.c */
415583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
416583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode_bitmap___show (char *command_line);
417583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode_bitmap___entry (char *command_line);
418583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode_bitmap___next (char *command_line);
419583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode_bitmap___prev (char *command_line);
420583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode_bitmap___allocate (char *command_line);
421583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void type_ext2_inode_bitmap___deallocate (char *command_line);
422583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid allocate_inode (long entry_num);
423583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'ovoid deallocate_inode (long entry_num);
424583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
425583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o/* win.c */
426583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
427583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern WINDOW *title_win,*show_win,*command_win,*show_pad;
428583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
429583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void init_windows (void);
430583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void refresh_title_win (void);
431583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void refresh_show_win (void);
432583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void refresh_show_pad (void);
433583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void refresh_command_win (void);
434583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void show_info (void);
435583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void redraw_all (void);
436583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'oextern void close_windows (void);
437583a1ce5d1b225a6b01fc2b30a3bcb21fd0d48c9Theodore Ts'o
4380f31c737dbf999c90a0842e6a499416b8e1f0cb4Theodore Ts'o#endif /* EXT2ED_EDITOR_H */
439