|
|
|
1990/03091/sys/src/9/gnot/devroot.c:16,26 –
1990/11211/sys/src/9/gnot/devroot.c:16,26
(short | long)
|
|
1990/03091
| |
};
Dirtab rootdir[]={
"bin", Qbin|CHDIR, 0, 0700,
"boot", Qboot, 0, 0700,
"dev", Qdev|CHDIR, 0, 0700,
"env", Qenv|CHDIR, 0, 0700,
"proc", Qproc|CHDIR, 0, 0700,
|
|
1990/11211
| |
"bin", {Qbin|CHDIR}, 0, 0700,
"boot", {Qboot}, 0, 0700,
"dev", {Qdev|CHDIR}, 0, 0700,
"env", {Qenv|CHDIR}, 0, 0700,
"proc", {Qproc|CHDIR}, 0, 0700,
|
|
1990/03091
| |
};
#define NROOT (sizeof rootdir/sizeof(Dirtab))
|
|
1990/03091/sys/src/9/gnot/devroot.c:68,74 –
1990/11211/sys/src/9/gnot/devroot.c:68,74
|
|
1990/03091
| |
void
rootcreate(Chan *c, char *name, int omode, ulong perm)
{
error(0, Eperm);
|
|
1990/11211
| |
error(Eperm);
|
|
1990/03091
| |
}
/*
|
|
1990/03091/sys/src/9/gnot/devroot.c:85,91 –
1990/11211/sys/src/9/gnot/devroot.c:85,91
|
|
1990/03091
| |
rootread(Chan *c, void *buf, long n)
{
switch(c->qid & ~CHDIR){
|
|
1990/11211
| |
switch(c->qid.path & ~CHDIR){
|
|
1990/03091
| |
case Qdir:
return devdirread(c, buf, n, rootdir, NROOT, devgen);
|
|
1990/03091/sys/src/9/gnot/devroot.c:100,106 –
1990/11211/sys/src/9/gnot/devroot.c:100,106
|
|
1990/03091
| |
case Qdev:
return 0;
}
error(0, Egreg);
|
|
1990/11211
| |
error(Egreg);
|
|
1990/03091
| |
return 0;
}
|
|
1990/03091/sys/src/9/gnot/devroot.c:107,140 –
1990/11211/sys/src/9/gnot/devroot.c:107,123
|
|
1990/03091
| |
long
rootwrite(Chan *c, void *buf, long n)
{
error(0, Egreg);
|
|
1990/11211
| |
error(Egreg);
|
|
1990/03091
| |
}
void
rootremove(Chan *c)
{
error(0, Eperm);
|
|
1990/11211
| |
error(Eperm);
|
|
1990/03091
| |
}
void
rootwstat(Chan *c, char *dp)
{
error(0, Eperm);
}
void
rootuserstr(Error *e, char *buf)
{
consuserstr(e, buf);
}
#include "errstr.h"
void
rooterrstr(Error *e, char *buf)
{
if(e->code<0 || e->code>=sizeof errstrtab/sizeof(char*))
strcpy(buf, "no such error");
else
strcpy(buf, errstrtab[e->code]);
|
|
1990/11211
| |
error(Eperm);
|
|
1990/03091
| |
}
|
|
|
|
1990/11211/sys/src/9/gnot/devroot.c:1,123 –
1990/1210/sys/src/9/gnot/devroot.c:0
(short | long)
|
Deleted.
rsc Mon Mar 7 10:21:43 2005
|
|
1990/03091
| |
#include "u.h"
#include "lib.h"
#include "mem.h"
#include "dat.h"
#include "fns.h"
#include "errno.h"
#include "devtab.h"
enum{
Qdir,
Qbin,
Qboot,
Qdev,
Qenv,
Qproc,
};
Dirtab rootdir[]={
|
|
1990/11211
| |
"bin", {Qbin|CHDIR}, 0, 0700,
"boot", {Qboot}, 0, 0700,
"dev", {Qdev|CHDIR}, 0, 0700,
"env", {Qenv|CHDIR}, 0, 0700,
"proc", {Qproc|CHDIR}, 0, 0700,
|
|
1990/03091
| |
};
#define NROOT (sizeof rootdir/sizeof(Dirtab))
void
rootreset(void)
{
}
void
rootinit(void)
{
}
Chan*
rootattach(char *spec)
{
return devattach('/', spec);
}
Chan*
rootclone(Chan *c, Chan *nc)
{
return devclone(c, nc);
}
int
rootwalk(Chan *c, char *name)
{
return devwalk(c, name, rootdir, NROOT, devgen);
}
void
rootstat(Chan *c, char *dp)
{
devstat(c, dp, rootdir, NROOT, devgen);
}
Chan*
rootopen(Chan *c, int omode)
{
return devopen(c, omode, rootdir, NROOT, devgen);
}
void
rootcreate(Chan *c, char *name, int omode, ulong perm)
{
|
|
1990/11211
| |
error(Eperm);
|
|
1990/03091
| |
}
/*
* sysremove() knows this is a nop
*/
void
rootclose(Chan *c)
{
}
#include "boot.h"
long
rootread(Chan *c, void *buf, long n)
{
|
|
1990/11211
| |
switch(c->qid.path & ~CHDIR){
|
|
1990/03091
| |
case Qdir:
return devdirread(c, buf, n, rootdir, NROOT, devgen);
case Qboot: /* boot */
if(c->offset >= sizeof bootcode)
return 0;
if(c->offset+n > sizeof bootcode)
n = sizeof bootcode - c->offset;
memcpy(buf, ((char*)bootcode)+c->offset, n);
return n;
case Qdev:
return 0;
}
|
|
1990/11211
| |
error(Egreg);
|
|
1990/03091
| |
return 0;
}
long
rootwrite(Chan *c, void *buf, long n)
{
|
|
1990/11211
| |
error(Egreg);
|
|
1990/03091
| |
}
void
rootremove(Chan *c)
{
|
|
1990/11211
| |
error(Eperm);
|
|
1990/03091
| |
}
void
rootwstat(Chan *c, char *dp)
{
|
|
1990/11211
| |
error(Eperm);
|
|
1990/03091
| |
}
|