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

1993/0904/carrera/main.c (diff list | history)

1993/0903/sys/src/9/carrera/main.c:34,401993/0904/sys/src/9/carrera/main.c:34,39 (short | long | prev | next)
1993/0903    
void 
main(void) 
{ 
	*(uchar*)(Uart0) = '*'; 
	tlbinit();		/* Very early to establish IO mappings */ 
	ioinit(); 
	arginit(); 
1993/0903/sys/src/9/carrera/main.c:46,531993/0904/sys/src/9/carrera/main.c:45,54
1993/0903    
	kmapinit(); 
	xinit(); 
	printinit(); 
	NS16552setup(Uart0, UartFREQ); 
1993/0904    
 
	NS16552setup(Uart1, UartFREQ); 
1993/0903    
	NS16552special(0, 9600, &kbdq, &printq, kbdcr2nl); 
1993/0904    
 
1993/0903    
	vecinit(); 
	iprint("\n\nBrazil\n"); 
	pageinit(); 
1993/0903/sys/src/9/carrera/main.c:60,661993/0904/sys/src/9/carrera/main.c:61,66
1993/0903    
	schedinit(); 
} 
 
                 
/* 
 *  copy arguments passed by the boot kernel (or ROM) into a temporary buffer. 
 *  we do this because the arguments are in memory that may be allocated 
1993/0903/sys/src/9/carrera/main.c:72,781993/0904/sys/src/9/carrera/main.c:72,79
1993/0903    
{ 
	char	*name; 
	char	*val; 
}bootenv[] = { 
1993/0904    
}bootenv[] = 
{ 
1993/0903    
	{"netaddr=",	sysname}, 
	{"console=",	consname}, 
	{"bootdisk=",	bootdisk}, 
1993/0903/sys/src/9/carrera/main.c:141,1461993/0904/sys/src/9/carrera/main.c:142,148
1993/0903    
 
	n = m->machno; 
	m->stb = &stlb[n][0]; 
1993/0904    
 
1993/0903    
	clockinit(); 
} 
 
1993/0903/sys/src/9/carrera/main.c:152,1601993/0904/sys/src/9/carrera/main.c:154,172
1993/0903    
{ 
	ulong phys; 
 
1993/0904    
	/* 
	 * Map devices 
	 */ 
1993/0903    
	phys = PPN(Devicephys)|PTEGLOBL|PTEVALID|PTEWRITE|PTEUNCACHED; 
1993/0904    
	puttlbx(1, Devicevirt, phys, PTEGLOBL, PGSZ64K); 
1993/0903    
 
	puttlbx(1, Devicevirt, phys, PTEGLOBL, PGSZ256K); 
1993/0904    
	/* 
	 * Map Interrupt control 
	 */ 
	phys = PPN(Intctlphys)|PTEGLOBL|PTEVALID|PTEWRITE|PTEUNCACHED; 
	puttlbx(2, Intctlvirt, phys, PTEGLOBL, PGSZ4K); 
 
	*(ushort*)Intenareg = 0xffff; 
1993/0903    
} 
 
/* 
1993/0903/sys/src/9/carrera/main.c:166,1721993/0904/sys/src/9/carrera/main.c:178,185
1993/0903    
	memmove((ulong*)UTLBMISS, (ulong*)vector0, 0x100); 
	memmove((ulong*)CACHETRAP, (ulong*)vector100, 0x80); 
	memmove((ulong*)EXCEPTION, (ulong*)vector180, 0x80); 
	icflush((ulong*)UTLBMISS, 32*1024); 
1993/0904    
 
	icflush((ulong*)UTLBMISS, 8*1024); 
1993/0903    
} 
 
void 
1993/0903/sys/src/9/carrera/main.c:263,2741993/0904/sys/src/9/carrera/main.c:276,283
1993/0903    
 
	spllo(); 
	print("cpu %d exiting %d\n", m->machno, type); 
	timer = 0; 
	while(active.machs || consactive()) { 
		if(timer++ > 400) 
			break; 
1993/0904    
	while(consactive()) 
1993/0903    
		delay(10); 
	} 
	splhi(); 
	for(;;) 
		; 
1993/0903/sys/src/9/carrera/main.c:296,3021993/0904/sys/src/9/carrera/main.c:305,311
1993/0903    
	conf.npage1 = 0; 
	conf.base1 = 0; 
 
	conf.upages = (conf.npage*90)/100; 
1993/0904    
	conf.upages = (conf.npage*70)/100; 
1993/0903    
	if(top - conf.upages > (256*1024*1024)/BY2PG) 
		conf.upages = top - (256*1024*1024)/BY2PG; 
 
1993/0903/sys/src/9/carrera/main.c:304,3101993/0904/sys/src/9/carrera/main.c:313,319
1993/0903    
 
	/* set up other configuration parameters */ 
	conf.nproc = 100; 
	conf.nswap = 262144; 
1993/0904    
	conf.nswap = conf.npage*3; 
1993/0903    
	conf.nimage = 200; 
	conf.ipif = 8; 
	conf.ip = 64; 


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