readfs.c File Reference

#include <sys/types.h>
#include <sys/dir.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <limits.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <utime.h>
#include <dirent.h>
#include <minix/config.h>
#include <minix/const.h>
#include <minix/type.h>
#include "../../servers/fs/const.h"
#include "../../servers/fs/type.h"
#include "../../servers/fs/buf.h"
#include "../../servers/fs/super.h"
#include <stdio.h>

Include dependency graph for readfs.c:

Go to the source code of this file.

Data Structures

struct  cache_block

Defines

#define BLOCK_SIZE   _STATIC_BLOCK_SIZE
#define zone_shift   (sb.s_log_zone_size)
#define B_INODE   0
#define B_INDIRECT   1
#define B_DATA   2
#define NR_CACHES   2
#define NR_CBLOCKS   5
#define INDENT_SIZE   4

Functions

 _PROTOTYPE (int main,(int argc, char **argv))
 _PROTOTYPE (void get_flags,(char *flags))
 _PROTOTYPE (void readfs,(char *special_file, char *directory))
 _PROTOTYPE (int get_inode,(int fd, Ino_t inum, d1_inode *ip))
 _PROTOTYPE (void dump_dir,(int special, d1_inode *ip, char *directory))
 _PROTOTYPE (int dump_file,(int special, d1_inode *ip, char *filename))
 _PROTOTYPE (int get_fileblock,(int special, d1_inode *ip, block_t b, struct buf *bp))
 _PROTOTYPE (int get_block,(int fd, block_t block, struct buf *bp, int type))
 _PROTOTYPE (int get_rawblock,(int special, block_t blockno, char *bufp))
 _PROTOTYPE (void restore,(char *name, d1_inode *ip))
 _PROTOTYPE (void show_info,(char *name, d1_inode *ip, char *path))
 _PROTOTYPE (void do_indent,(int i))
 _PROTOTYPE (int Mkdir,(char *directory))
int main (int argc, char **argv)
void get_flags (char *flags)
void readfs (char *special_file, char *directory)
int get_inode (int fd, ino_t inum, d1_inode *ip)
void dump_dir (int special, d1_inode *ip, char *directory)
int dump_file (int special, d1_inode *ip, char *filename)
int get_fileblock (int special, d1_inode *ip, block_t b, struct buf *bp)
int get_block (int fd, block_t block, struct buf *bp, int type)
int get_rawblock (int special, block_t blockno, char *bufp)
void restore (char *name, d1_inode *ip)
void show_info (char *name, d1_inode *ip, char *path)
void do_indent (int i)
int Mkdir (char *directory)

Variables

char verbose = 0
char noaction = 0
char nofiles = 0
super_block sb
char pathname [1024]
int inodes_per_block
static int indent = 0
static struct cache_block cache [NR_CACHES][NR_CBLOCKS]
static long counter = 0L
static char special_chars []


Define Documentation

#define B_DATA   2
 

Definition at line 201 of file readfs.c.

Referenced by get_fileblock().

#define B_INDIRECT   1
 

Definition at line 200 of file readfs.c.

Referenced by get_fileblock().

#define B_INODE   0
 

Definition at line 199 of file readfs.c.

Referenced by get_inode().

#define BLOCK_SIZE   _STATIC_BLOCK_SIZE
 

Definition at line 39 of file readfs.c.

#define INDENT_SIZE   4
 

Definition at line 575 of file readfs.c.

Referenced by do_indent().

#define NR_CACHES   2
 

Definition at line 434 of file readfs.c.

Referenced by get_block().

#define NR_CBLOCKS   5
 

Definition at line 435 of file readfs.c.

Referenced by get_block().

#define zone_shift   (sb.s_log_zone_size)
 

Definition at line 137 of file readfs.c.


Function Documentation

_PROTOTYPE int  Mkdir,
(char *directory
 

_PROTOTYPE void  do_indent,
(int i
 

_PROTOTYPE void  show_info,
(char *name, d1_inode *ip, char *path) 
 

_PROTOTYPE void  restore,
(char *name, d1_inode *ip) 
 

_PROTOTYPE int  get_rawblock,
(int special, block_t blockno, char *bufp) 
 

_PROTOTYPE int  get_block,
(int fd, block_t block, struct buf *bp, int type
 

_PROTOTYPE int  get_fileblock,
(int special, d1_inode *ip, block_t b, struct buf *bp
 

_PROTOTYPE int  dump_file,
(int special, d1_inode *ip, char *filename) 
 

_PROTOTYPE void  dump_dir,
(int special, d1_inode *ip, char *directory
 

_PROTOTYPE int  get_inode,
(int fd, Ino_t inum, d1_inode *ip) 
 

_PROTOTYPE void  readfs,
(char *special_file, char *directory
 

_PROTOTYPE void  get_flags,
(char *flags
 

_PROTOTYPE int  main,
(int argc, char **argv) 
 

void do_indent int  i  ) 
 

Definition at line 577 of file readfs.c.

References INDENT_SIZE, and putchar.

Referenced by show_info().

void dump_dir int  special,
d1_inode ip,
char *  directory
 

Definition at line 236 of file readfs.c.

References b, bp, chdir, directory(), fprintf(), get_fileblock(), int(), buf::ip, Mkdir, noaction, show_info(), stderr, and verbose.

Referenced by readfs().

int dump_file int  special,
d1_inode ip,
char *  filename
 

Definition at line 310 of file readfs.c.

References access, ALL_MODES, b, BLOCK_SIZE, bp, close, creat, fprintf(), get_fileblock(), I_REGULAR, I_TYPE, buf::ip, noaction, nofiles, restore(), show_info(), size, stderr, verbose, and write.

int get_block int  fd,
block_t  block,
struct buf bp,
int  type
 

Definition at line 441 of file readfs.c.

References cache_block::b_block, bp, cache, cp, fprintf(), get_rawblock(), i, NO_ZONE, NR_CACHES, NR_CBLOCKS, and stderr.

int get_fileblock int  special,
d1_inode ip,
block_t  b,
struct buf bp
 

Definition at line 363 of file readfs.c.

References B_DATA, B_INDIRECT, bp, get_block(), int(), buf::ip, r, V1_INDIRECTS, V1_NR_DZONES, z, and zone_shift.

Referenced by dump_dir(), and dump_file().

void get_flags char *  flags  ) 
 

Definition at line 115 of file readfs.c.

References fprintf(), noaction, nofiles, stderr, and verbose.

Referenced by main().

int get_inode int  fd,
ino_t  inum,
d1_inode ip
 

Definition at line 203 of file readfs.c.

References B_INODE, bp, get_block(), inodes_per_block, buf::ip, memcpy(), super_block::s_imap_blocks, super_block::s_zmap_blocks, and sb.

int get_rawblock int  special,
block_t  blockno,
char *  bufp
 

Definition at line 490 of file readfs.c.

References BLOCK_SIZE, fprintf(), lseek, pos, read, SEEK_SET, and stderr.

Referenced by get_block().

int main int  argc,
char **  argv
 

Definition at line 82 of file readfs.c.

References exit(), fprintf(), get_flags(), readfs(), stderr, and strcpy().

int Mkdir char *  directory  ) 
 

Definition at line 584 of file readfs.c.

References execl, exit(), fork, pid, status, and wait.

void readfs char *  special_file,
char *  directory
 

Definition at line 139 of file readfs.c.

References BLOCK_SIZE, dump_dir(), fprintf(), get_inode(), inodes_per_block, lseek, magic, O_RDONLY, open, printf, read, ROOT_INODE, sb, SEEK_SET, special(), stderr, SUPER_MAGIC, SUPER_REV, SUPER_V2, umask, V1_INODES_PER_BLOCK, V2_INODES_PER_BLOCK, verbose, and zone_shift.

Referenced by main().

void restore char *  name,
d1_inode ip
 

Definition at line 511 of file readfs.c.

References ALL_MODES, chmod, chown, d1_inode::d1_gid, d1_inode::d1_mode, d1_inode::d1_mtime, d1_inode::d1_uid, and utime.

void show_info char *  name,
d1_inode ip,
char *  path
 

Definition at line 536 of file readfs.c.

References ALL_MODES, BLOCK_SIZE, d1_inode::d1_gid, d1_inode::d1_mode, d1_inode::d1_size, d1_inode::d1_uid, d1_inode::d1_zone, do_indent(), I_BLOCK_SPECIAL, I_CHAR_SPECIAL, I_DIRECTORY, I_SET_GID_BIT, I_SET_UID_BIT, I_TYPE, MAJOR, MINOR, printf, putchar, and RWX_MODES.

Referenced by dump_dir(), and dump_file().


Variable Documentation

struct cache_block cache[NR_CACHES][NR_CBLOCKS] [static]
 

Definition at line 437 of file readfs.c.

long counter = 0L [static]
 

Definition at line 438 of file readfs.c.

Referenced by rl_check_ints().

int indent = 0 [static]
 

Definition at line 234 of file readfs.c.

int inodes_per_block
 

Definition at line 66 of file readfs.c.

char noaction = 0
 

Definition at line 60 of file readfs.c.

Referenced by dump_dir(), dump_file(), and get_flags().

char nofiles = 0
 

Definition at line 62 of file readfs.c.

Referenced by dump_file(), and get_flags().

char pathname[1024]
 

Definition at line 65 of file readfs.c.

struct super_block sb
 

Definition at line 64 of file readfs.c.

char special_chars[] [static]
 

Initial value:

 {
                       '-',     
                       'c',     
                       'd',     
                       'b'      
}

Definition at line 529 of file readfs.c.

char verbose = 0
 

Definition at line 58 of file readfs.c.


Generated on Fri Apr 14 23:07:19 2006 for minix by  doxygen 1.4.6