xref: /aosp_15_r20/external/e2fsprogs/ext2ed/ext2ed.h (revision 6a54128f25917bfc36a8a6e9d722c04a0b4641b6)
1*6a54128fSAndroid Build Coastguard Worker 
2*6a54128fSAndroid Build Coastguard Worker /*
3*6a54128fSAndroid Build Coastguard Worker 
4*6a54128fSAndroid Build Coastguard Worker /usr/src/ext2ed/ext2ed.h
5*6a54128fSAndroid Build Coastguard Worker 
6*6a54128fSAndroid Build Coastguard Worker A part of the extended file system 2 disk editor.
7*6a54128fSAndroid Build Coastguard Worker 
8*6a54128fSAndroid Build Coastguard Worker --------------------------------------
9*6a54128fSAndroid Build Coastguard Worker Include file for the ext2 disk editor.
10*6a54128fSAndroid Build Coastguard Worker --------------------------------------
11*6a54128fSAndroid Build Coastguard Worker 
12*6a54128fSAndroid Build Coastguard Worker This file contains declarations which are needed by all the files in ext2ed.
13*6a54128fSAndroid Build Coastguard Worker 
14*6a54128fSAndroid Build Coastguard Worker First written on: April 9 1995
15*6a54128fSAndroid Build Coastguard Worker 
16*6a54128fSAndroid Build Coastguard Worker Copyright (C) 1995 Gadi Oxman
17*6a54128fSAndroid Build Coastguard Worker 
18*6a54128fSAndroid Build Coastguard Worker */
19*6a54128fSAndroid Build Coastguard Worker 
20*6a54128fSAndroid Build Coastguard Worker #ifndef EXT2ED_EDITOR_H
21*6a54128fSAndroid Build Coastguard Worker #define EXT2ED_EDITOR_H
22*6a54128fSAndroid Build Coastguard Worker 
23*6a54128fSAndroid Build Coastguard Worker /*
24*6a54128fSAndroid Build Coastguard Worker 
25*6a54128fSAndroid Build Coastguard Worker -----------------------
26*6a54128fSAndroid Build Coastguard Worker  User definable options
27*6a54128fSAndroid Build Coastguard Worker -----------------------
28*6a54128fSAndroid Build Coastguard Worker 
29*6a54128fSAndroid Build Coastguard Worker */
30*6a54128fSAndroid Build Coastguard Worker 
31*6a54128fSAndroid Build Coastguard Worker #define DEBUG						/* Activate self-sanity checks */
32*6a54128fSAndroid Build Coastguard Worker 
33*6a54128fSAndroid Build Coastguard Worker #include <ext2fs/ext2_fs.h>				/* Main kernel ext2 include file */
34*6a54128fSAndroid Build Coastguard Worker #include <sys/stat.h>
35*6a54128fSAndroid Build Coastguard Worker 
36*6a54128fSAndroid Build Coastguard Worker #include <ncurses.h>
37*6a54128fSAndroid Build Coastguard Worker 
38*6a54128fSAndroid Build Coastguard Worker #define MAX_FIELDS 		400
39*6a54128fSAndroid Build Coastguard Worker 
40*6a54128fSAndroid Build Coastguard Worker #define MAX_COMMAND_LINE 	81
41*6a54128fSAndroid Build Coastguard Worker #define MAX_COMMANDS_NUM	30			/* Maximum number of commands of one type */
42*6a54128fSAndroid Build Coastguard Worker #define REMEMBER_COUNT		30			/* Object memory size */
43*6a54128fSAndroid Build Coastguard Worker 
44*6a54128fSAndroid Build Coastguard Worker /*
45*6a54128fSAndroid Build Coastguard Worker 	The user screen consists of four parts:
46*6a54128fSAndroid Build Coastguard Worker 
47*6a54128fSAndroid Build Coastguard Worker 		1.	Title window (title_win).
48*6a54128fSAndroid Build Coastguard Worker 		2.	Show (status) window (show_win).
49*6a54128fSAndroid Build Coastguard Worker 		3.	Main show pad (show_pad).
50*6a54128fSAndroid Build Coastguard Worker 		4.	Command window (command_win).
51*6a54128fSAndroid Build Coastguard Worker 
52*6a54128fSAndroid Build Coastguard Worker */
53*6a54128fSAndroid Build Coastguard Worker 
54*6a54128fSAndroid Build Coastguard Worker /*
55*6a54128fSAndroid Build Coastguard Worker 
56*6a54128fSAndroid Build Coastguard Worker    The show pad is mapped to the space left between the other three windows.
57*6a54128fSAndroid Build Coastguard Worker 
58*6a54128fSAndroid Build Coastguard Worker    If you wondered why ext2ed grabs so memory, the answer is probably below - I wanted to treat
59*6a54128fSAndroid Build Coastguard Worker    the virtual display as infinite. Decrease the following for more realistic memory consumption.
60*6a54128fSAndroid Build Coastguard Worker 
61*6a54128fSAndroid Build Coastguard Worker */
62*6a54128fSAndroid Build Coastguard Worker 
63*6a54128fSAndroid Build Coastguard Worker #define SHOW_PAD_LINES 3000
64*6a54128fSAndroid Build Coastguard Worker #define SHOW_PAD_COLS (COLS > 140 ? COLS : 140)
65*6a54128fSAndroid Build Coastguard Worker 
66*6a54128fSAndroid Build Coastguard Worker #define COMMAND_WIN_LINES 6				/* Change this to your preferences */
67*6a54128fSAndroid Build Coastguard Worker #define TITLE_WIN_LINES 3
68*6a54128fSAndroid Build Coastguard Worker #define SHOW_WIN_LINES 3
69*6a54128fSAndroid Build Coastguard Worker 
70*6a54128fSAndroid Build Coastguard Worker #define HEX 1
71*6a54128fSAndroid Build Coastguard Worker #define TEXT 2
72*6a54128fSAndroid Build Coastguard Worker 
73*6a54128fSAndroid Build Coastguard Worker #ifndef EXT2_PRE_02B_MAGIC
74*6a54128fSAndroid Build Coastguard Worker 	#define EXT2_PRE_02B_MAGIC	0xEF51
75*6a54128fSAndroid Build Coastguard Worker #endif
76*6a54128fSAndroid Build Coastguard Worker 
77*6a54128fSAndroid Build Coastguard Worker 
78*6a54128fSAndroid Build Coastguard Worker typedef void (*PF) (char *);				/* Used to point to the dispatched functions */
79*6a54128fSAndroid Build Coastguard Worker 
80*6a54128fSAndroid Build Coastguard Worker struct struct_commands {				/* Holds commands of an object */
81*6a54128fSAndroid Build Coastguard Worker 	int last_command;
82*6a54128fSAndroid Build Coastguard Worker 	char *names [MAX_COMMANDS_NUM];
83*6a54128fSAndroid Build Coastguard Worker 	char *descriptions [MAX_COMMANDS_NUM];
84*6a54128fSAndroid Build Coastguard Worker 	PF callback [MAX_COMMANDS_NUM];
85*6a54128fSAndroid Build Coastguard Worker };
86*6a54128fSAndroid Build Coastguard Worker 
87*6a54128fSAndroid Build Coastguard Worker struct struct_descriptor {				/* Describes an object */
88*6a54128fSAndroid Build Coastguard Worker 	unsigned long length;
89*6a54128fSAndroid Build Coastguard Worker 	unsigned char name [60];
90*6a54128fSAndroid Build Coastguard Worker 	unsigned short fields_num;
91*6a54128fSAndroid Build Coastguard Worker 	unsigned char field_names [MAX_FIELDS][80];
92*6a54128fSAndroid Build Coastguard Worker 	unsigned char field_types [MAX_FIELDS];
93*6a54128fSAndroid Build Coastguard Worker 	unsigned short field_lengths [MAX_FIELDS];
94*6a54128fSAndroid Build Coastguard Worker 	unsigned short field_positions [MAX_FIELDS];
95*6a54128fSAndroid Build Coastguard Worker 	struct struct_commands type_commands;
96*6a54128fSAndroid Build Coastguard Worker 	struct struct_descriptor *prev,*next;
97*6a54128fSAndroid Build Coastguard Worker };
98*6a54128fSAndroid Build Coastguard Worker 
99*6a54128fSAndroid Build Coastguard Worker #define FIELD_TYPE_INT	  1
100*6a54128fSAndroid Build Coastguard Worker #define FIELD_TYPE_UINT   2
101*6a54128fSAndroid Build Coastguard Worker #define FIELD_TYPE_CHAR   3
102*6a54128fSAndroid Build Coastguard Worker 
103*6a54128fSAndroid Build Coastguard Worker struct struct_type_data {				/* The object's data is usually here */
104*6a54128fSAndroid Build Coastguard Worker 	long offset_in_block;
105*6a54128fSAndroid Build Coastguard Worker 
106*6a54128fSAndroid Build Coastguard Worker 	union union_type_data {				/* Format it in various ways */
107*6a54128fSAndroid Build Coastguard Worker 		char buffer [EXT2_MAX_BLOCK_SIZE];
108*6a54128fSAndroid Build Coastguard Worker 		struct ext2_acl_header t_ext2_acl_header;
109*6a54128fSAndroid Build Coastguard Worker 		struct ext2_acl_entry t_ext2_acl_entry;
110*6a54128fSAndroid Build Coastguard Worker 		struct ext2_group_desc t_ext2_group_desc;
111*6a54128fSAndroid Build Coastguard Worker 		struct ext2_inode t_ext2_inode;
112*6a54128fSAndroid Build Coastguard Worker 		struct ext2_super_block t_ext2_super_block;
113*6a54128fSAndroid Build Coastguard Worker 		struct ext2_dir_entry t_ext2_dir_entry;
114*6a54128fSAndroid Build Coastguard Worker 	} u;
115*6a54128fSAndroid Build Coastguard Worker };
116*6a54128fSAndroid Build Coastguard Worker 
117*6a54128fSAndroid Build Coastguard Worker struct struct_file_system_info {			/* Important information about the filesystem */
118*6a54128fSAndroid Build Coastguard Worker 	unsigned long long file_system_size;
119*6a54128fSAndroid Build Coastguard Worker 	unsigned long super_block_offset;
120*6a54128fSAndroid Build Coastguard Worker 	unsigned long first_group_desc_offset;
121*6a54128fSAndroid Build Coastguard Worker 	unsigned long groups_count;
122*6a54128fSAndroid Build Coastguard Worker 	unsigned long inodes_per_block;
123*6a54128fSAndroid Build Coastguard Worker 	unsigned long blocks_per_group;			/* The name is misleading; beware */
124*6a54128fSAndroid Build Coastguard Worker 	unsigned long no_blocks_in_group;
125*6a54128fSAndroid Build Coastguard Worker 	unsigned short block_size;
126*6a54128fSAndroid Build Coastguard Worker 	struct ext2_super_block super_block;
127*6a54128fSAndroid Build Coastguard Worker };
128*6a54128fSAndroid Build Coastguard Worker 
129*6a54128fSAndroid Build Coastguard Worker struct struct_file_info {				/* Used to handle files and directories */
130*6a54128fSAndroid Build Coastguard Worker 
131*6a54128fSAndroid Build Coastguard Worker 	struct ext2_inode *inode_ptr;
132*6a54128fSAndroid Build Coastguard Worker 
133*6a54128fSAndroid Build Coastguard Worker 	long inode_offset;
134*6a54128fSAndroid Build Coastguard Worker 	long global_block_num,global_block_offset;
135*6a54128fSAndroid Build Coastguard Worker 	long block_num,blocks_count;
136*6a54128fSAndroid Build Coastguard Worker 	long file_offset,file_length;
137*6a54128fSAndroid Build Coastguard Worker 	long level;
138*6a54128fSAndroid Build Coastguard Worker 	unsigned char buffer [EXT2_MAX_BLOCK_SIZE];
139*6a54128fSAndroid Build Coastguard Worker 	long offset_in_block;
140*6a54128fSAndroid Build Coastguard Worker 
141*6a54128fSAndroid Build Coastguard Worker 	int display;
142*6a54128fSAndroid Build Coastguard Worker 	/* The following is used if the file is a directory */
143*6a54128fSAndroid Build Coastguard Worker 
144*6a54128fSAndroid Build Coastguard Worker 	long dir_entry_num,dir_entries_count;
145*6a54128fSAndroid Build Coastguard Worker 	long dir_entry_offset;
146*6a54128fSAndroid Build Coastguard Worker };
147*6a54128fSAndroid Build Coastguard Worker 
148*6a54128fSAndroid Build Coastguard Worker struct struct_super_info {				/* Used to handle the superblock */
149*6a54128fSAndroid Build Coastguard Worker 	unsigned long copy_num;
150*6a54128fSAndroid Build Coastguard Worker };
151*6a54128fSAndroid Build Coastguard Worker 
152*6a54128fSAndroid Build Coastguard Worker struct struct_group_info {				/* Used to handle the group descriptors */
153*6a54128fSAndroid Build Coastguard Worker 	unsigned long copy_num;
154*6a54128fSAndroid Build Coastguard Worker 	unsigned long group_num;
155*6a54128fSAndroid Build Coastguard Worker };
156*6a54128fSAndroid Build Coastguard Worker 
157*6a54128fSAndroid Build Coastguard Worker struct struct_block_bitmap_info {			/* Used in blockbitmap_com.c */
158*6a54128fSAndroid Build Coastguard Worker 	unsigned long entry_num;
159*6a54128fSAndroid Build Coastguard Worker 	unsigned long group_num;
160*6a54128fSAndroid Build Coastguard Worker };
161*6a54128fSAndroid Build Coastguard Worker 
162*6a54128fSAndroid Build Coastguard Worker struct struct_inode_bitmap_info {			/* Used in inodebitmap_com.c */
163*6a54128fSAndroid Build Coastguard Worker 	unsigned long entry_num;
164*6a54128fSAndroid Build Coastguard Worker 	unsigned long group_num;
165*6a54128fSAndroid Build Coastguard Worker };
166*6a54128fSAndroid Build Coastguard Worker 
167*6a54128fSAndroid Build Coastguard Worker struct struct_remember_lifo {				/* Implements the objects circular memory */
168*6a54128fSAndroid Build Coastguard Worker 	long entries_count;
169*6a54128fSAndroid Build Coastguard Worker 
170*6a54128fSAndroid Build Coastguard Worker 	long offset [REMEMBER_COUNT];
171*6a54128fSAndroid Build Coastguard Worker 	struct struct_descriptor *type [REMEMBER_COUNT];
172*6a54128fSAndroid Build Coastguard Worker 	char name [REMEMBER_COUNT][80];
173*6a54128fSAndroid Build Coastguard Worker };
174*6a54128fSAndroid Build Coastguard Worker 
175*6a54128fSAndroid Build Coastguard Worker struct struct_pad_info {				/* Used to zoom into the pad window */
176*6a54128fSAndroid Build Coastguard Worker 	int display_lines,display_cols;
177*6a54128fSAndroid Build Coastguard Worker 	int line,col;
178*6a54128fSAndroid Build Coastguard Worker 	int max_line,max_col;
179*6a54128fSAndroid Build Coastguard Worker 	int disable_output;
180*6a54128fSAndroid Build Coastguard Worker };
181*6a54128fSAndroid Build Coastguard Worker 
182*6a54128fSAndroid Build Coastguard Worker /* Global variables (defined mostly in main.c) */
183*6a54128fSAndroid Build Coastguard Worker 
184*6a54128fSAndroid Build Coastguard Worker /* Configurable variables (Through configuration file) */
185*6a54128fSAndroid Build Coastguard Worker 
186*6a54128fSAndroid Build Coastguard Worker extern char AlternateDescriptors [200];
187*6a54128fSAndroid Build Coastguard Worker extern char Ext2Descriptors [200];
188*6a54128fSAndroid Build Coastguard Worker extern char LogFile [200];
189*6a54128fSAndroid Build Coastguard Worker extern int LogChanges;
190*6a54128fSAndroid Build Coastguard Worker extern int AllowChanges;
191*6a54128fSAndroid Build Coastguard Worker extern int AllowMountedRead;
192*6a54128fSAndroid Build Coastguard Worker extern int ForceExt2;
193*6a54128fSAndroid Build Coastguard Worker extern int DefaultBlockSize;
194*6a54128fSAndroid Build Coastguard Worker extern unsigned long DefaultTotalBlocks;
195*6a54128fSAndroid Build Coastguard Worker extern unsigned long DefaultBlocksInGroup;
196*6a54128fSAndroid Build Coastguard Worker extern int ForceDefault;
197*6a54128fSAndroid Build Coastguard Worker 
198*6a54128fSAndroid Build Coastguard Worker extern char device_name [80];
199*6a54128fSAndroid Build Coastguard Worker extern char last_command_line [80];
200*6a54128fSAndroid Build Coastguard Worker extern FILE *device_handle;
201*6a54128fSAndroid Build Coastguard Worker extern long device_offset;
202*6a54128fSAndroid Build Coastguard Worker extern int  mounted;
203*6a54128fSAndroid Build Coastguard Worker 
204*6a54128fSAndroid Build Coastguard Worker extern short block_size;
205*6a54128fSAndroid Build Coastguard Worker extern struct struct_commands general_commands;
206*6a54128fSAndroid Build Coastguard Worker extern struct struct_commands ext2_commands;
207*6a54128fSAndroid Build Coastguard Worker extern struct struct_descriptor *first_type;
208*6a54128fSAndroid Build Coastguard Worker extern struct struct_descriptor *last_type;
209*6a54128fSAndroid Build Coastguard Worker extern struct struct_descriptor *current_type;
210*6a54128fSAndroid Build Coastguard Worker extern struct struct_type_data type_data;
211*6a54128fSAndroid Build Coastguard Worker extern struct struct_file_system_info file_system_info;
212*6a54128fSAndroid Build Coastguard Worker extern struct struct_file_info file_info,first_file_info;
213*6a54128fSAndroid Build Coastguard Worker extern struct struct_group_info group_info;
214*6a54128fSAndroid Build Coastguard Worker extern struct struct_super_info super_info;
215*6a54128fSAndroid Build Coastguard Worker extern struct struct_block_bitmap_info block_bitmap_info;
216*6a54128fSAndroid Build Coastguard Worker extern struct struct_inode_bitmap_info inode_bitmap_info;
217*6a54128fSAndroid Build Coastguard Worker extern struct struct_remember_lifo remember_lifo;
218*6a54128fSAndroid Build Coastguard Worker extern struct struct_pad_info show_pad_info;
219*6a54128fSAndroid Build Coastguard Worker extern int write_access;
220*6a54128fSAndroid Build Coastguard Worker 
221*6a54128fSAndroid Build Coastguard Worker extern int redraw_request;
222*6a54128fSAndroid Build Coastguard Worker extern char lines_s [80];
223*6a54128fSAndroid Build Coastguard Worker extern char cols_s [80];
224*6a54128fSAndroid Build Coastguard Worker 
225*6a54128fSAndroid Build Coastguard Worker 
226*6a54128fSAndroid Build Coastguard Worker /* init.c */
227*6a54128fSAndroid Build Coastguard Worker 
228*6a54128fSAndroid Build Coastguard Worker extern int init (void);
229*6a54128fSAndroid Build Coastguard Worker extern void prepare_to_close (void);
230*6a54128fSAndroid Build Coastguard Worker extern int set_struct_descriptors (char *file_name);
231*6a54128fSAndroid Build Coastguard Worker extern void free_struct_descriptors (void);
232*6a54128fSAndroid Build Coastguard Worker extern struct struct_descriptor *add_new_descriptor (char *name);
233*6a54128fSAndroid Build Coastguard Worker extern void add_new_variable (struct struct_descriptor *descriptor,char *v_type,char *v_name);
234*6a54128fSAndroid Build Coastguard Worker extern void fill_type_commands (struct struct_descriptor *ptr);
235*6a54128fSAndroid Build Coastguard Worker extern void add_user_command (struct struct_commands *ptr,char *name,char *description,PF callback);
236*6a54128fSAndroid Build Coastguard Worker extern void free_user_commands (struct struct_commands *ptr);
237*6a54128fSAndroid Build Coastguard Worker extern int set_file_system_info (void);
238*6a54128fSAndroid Build Coastguard Worker extern int process_configuration_file (void);
239*6a54128fSAndroid Build Coastguard Worker extern void add_general_commands (void);
240*6a54128fSAndroid Build Coastguard Worker extern void add_ext2_general_commands (void);
241*6a54128fSAndroid Build Coastguard Worker extern void check_mounted (char *name);
242*6a54128fSAndroid Build Coastguard Worker 
243*6a54128fSAndroid Build Coastguard Worker int get_next_option (FILE *fp,char *option,char *value);
244*6a54128fSAndroid Build Coastguard Worker void init_readline (void);
245*6a54128fSAndroid Build Coastguard Worker void init_signals (void);
246*6a54128fSAndroid Build Coastguard Worker void signal_SIGWINCH_handler (int sig_num);
247*6a54128fSAndroid Build Coastguard Worker void signal_SIGTERM_handler (int sig_num);
248*6a54128fSAndroid Build Coastguard Worker void signal_SIGSEGV_handler (int sig_num);
249*6a54128fSAndroid Build Coastguard Worker 
250*6a54128fSAndroid Build Coastguard Worker /* general_com.c */
251*6a54128fSAndroid Build Coastguard Worker 
252*6a54128fSAndroid Build Coastguard Worker /* General commands which are available always */
253*6a54128fSAndroid Build Coastguard Worker 
254*6a54128fSAndroid Build Coastguard Worker extern void help (char *command_line);
255*6a54128fSAndroid Build Coastguard Worker extern void set (char *command_line);
256*6a54128fSAndroid Build Coastguard Worker extern void set_device (char *command_line);
257*6a54128fSAndroid Build Coastguard Worker extern void set_offset (char *command_line);
258*6a54128fSAndroid Build Coastguard Worker extern void set_type (char *command_line);
259*6a54128fSAndroid Build Coastguard Worker extern void show (char *command_line);
260*6a54128fSAndroid Build Coastguard Worker extern void pgup (char *command_line);
261*6a54128fSAndroid Build Coastguard Worker extern void pgdn (char *command_line);
262*6a54128fSAndroid Build Coastguard Worker extern void redraw (char *command_line);
263*6a54128fSAndroid Build Coastguard Worker extern void remember (char *command_line);
264*6a54128fSAndroid Build Coastguard Worker extern void recall (char *command_line);
265*6a54128fSAndroid Build Coastguard Worker extern void cd (char *command_line);
266*6a54128fSAndroid Build Coastguard Worker extern void enable_write (char *command_line);
267*6a54128fSAndroid Build Coastguard Worker extern void disable_write (char *command_line);
268*6a54128fSAndroid Build Coastguard Worker extern void write_data (char *command_line);
269*6a54128fSAndroid Build Coastguard Worker extern void next (char *command_line);
270*6a54128fSAndroid Build Coastguard Worker extern void prev (char *command_line);
271*6a54128fSAndroid Build Coastguard Worker 
272*6a54128fSAndroid Build Coastguard Worker void hex_set (char *command_line);
273*6a54128fSAndroid Build Coastguard Worker void detailed_help (char *text);
274*6a54128fSAndroid Build Coastguard Worker 
275*6a54128fSAndroid Build Coastguard Worker 
276*6a54128fSAndroid Build Coastguard Worker /* ext2_com.c */
277*6a54128fSAndroid Build Coastguard Worker 
278*6a54128fSAndroid Build Coastguard Worker /* Extended2 filesystem general commands - Available only when editing an
279*6a54128fSAndroid Build Coastguard Worker    ext2 filesystem */
280*6a54128fSAndroid Build Coastguard Worker 
281*6a54128fSAndroid Build Coastguard Worker extern void type_ext2___super (char *command_line);
282*6a54128fSAndroid Build Coastguard Worker extern void type_ext2___group (char *command_line);
283*6a54128fSAndroid Build Coastguard Worker extern void type_ext2___cd (char *command_line);
284*6a54128fSAndroid Build Coastguard Worker 
285*6a54128fSAndroid Build Coastguard Worker 
286*6a54128fSAndroid Build Coastguard Worker /* main.c */
287*6a54128fSAndroid Build Coastguard Worker 
288*6a54128fSAndroid Build Coastguard Worker extern int version_major,version_minor;
289*6a54128fSAndroid Build Coastguard Worker extern char revision_date [80];
290*6a54128fSAndroid Build Coastguard Worker extern char email_address [80];
291*6a54128fSAndroid Build Coastguard Worker 
292*6a54128fSAndroid Build Coastguard Worker #ifdef DEBUG
293*6a54128fSAndroid Build Coastguard Worker extern void internal_error (char *description,char *source_name,char *function_name);
294*6a54128fSAndroid Build Coastguard Worker #endif
295*6a54128fSAndroid Build Coastguard Worker 
296*6a54128fSAndroid Build Coastguard Worker void parser (void);
297*6a54128fSAndroid Build Coastguard Worker extern int dispatch (char *command_line);
298*6a54128fSAndroid Build Coastguard Worker char *parse_word (char *source,char *dest);
299*6a54128fSAndroid Build Coastguard Worker char *complete_command (char *text,int state);
300*6a54128fSAndroid Build Coastguard Worker char *dupstr (char *src);
301*6a54128fSAndroid Build Coastguard Worker 
302*6a54128fSAndroid Build Coastguard Worker 
303*6a54128fSAndroid Build Coastguard Worker 
304*6a54128fSAndroid Build Coastguard Worker /* disk.c */
305*6a54128fSAndroid Build Coastguard Worker 
306*6a54128fSAndroid Build Coastguard Worker extern int load_type_data (void);
307*6a54128fSAndroid Build Coastguard Worker extern int write_type_data (void);
308*6a54128fSAndroid Build Coastguard Worker extern int low_read (unsigned char *buffer,unsigned long length,unsigned long offset);
309*6a54128fSAndroid Build Coastguard Worker extern int low_write (unsigned char *buffer,unsigned long length,unsigned long offset);
310*6a54128fSAndroid Build Coastguard Worker extern int log_changes (unsigned char *buffer,unsigned long length,unsigned long offset);
311*6a54128fSAndroid Build Coastguard Worker 
312*6a54128fSAndroid Build Coastguard Worker /* file_com.c */
313*6a54128fSAndroid Build Coastguard Worker 
314*6a54128fSAndroid Build Coastguard Worker extern int init_file_info (void);
315*6a54128fSAndroid Build Coastguard Worker extern void type_file___show (char *command_line);
316*6a54128fSAndroid Build Coastguard Worker extern void type_file___inode (char *command_line);
317*6a54128fSAndroid Build Coastguard Worker extern void type_file___display (char *command_line);
318*6a54128fSAndroid Build Coastguard Worker extern void type_file___prev (char *command_line);
319*6a54128fSAndroid Build Coastguard Worker extern void type_file___next (char *command_line);
320*6a54128fSAndroid Build Coastguard Worker extern void type_file___offset (char *command_line);
321*6a54128fSAndroid Build Coastguard Worker extern void type_file___prevblock (char *command_line);
322*6a54128fSAndroid Build Coastguard Worker extern void type_file___nextblock (char *command_line);
323*6a54128fSAndroid Build Coastguard Worker extern void type_file___block (char *command_line);
324*6a54128fSAndroid Build Coastguard Worker extern void type_file___remember (char *command_line);
325*6a54128fSAndroid Build Coastguard Worker extern void type_file___set (char *command_line);
326*6a54128fSAndroid Build Coastguard Worker extern void type_file___writedata (char *command_line);
327*6a54128fSAndroid Build Coastguard Worker 
328*6a54128fSAndroid Build Coastguard Worker extern long file_block_to_global_block (long file_block,struct struct_file_info *file_info_ptr);
329*6a54128fSAndroid Build Coastguard Worker extern long return_indirect (long table_block,long block_num);
330*6a54128fSAndroid Build Coastguard Worker extern long return_dindirect (long table_block,long block_num);
331*6a54128fSAndroid Build Coastguard Worker extern long return_tindirect (long table_block,long block_num);
332*6a54128fSAndroid Build Coastguard Worker 
333*6a54128fSAndroid Build Coastguard Worker void file_show_hex (void);
334*6a54128fSAndroid Build Coastguard Worker void file_show_text (void);
335*6a54128fSAndroid Build Coastguard Worker void show_status (void);
336*6a54128fSAndroid Build Coastguard Worker 
337*6a54128fSAndroid Build Coastguard Worker /* inode_com.c */
338*6a54128fSAndroid Build Coastguard Worker 
339*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode___next (char *command_line);
340*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode___prev (char *command_line);
341*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode___show (char *command_line);
342*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode___group (char *command_line);
343*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode___entry (char *command_line);
344*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode___file (char *command_line);
345*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode___dir (char *command_line);
346*6a54128fSAndroid Build Coastguard Worker 
347*6a54128fSAndroid Build Coastguard Worker extern long inode_offset_to_group_num (long inode_offset);
348*6a54128fSAndroid Build Coastguard Worker extern long int inode_offset_to_inode_num (long inode_offset);
349*6a54128fSAndroid Build Coastguard Worker extern long int inode_num_to_inode_offset (long inode_num);
350*6a54128fSAndroid Build Coastguard Worker 
351*6a54128fSAndroid Build Coastguard Worker /* dir_com.c */
352*6a54128fSAndroid Build Coastguard Worker 
353*6a54128fSAndroid Build Coastguard Worker extern int init_dir_info (struct struct_file_info *info);
354*6a54128fSAndroid Build Coastguard Worker extern void type_dir___show (char *command_line);
355*6a54128fSAndroid Build Coastguard Worker extern void type_dir___inode (char *command_line);
356*6a54128fSAndroid Build Coastguard Worker extern void type_dir___pgdn (char *command_line);
357*6a54128fSAndroid Build Coastguard Worker extern void type_dir___pgup (char *command_line);
358*6a54128fSAndroid Build Coastguard Worker extern void type_dir___prev (char *command_line);
359*6a54128fSAndroid Build Coastguard Worker extern void type_dir___next (char *command_line);
360*6a54128fSAndroid Build Coastguard Worker extern void type_dir___followinode (char *command_line);
361*6a54128fSAndroid Build Coastguard Worker extern void type_dir___remember (char *command_line);
362*6a54128fSAndroid Build Coastguard Worker extern void type_dir___cd (char *command_line);
363*6a54128fSAndroid Build Coastguard Worker extern void type_dir___entry (char *command_line);
364*6a54128fSAndroid Build Coastguard Worker extern void type_dir___writedata (char *command_line);
365*6a54128fSAndroid Build Coastguard Worker extern void type_dir___set (char *command_line);
366*6a54128fSAndroid Build Coastguard Worker 
367*6a54128fSAndroid Build Coastguard Worker #define HEX 1
368*6a54128fSAndroid Build Coastguard Worker #define TEXT 2
369*6a54128fSAndroid Build Coastguard Worker 
370*6a54128fSAndroid Build Coastguard Worker #define ABORT		0
371*6a54128fSAndroid Build Coastguard Worker #define CONTINUE	1
372*6a54128fSAndroid Build Coastguard Worker #define FOUND		2
373*6a54128fSAndroid Build Coastguard Worker 
374*6a54128fSAndroid Build Coastguard Worker struct struct_file_info search_dir_entries (int (*action) (struct struct_file_info *info),int *status);
375*6a54128fSAndroid Build Coastguard Worker int action_count (struct struct_file_info *info);
376*6a54128fSAndroid Build Coastguard Worker void show_dir_status (void);
377*6a54128fSAndroid Build Coastguard Worker long count_dir_entries (void);
378*6a54128fSAndroid Build Coastguard Worker int action_name (struct struct_file_info *info);
379*6a54128fSAndroid Build Coastguard Worker int action_entry_num (struct struct_file_info *info);
380*6a54128fSAndroid Build Coastguard Worker int action_show (struct struct_file_info *info);
381*6a54128fSAndroid Build Coastguard Worker 
382*6a54128fSAndroid Build Coastguard Worker /* super_com.c */
383*6a54128fSAndroid Build Coastguard Worker 
384*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_super_block___show (char *command_line);
385*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_super_block___gocopy (char *command_line);
386*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_super_block___setactivecopy (char *command_line);
387*6a54128fSAndroid Build Coastguard Worker 
388*6a54128fSAndroid Build Coastguard Worker /* group_com.c */
389*6a54128fSAndroid Build Coastguard Worker 
390*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_group_desc___next (char *command_line);
391*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_group_desc___prev (char *command_line);
392*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_group_desc___entry (char *command_line);
393*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_group_desc___show (char *command_line);
394*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_group_desc___inode (char *command_line);
395*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_group_desc___gocopy (char *command_line);
396*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_group_desc___blockbitmap (char *command_line);
397*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_group_desc___inodebitmap (char *command_line);
398*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_group_desc___setactivecopy (char *command_line);
399*6a54128fSAndroid Build Coastguard Worker 
400*6a54128fSAndroid Build Coastguard Worker /* blockbitmap_com.c */
401*6a54128fSAndroid Build Coastguard Worker 
402*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_block_bitmap___show (char *command_line);
403*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_block_bitmap___entry (char *command_line);
404*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_block_bitmap___next (char *command_line);
405*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_block_bitmap___prev (char *command_line);
406*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_block_bitmap___allocate (char *command_line);
407*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_block_bitmap___deallocate (char *command_line);
408*6a54128fSAndroid Build Coastguard Worker void allocate_block (long entry_num);
409*6a54128fSAndroid Build Coastguard Worker void deallocate_block (long entry_num);
410*6a54128fSAndroid Build Coastguard Worker 
411*6a54128fSAndroid Build Coastguard Worker /* inodebitmap_bom.c */
412*6a54128fSAndroid Build Coastguard Worker 
413*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode_bitmap___show (char *command_line);
414*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode_bitmap___entry (char *command_line);
415*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode_bitmap___next (char *command_line);
416*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode_bitmap___prev (char *command_line);
417*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode_bitmap___allocate (char *command_line);
418*6a54128fSAndroid Build Coastguard Worker extern void type_ext2_inode_bitmap___deallocate (char *command_line);
419*6a54128fSAndroid Build Coastguard Worker void allocate_inode (long entry_num);
420*6a54128fSAndroid Build Coastguard Worker void deallocate_inode (long entry_num);
421*6a54128fSAndroid Build Coastguard Worker 
422*6a54128fSAndroid Build Coastguard Worker /* win.c */
423*6a54128fSAndroid Build Coastguard Worker 
424*6a54128fSAndroid Build Coastguard Worker extern WINDOW *title_win,*show_win,*command_win,*show_pad;
425*6a54128fSAndroid Build Coastguard Worker 
426*6a54128fSAndroid Build Coastguard Worker extern void init_windows (void);
427*6a54128fSAndroid Build Coastguard Worker extern void refresh_title_win (void);
428*6a54128fSAndroid Build Coastguard Worker extern void refresh_show_win (void);
429*6a54128fSAndroid Build Coastguard Worker extern void refresh_show_pad (void);
430*6a54128fSAndroid Build Coastguard Worker extern void refresh_command_win (void);
431*6a54128fSAndroid Build Coastguard Worker extern void show_info (void);
432*6a54128fSAndroid Build Coastguard Worker extern void redraw_all (void);
433*6a54128fSAndroid Build Coastguard Worker extern void close_windows (void);
434*6a54128fSAndroid Build Coastguard Worker 
435*6a54128fSAndroid Build Coastguard Worker #endif /* EXT2ED_EDITOR_H */
436