plan 9 kernel history: overview | file list | diff list

1999/0610/mpc/devsac.c (diff list | history)

1999/0609/sys/src/9/mpc/devsac.c:98,1041999/0610/sys/src/9/mpc/devsac.c:98,103 (short | long | prev | next)
1999/0608    
		return; 
	} 
	blocksize = getl(hdr->blocksize); 
1999/0609    
print("blocksize = %d\n", blocksize); 
1999/0608    
	root.SacDir = *(SacDir*)(data + sizeof(SacHeader)); 
} 
 
1999/0609/sys/src/9/mpc/devsac.c:137,1431999/0610/sys/src/9/mpc/devsac.c:136,143
1999/0608    
	Sac *sac; 
1999/0609    
	Path *op; 
1999/0608    
 
1999/0609    
print("sacwalk\n"); 
1999/0610    
//print("walk %s\n", name); 
 
1999/0608    
	isdir(c); 
1999/0609    
	if(name[0]=='.' && name[1]==0) 
1999/0608    
		return 1; 
1999/0609/sys/src/9/mpc/devsac.c:150,1561999/0610/sys/src/9/mpc/devsac.c:150,155
1999/0608    
	c->aux = sac; 
	c->qid = (Qid){getl(sac->qid), 0}; 
	op = c->path; 
1999/0609    
print("op=%ux name = %s\n", op, name); 
1999/0608    
	c->path = ptenter(&syspt, op, name); 
	decref(op); 
	return 1; 
1999/0609/sys/src/9/mpc/devsac.c:199,2061999/0610/sys/src/9/mpc/devsac.c:198,205
1999/0609    
			error("i/o error"); 
		return sacdirread(c, buf, off, cnt); 
1999/0608    
	} 
1999/0609    
print("data read\n"); 
	sac = c->aux; 
1999/0610    
//print("sacread: %s %llx %d\n", sac->name, off, n); 
1999/0608    
	length = getv(sac->length); 
1999/0609    
	if(off >= length) 
1999/0608    
		return 0; 
1999/0609/sys/src/9/mpc/devsac.c:221,2261999/0610/sys/src/9/mpc/devsac.c:220,226
1999/0609    
		memmove(buf, buf2+j, nn); 
		cnt -= nn; 
		off += nn; 
1999/0610    
		buf += nn; 
1999/0608    
	} 
	free(buf2); 
1999/0609    
	return n; 
1999/0609/sys/src/9/mpc/devsac.c:237,2431999/0610/sys/src/9/mpc/devsac.c:237,242
1999/0609    
sacclose(Chan* c) 
1999/0608    
{ 
1999/0609    
	Sac *sac = c->aux; 
print("close %ux\n", sac); 
	c->aux = nil; 
	sacfree(sac); 
1999/0608    
} 
1999/0609/sys/src/9/mpc/devsac.c:255,2611999/0610/sys/src/9/mpc/devsac.c:254,259
1999/0608    
	Sac *ss; 
	 
	ss = malloc(sizeof(Sac)); 
1999/0609    
print("saccpy = %ux\n", ss); 
1999/0608    
	*ss = *s; 
	if(ss->path) 
		incref(ss->path); 
1999/0609/sys/src/9/mpc/devsac.c:324,3341999/0610/sys/src/9/mpc/devsac.c:322,330
1999/0608    
		if(n < 0) 
			n = -n; 
		n -= block; 
1999/0609    
print("blocksize = %d, block = %lld n = %lld\n", blocksize, block, n); 
1999/0608    
		if(unsac(buf, data+block, blocksize, n)<0) 
			panic("unsac failed!"); 
	} else { 
1999/0609    
print("memmove: blocksize = %d\n", blocksize); 
1999/0608    
		memmove(buf, data+block, blocksize); 
	} 
} 
1999/0609/sys/src/9/mpc/devsac.c:349,3551999/0610/sys/src/9/mpc/devsac.c:345,350
1999/0608    
	} 
	p = p->up; 
 
1999/0609    
print("sacparent = %lld %d\n", p->blocks, p->entry); 
1999/0608    
	blocks = data + p->blocks; 
	per = blocksize/sizeof(SacDir); 
	i = p->entry/per; 
1999/0609/sys/src/9/mpc/devsac.c:356,3621999/0610/sys/src/9/mpc/devsac.c:351,356
1999/0608    
	buf = malloc(per*sizeof(SacDir)); 
	loadblock(buf, blocks + i*8, per*sizeof(SacDir)); 
	s->SacDir = buf[p->entry-i*per]; 
1999/0609    
print("sacparent = %s\n", s->name); 
1999/0608    
	free(buf); 
	incref(p); 
1999/0609    
	sacpathfree(s->path); 
1999/0609/sys/src/9/mpc/devsac.c:372,3781999/0610/sys/src/9/mpc/devsac.c:366,371
1999/0608    
	int iblock, per, i, j, ndir; 
1999/0609    
	Sac *s; 
1999/0608    
 
1999/0609    
print("sacdirread %d %d\n", off, cnt); 
	s = c->aux; 
1999/0608    
	blocks = data + getv(s->blocks); 
	per = blocksize/sizeof(SacDir); 
1999/0609/sys/src/9/mpc/devsac.c:428,4341999/0610/sys/src/9/mpc/devsac.c:421,426
1999/0608    
		sd = buf+i-j; 
		k = strcmp(name, sd->name); 
		if(k == 0) { 
1999/0609    
print("walk %s %lld %d\n", name, getv(s->blocks), i); 
		s->path = sacpathalloc(s->path, getv(s->blocks), i); 
1999/0608    
			s->SacDir = *sd; 
			free(buf); 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)