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

1990/1227/ss/clock.c (diff list | history)

1990/1226/sys/src/9/ss/clock.c:18,291990/1227/sys/src/9/ss/clock.c:18,51 (short | long | prev | next)
1990/1223    
		; 
} 
 
1990/1227    
typedef struct Ctr Ctr; 
struct Ctr 
{ 
	ulong	ctr0; 
	ulong	lim0; 
	ulong	ctr1; 
	ulong	lim1; 
}; 
Ctr	*ctr; 
 
1990/1223    
void 
1990/1227    
clockinit(void) 
{ 
	KMap *k; 
 
	k = kmappa(CLOCK, PTENOCACHE|PTEIO); 
	ctr = (Ctr*)k->va; 
	ctr->lim1 = (CLOCKFREQ/HZ)<<10; 
} 
 
void 
1990/1223    
clock(Ureg *ur) 
{ 
	Proc *p; 
1990/1227    
	ulong i; 
1990/1223    
 
	SYNCREG[1] = 0x5F;	/* clear interrupt */ 
1990/1227    
	i = ctr->lim1;	/* clear interrupt */ 
	USED(i); 
1990/1223    
	m->ticks++; 
	p = m->proc; 
	if(p){ 
1990/1226/sys/src/9/ss/clock.c:34,421990/1227/sys/src/9/ss/clock.c:56,65
1990/1223    
	checkalarms(); 
	kbdclock(); 
	mouseclock(); 
1990/1226    
	if((ur->psr&SPL(7)) == 0 && p && p->state==Running){ 
1990/1223    
		sched(); 
1990/1226    
		if(u->nnote && (ur->psr&PSRSUPER)==0) 
1990/1227    
	if((ur->psr&SPL(0xF))==0 && p && p->state==Running){ 
		if(anyready()) 
			sched(); 
		if(u->nnote && (ur->psr&PSRPSUPER)==0) 
1990/1223    
			notify(ur); 
	} 
} 


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