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

1990/0801/port/page.c (diff list | history)

1990/0728/sys/src/9/port/page.c:251,2561990/0801/sys/src/9/port/page.c:251,290 (short | long | prev | next)
1990/0227    
		unlock(&palloc); 
} 
 
1990/0801    
/* 
 * Move page to tail of list 
 */ 
void 
unusepage(Page *p, int dolock) 
{ 
return; 
	if(dolock) 
		lock(&palloc); 
	/* 
	 * Unlink 
	 */ 
	if(p->prev) 
		p->prev->next = p->next; 
	else 
		palloc.head = p->next; 
	if(p->next) 
		p->next->prev = p->prev; 
	else 
		palloc.tail = p->prev; 
	/* 
	 * Link 
	 */ 
	p->prev = palloc.tail; 
	p->next = 0; 
	if(p->prev) 
		p->prev->next = p; 
	else 
		palloc.head = p; 
	palloc.tail = p; 
	if(dolock) 
		unlock(&palloc); 
} 
 
1990/0227    
Orig* 
lookorig(ulong va, ulong npte, int flag, Chan *c) 
{ 
1990/0728/sys/src/9/port/page.c:493,4991990/0801/sys/src/9/port/page.c:527,533
1990/0227    
 
	if(max < min) 
		return 0; 
1990/0720    
if(max > 20*1024*1024) pprint("segaddr %lux\n", max); 
1990/0801    
if(max > 20*1024*1024) {pprint("segaddr %lux\n", max);print("segaddr %lux\n", max);} 
1990/0227    
	if(min != s->minva)	/* can't grow down yet (stacks: fault.c) */ 
		return 0; 
	max = (max+(BY2PG-1)) & ~(BY2PG-1); 
1990/0728/sys/src/9/port/page.c:531,5361990/0801/sys/src/9/port/page.c:565,571
1990/0227    
	for(i=0; i<o->npte; i++,pte++) 
		if(pg = pte->page){	/* assign = */ 
			if(pg->ref == 1){ 
1990/0801    
				unusepage(pg, 1); 
1990/0227    
				pte->page = 0; 
				pg->o = 0; 
			} 


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