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