home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 2
/
crawlyvol2.bin
/
alt_os
/
mint
/
mfs6011
/
source
/
minixfs
/
dummyfs.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-11-25
|
3KB
|
217 lines
/*
* This file contains a 'dummy' filesystem; which does almost nothing. In fact
* all it does do is to allow changes to call the 'real' m_root.
* Why have such a thing you may ask? Two reasons, firstly if a minix filesystem
* on the disk is inaccesible for some reason (directory increment too big for
* example) then minixfs shouldn't touch it; however we don't want it sent to
* other filesystems where it could get trashed. The second case is for physical
* partitions: minit has to have some way of finding out the currently invalid
* partition's parameters.
*/
#include "minixfs.h"
#include "proto.h"
#include "global.h"
FILESYS dummy_filesys = {
(FILESYS *) 0,0,
m_root, no_lookup, no_creat, no_getdev,
no_getxattr, no_chattr, no_chown,
no_chmode, no_mkdir,
no_rmdir, no_remove, no_getname,
no_rename, no_opendir, no_readdir,
no_rewinddir, no_closedir,
no_pathconf, no_dfree,
no_wlabel, no_rlabel,
no_symlink, no_readlink,
no_hardlink, dummy_fscntl, m_dskchng,
m_release,m_dupcookie
};
long no_lookup(dir,name,entry)
fcookie *dir;
char *name;
fcookie *entry;
{
return EFILNF;
}
long no_creat(dir,name,mode,attr,entry)
fcookie *dir;
char *name;
unsigned mode;
int attr;
fcookie *entry;
{
return EACCDN;
}
DEVDRV * no_getdev(file,special)
fcookie *file;
long *special;
{
*special=EINVFN;
return NULL;
}
long no_getxattr(file,xattr)
fcookie *file;
XATTR *xattr;
{
return EACCDN;
}
long no_chown(file, uid , gid)
fcookie *file;
int uid,gid;
{
return EINVFN;
}
long no_chmode(file, mode)
fcookie *file;
unsigned mode;
{
return EINVFN;
}
long no_mkdir(dir,name,mode)
fcookie *dir;
char *name;
unsigned mode;
{
return EACCDN;
}
long no_rmdir(dir,name)
fcookie *dir;
char *name;
{
return EACCDN;
}
long no_remove(dir,name)
fcookie *dir;
char *name;
{
return EACCDN;
}
long no_getname(root,dir,pathname,length)
fcookie *root,*dir;
char *pathname;
short length;
{
return EACCDN;
}
long no_opendir(dirh,flag)
DIR *dirh;
int flag;
{
return 0;
}
long no_readdir(dirh,name,namelen,fc)
DIR *dirh;
char *name;
int namelen;
fcookie *fc;
{
return ENMFIL;
}
long no_rewinddir(dirh)
DIR *dirh;
{
return 0;
}
long no_closedir(dirh)
DIR *dirh;
{
return 0;
}
long no_rlabel(dir,name,namelen)
fcookie *dir;
char *name;
int namelen;
{
return EFILNF;
}
long no_wlabel(dir,name)
fcookie *dir;
char *name;
{
return EACCDN;
}
long no_dfree(dir,buffer)
fcookie *dir;
long *buffer;
{
return EINVFN;
}
long dummy_fscntl(dir,name,cmd,arg)
fcookie *dir;
char *name;
int cmd;
long arg;
{
if(cmd!=MFS_PHYS) return EINVFN;
return m_fscntl(dir,name,cmd,arg);
}
long no_rename(olddir,oldname,newdir,newname)
fcookie *olddir;
char *oldname;
fcookie *newdir;
char *newname;
{
return EACCDN;
}
long no_hardlink(fromdir,fromname,todir,toname)
fcookie *fromdir;
char *fromname;
fcookie *todir;
char *toname;
{
return EINVFN;
}
long no_symlink(dir,name,to)
fcookie *dir;
char *name;
char *to;
{
return EINVFN;
}
long no_readlink(file,buf,len)
fcookie *file;
char *buf;
int len;
{
return EINVFN;
}
long no_chattr(file,attr)
fcookie *file;
int attr;
{
return EFILNF;
}
long no_pathconf(dir,which)
fcookie *dir;
int which;
{
return EINVFN;
}