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

1992/1104/port/segment.c (diff list | history)

1992/1104/sys/src/9/port/segment.c:335,3401992/1206/sys/src/9/port/segment.c:335,341 (short | long | prev | next)
1991/0705    
	if(newtop < s->top) { 
		mfreeseg(s, newtop, (s->top-newtop)/BY2PG); 
		qunlock(&s->lk); 
1992/1206    
		flushmmu(); 
1991/0705    
		return 0; 
	} 
 
1992/1104/sys/src/9/port/segment.c:371,3941992/1206/sys/src/9/port/segment.c:372,395
1991/0705    
 
	for(i = soff/PTEMAPMEM; i < SEGMAPSIZE; i++) { 
		if(pages <= 0)  
			goto done; 
		if(s->map[i]) { 
			while(j < PTEPERTAB) { 
				if(pg = s->map[i]->pages[j]) { 
					putpage(pg); 
					s->map[i]->pages[j] = 0;	 
				} 
				if(--pages == 0) 
					goto done; 
				j++; 
1992/1206    
			break; 
		if(s->map[i] == 0) { 
			pages -= PTEPERTAB-j; 
			j = 0; 
			continue; 
		} 
		while(j < PTEPERTAB) { 
			pg = s->map[i]->pages[j]; 
			if(pg) { 
				putpage(pg); 
				s->map[i]->pages[j] = 0;	 
1991/0705    
			} 
1992/1206    
			if(--pages == 0) 
				return; 
			j++; 
1991/0705    
		} 
		else 
1991/0726    
			pages -= PTEPERTAB-j; 
		j = 0; 
1991/0705    
	} 
done: 
	flushmmu(); 
} 
 
ulong 
1992/1104/sys/src/9/port/segment.c:407,4141992/1206/sys/src/9/port/segment.c:408,414
1991/0705    
	vmemchr(name, 0, ~0); 
 
	for(sno = 0; sno < NSEG; sno++) 
1992/0307    
		if(u->p->seg[sno] == 0) 
		if(sno != ESEG) 
1992/1206    
		if(u->p->seg[sno] == 0 && sno != ESEG) 
1991/0705    
			break; 
 
	if(sno == NSEG) 


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