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

1992/0315/port/page.c (diff list | history)

1992/0313/sys/src/9/port/page.c:17,231992/0315/sys/src/9/port/page.c:17,24 (short | long | prev | next)
1991/0705    
	int	pages; 
}ptealloclk; 
1990/0227    
 
1991/0705    
extern long end; 
1992/0315    
extern	long end; 
ulong	hiaddr; 
1991/0705    
static Lock pglock; 
1990/0227    
 
1991/0705    
/* Multiplex a hardware lock for per page manipulations */ 
1992/0313/sys/src/9/port/page.c:63,761992/0315/sys/src/9/port/page.c:64,69
1992/0313    
Region region[Nregion]; 
 
 
1990/0227    
/* 
1991/0802    
 *  Called to allocate permanent data structures, before calling pageinit(). 
 *  We assume all of text+data+bss is in the first memory bank. 
1992/0313    
 * 
 *  alignment is in number of bytes 
 * 
 *  WARNING: You can't cross a crevasse! 
1990/0227    
 */ 
1992/0313    
void 
addsplit(Region *r, ulong start, ulong end) 
{ 
1992/0313/sys/src/9/port/page.c:99,1041992/0315/sys/src/9/port/page.c:92,108
1992/0313    
		} 
	} 
} 
1992/0315    
 
/* 
 *  Called to allocate permanent data structures, before calling pageinit(). 
 *  We assume all of text+data+bss is in the first memory bank. 
 * 
 *  alignment is in number of bytes.  It pretains both to the start and 
 *  end of the allocated memory. 
 * 
 *  If crevasse is specified, no allocation can span an address that is 
 *  a multiple of crevasse. 
 */ 
1990/0227    
void* 
1992/0313    
iallocspan(ulong n, int align, ulong crevasse) 
1990/0227    
{ 
1992/0313/sys/src/9/port/page.c:131,1371992/0315/sys/src/9/port/page.c:135,141
1991/0606    
 
1992/0313    
	p = 0; 
	for(r = region; r < ®ion[Nregion]; r++){ 
		/* allign region */ 
1992/0315    
		/* align region */ 
1992/0313    
		p = r->start; 
		if(align){ 
			m = p % align; 


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