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