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

1990/06021/gnot/main.c (diff list | history)

1990/05313/sys/src/9/gnot/main.c:17,221990/06021/sys/src/9/gnot/main.c:17,23 (short | long | prev | next)
1990/0312    
#define BOOT ((Boot*)0) 
 
char protouser[NAMELEN]; 
1990/06021    
int bank[2]; 
1990/0312    
 
void unloadboot(void); 
 
1990/05313/sys/src/9/gnot/main.c:27,331990/06021/sys/src/9/gnot/main.c:28,36
1990/03091    
	machinit(); 
	mmuinit(); 
	confinit(); 
1990/06021    
	kmapinit(); 
1990/03091    
	printinit(); 
1990/06021    
	print("bank 0: %dM  bank 1: %dM\n", bank[0], bank[1]); 
1990/03091    
	flushmmu(); 
	procinit0(); 
	pgrpinit(); 
1990/05313/sys/src/9/gnot/main.c:36,411990/06021/sys/src/9/gnot/main.c:39,45
1990/03091    
	chandevreset(); 
1990/0310    
	streaminit(); 
1990/03091    
	pageinit(); 
1990/06021    
	kmapinit(); 
1990/03091    
	userinit(); 
	schedinit(); 
} 
1990/05313/sys/src/9/gnot/main.c:102,1071990/06021/sys/src/9/gnot/main.c:106,112
1990/03091    
	Proc *p; 
	Seg *s; 
	User *up; 
1990/06021    
	KMap *k; 
1990/03091    
 
	p = newproc(); 
	p->pgrp = newpgrp(); 
1990/05313/sys/src/9/gnot/main.c:121,1281990/06021/sys/src/9/gnot/main.c:126,135
1990/03091    
	/* 
	 * User 
	 */ 
	up = (User*)(p->upage->pa|KZERO); 
1990/06021    
	k = kmap(p->upage); 
	up = (User*)k->va; 
1990/03091    
	up->p = p; 
1990/06021    
	kunmap(k); 
1990/03091    
 
	/* 
	 * User Stack 
1990/05313/sys/src/9/gnot/main.c:140,1461990/06021/sys/src/9/gnot/main.c:147,155
1990/03091    
	s->proc = p; 
	s->o = neworig(UTZERO, 1, 0, 0); 
	s->o->pte[0].page = newpage(0, 0, UTZERO); 
	memcpy((ulong*)(s->o->pte[0].page->pa|KZERO), initcode, sizeof initcode); 
1990/06021    
	k = kmap(s->o->pte[0].page); 
	memcpy((ulong*)k->va, initcode, sizeof initcode); 
	kunmap(k); 
1990/03091    
	s->minva = UTZERO; 
	s->maxva = UTZERO+BY2PG; 
 
1990/05313/sys/src/9/gnot/main.c:225,2301990/06021/sys/src/9/gnot/main.c:234,264
1990/03091    
	where->next = old->next; 
} 
 
1990/06021    
banksize(int base) 
{ 
	ulong va; 
 
	if(&end > (int *)((KZERO|1024L*1024L)-BY2PG)) 
		return 0; 
	va = UZERO;	/* user page 1 is free to play with */ 
	putmmu(va, PTEVALID|(base+0)*1024L*1024L/BY2PG); 
	*(ulong*)va=0;	/* 0 at 0M */ 
	putmmu(va, PTEVALID|(base+1)*1024L*1024L/BY2PG); 
	*(ulong*)va=1;	/* 1 at 1M */ 
	putmmu(va, PTEVALID|(base+4)*1024L*1024L/BY2PG); 
	*(ulong*)va=4;	/* 4 at 4M */ 
	putmmu(va, PTEVALID|(base+0)*1024L*1024L/BY2PG); 
	if(*(ulong*)va==0) 
		return 16; 
	putmmu(va, PTEVALID|(base+1)*1024L*1024L/BY2PG); 
	if(*(ulong*)va==1) 
		return 4; 
	putmmu(va, PTEVALID|(base+4)*1024L*1024L/BY2PG); 
	if(*(ulong*)va==2) 
		return 1; 
	return 0; 
} 
 
1990/03091    
Conf	conf; 
 
void 
1990/05313/sys/src/9/gnot/main.c:233,2411990/06021/sys/src/9/gnot/main.c:267,281
1990/03091    
	conf.nmach = 1; 
	if(conf.nmach > MAXMACH) 
		panic("confinit"); 
1990/0320    
	conf.nproc = 32; 
1990/06021    
	conf.nproc = 40; 
1990/03091    
	conf.npgrp = 15; 
1990/0320    
	conf.npage = (4*1024*1024-256*1024)/BY2PG; 
1990/06021    
	bank[0] = banksize(0); 
	bank[1] = banksize(16); 
	conf.npage0 = (bank[0]*1024*1024)/BY2PG; 
	conf.base0 = 0; 
	conf.npage1 = (bank[1]*1024*1024)/BY2PG; 
	conf.base1 = 16*1024*1024; 
	conf.npage = conf.npage0+conf.npage1; 
1990/03091    
	conf.npte = 500; 
1990/05313    
	conf.nmod = 200; 
1990/0312    
	conf.nalarm = 1000; 


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