~kris/9p

9hist

031877d8bb49caa8e3ed5bae8867c963f033eb0c — David du Colombier 26 years ago ed9c354
Plan 9 from Bell Labs 2000-01-26
2 files changed, 18 insertions(+), 7 deletions(-)

M ip/devip.c
M ip/ipifc.c
M ip/devip.c => ip/devip.c +16 -5
@@ 127,6 127,10 @@ ip1gen(Chan *c, int i, Dir *dp)
	Qid q;
	char *p;
	int prot;
	int len = 0;
	Fs *f;

	f = ipfs[c->dev];

	prot = 0666;
	switch(i) {


@@ 143,6 147,7 @@ ip1gen(Chan *c, int i, Dir *dp)
	case Qndb:
		p = "ndb";
		q = (Qid){QID(0, 0, Qndb), 0};
		len = strlen(f->ndb);
		break;
	case Qiproute:
		p = "iproute";


@@ 162,7 167,7 @@ ip1gen(Chan *c, int i, Dir *dp)
		q = (Qid){QID(0, 0, Qlog), 0};
		break;
	}
	devdir(c, q, p, 0, network, prot, dp);
	devdir(c, q, p, len, network, prot, dp);
	return 1;
}



@@ 350,6 355,12 @@ ipopen(Chan* c, int omode)
	switch(TYPE(c->qid)) {
	default:
		break;
	case Qndb:
		if(omode & (OWRITE|OTRUNC) && !iseve())
			error(Eperm);
		if((omode & (OWRITE|OTRUNC)) == (OWRITE|OTRUNC))
			f->ndb[0] = 0;
		break;
	case Qlog:
		netlogopen(f);
		break;


@@ 1220,11 1231,11 @@ Fsnewcall(Conv *c, uchar *raddr, ushort rport, uchar *laddr, ushort lport)
long
ndbwrite(Fs *f, char *a, ulong off, int n)
{
	if(off != 0)
	if(off > strlen(f->ndb))
		error(Eio);
	if(n >= sizeof(f->ndb))
	if(off+n >= sizeof(f->ndb))
		error(Eio);
	memmove(f->ndb, a, n);
	f->ndb[n] = 0;
	memmove(f->ndb+off, a, n);
	f->ndb[off+n] = 0;
	return n;
}

M ip/ipifc.c => ip/ipifc.c +2 -2
@@ 10,14 10,14 @@
#define DPRINT if(0)print

enum {
	Maxmedia	= 16,
	Maxmedia	= 32,
	Nself		= Maxmedia*5,
	NHASH		= (1<<6),
	NCACHE		= 256,
	QMAX		= 64*1024-1,
};

Medium *media[32] =
Medium *media[Maxmedia] =
{
	0
};