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

1991/0711/ss/clock.c (diff list | history)

1990/1223/sys/src/9/ss/clock.c:13,191990/1226/sys/src/9/ss/clock.c:13,19 (short | long)
1990/1223    
	ulong t, *p; 
	int i; 
 
	ms *= 1000;	/* experimentally determined */ 
1990/1226    
	ms *= 2000;	/* experimentally determined */ 
1990/1223    
	for(i=0; i<ms; i++) 
		; 
} 
1990/1223/sys/src/9/ss/clock.c:34,421990/1226/sys/src/9/ss/clock.c:34,42
1990/1223    
	checkalarms(); 
	kbdclock(); 
	mouseclock(); 
	if((ur->sr&SPL(7)) == 0 && p && p->state==Running){ 
1990/1226    
	if((ur->psr&SPL(7)) == 0 && p && p->state==Running){ 
1990/1223    
		sched(); 
		if(u->nnote && (ur->sr&SUPER)==0) 
1990/1226    
		if(u->nnote && (ur->psr&PSRSUPER)==0) 
1990/1223    
			notify(ur); 
	} 
} 
1990/1226/sys/src/9/ss/clock.c:18,291990/1227/sys/src/9/ss/clock.c:18,51 (short | long)
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); 
	} 
} 
1990/1227/sys/src/9/ss/clock.c:59,651991/0711/sys/src/9/ss/clock.c:59,68 (short | long)
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); 
1991/0711    
		if((ur->psr&PSRPSUPER) == 0){ 
			*(ulong*)(USTKTOP-BY2WD) += TK2MS(1); 
			if(u->nnote) 
				notify(ur); 
		} 
1990/1223    
	} 
} 
1991/0711/sys/src/9/ss/clock.c:60,661991/0723/sys/src/9/ss/clock.c:60,66 (short | long)
1990/1227    
		if(anyready()) 
			sched(); 
1991/0711    
		if((ur->psr&PSRPSUPER) == 0){ 
			*(ulong*)(USTKTOP-BY2WD) += TK2MS(1); 
1991/0723    
/*			*(ulong*)(USTKTOP-BY2WD) += TK2MS(1); /**/ 
1991/0711    
			if(u->nnote) 
				notify(ur); 
		} 
1991/0723/sys/src/9/ss/clock.c:57,641991/0821/sys/src/9/ss/clock.c:57,68 (short | long)
1990/1223    
	kbdclock(); 
	mouseclock(); 
1990/1227    
	if((ur->psr&SPL(0xF))==0 && p && p->state==Running){ 
		if(anyready()) 
			sched(); 
1991/0821    
		if(anyready()){ 
			if(p->hasspin) 
				p->hasspin = 0; 
			else 
				sched(); 
		} 
1991/0711    
		if((ur->psr&PSRPSUPER) == 0){ 
1991/0723    
/*			*(ulong*)(USTKTOP-BY2WD) += TK2MS(1); /**/ 
1991/0711    
			if(u->nnote) 
1991/0821/sys/src/9/ss/clock.c:56,611991/1003/sys/src/9/ss/clock.c:56,62 (short | long)
1990/1223    
	checkalarms(); 
	kbdclock(); 
	mouseclock(); 
1991/1003    
	sccclock(); 
1990/1227    
	if((ur->psr&SPL(0xF))==0 && p && p->state==Running){ 
1991/0821    
		if(anyready()){ 
			if(p->hasspin) 
1991/1003/sys/src/9/ss/clock.c:57,621991/1006/sys/src/9/ss/clock.c:57,63 (short | long)
1990/1223    
	kbdclock(); 
	mouseclock(); 
1991/1003    
	sccclock(); 
1991/1006    
	kproftimer(ur->pc); 
1990/1227    
	if((ur->psr&SPL(0xF))==0 && p && p->state==Running){ 
1991/0821    
		if(anyready()){ 
			if(p->hasspin) 
1991/1006/sys/src/9/ss/clock.c:67,741991/1111/sys/src/9/ss/clock.c:67,73 (short | long)
1991/0821    
		} 
1991/0711    
		if((ur->psr&PSRPSUPER) == 0){ 
1991/0723    
/*			*(ulong*)(USTKTOP-BY2WD) += TK2MS(1); /**/ 
1991/0711    
			if(u->nnote) 
				notify(ur); 
1991/1111    
			notify(ur); 
1991/0711    
		} 
1990/1223    
	} 
} 
1991/1111/sys/src/9/ss/clock.c:42,481991/1113/sys/src/9/ss/clock.c:42,49 (short | long)
1990/1223    
clock(Ureg *ur) 
{ 
	Proc *p; 
1990/1227    
	ulong i; 
1991/1113    
	ulong i, ss, nrun = 0; 
	Segment *s; 
1990/1223    
 
1990/1227    
	i = ctr->lim1;	/* clear interrupt */ 
	USED(i); 
1991/1111/sys/src/9/ss/clock.c:49,581991/1113/sys/src/9/ss/clock.c:50,63
1990/1223    
	m->ticks++; 
	p = m->proc; 
	if(p){ 
1991/1113    
		nrun = 1; 
1990/1223    
		p->pc = ur->pc; 
		if (p->state==Running) 
			p->time[p->insyscall]++; 
	} 
1991/1113    
	nrun = (nrdy+nrun)*1000; 
	MACHP(0)->load = (MACHP(0)->load*19+nrun)/20; 
 
1990/1223    
	checkalarms(); 
	kbdclock(); 
	mouseclock(); 
1991/1111/sys/src/9/ss/clock.c:66,731991/1113/sys/src/9/ss/clock.c:71,80
1991/0821    
				sched(); 
		} 
1991/0711    
		if((ur->psr&PSRPSUPER) == 0){ 
1991/0723    
/*			*(ulong*)(USTKTOP-BY2WD) += TK2MS(1); /**/ 
1991/1113    
			ss = spllo();				/* Low because we may fault */ 
			*(ulong*)(USTKTOP-BY2WD) += TK2MS(1); 
1991/1111    
			notify(ur); 
1991/1113    
			splx(ss);				/* return hi for restore */ 
1991/0711    
		} 
1990/1223    
	} 
} 
1991/1113/sys/src/9/ss/clock.c:42,481991/1114/sys/src/9/ss/clock.c:42,48 (short | long)
1990/1223    
clock(Ureg *ur) 
{ 
	Proc *p; 
1991/1113    
	ulong i, ss, nrun = 0; 
1991/1114    
	ulong i, nrun = 0; 
1991/1113    
	Segment *s; 
1990/1223    
 
1990/1227    
	i = ctr->lim1;	/* clear interrupt */ 
1991/1113/sys/src/9/ss/clock.c:71,801991/1114/sys/src/9/ss/clock.c:71,79
1991/0821    
				sched(); 
		} 
1991/0711    
		if((ur->psr&PSRPSUPER) == 0){ 
1991/1113    
			ss = spllo();				/* Low because we may fault */ 
1991/1114    
			spllo();				/* Low because we may fault */ 
1991/1113    
			*(ulong*)(USTKTOP-BY2WD) += TK2MS(1); 
1991/1111    
			notify(ur); 
1991/1113    
			splx(ss);				/* return hi for restore */ 
1991/1114    
			splhi();				/* return hi for restore */ 
1991/0711    
		} 
1990/1223    
	} 
} 
1991/1114/sys/src/9/ss/clock.c:13,191991/1115/sys/src/9/ss/clock.c:13,19 (short | long)
1990/1223    
	ulong t, *p; 
	int i; 
 
1990/1226    
	ms *= 2000;	/* experimentally determined */ 
1991/1115    
	ms *= 3000;	/* experimentally determined */ 
1990/1223    
	for(i=0; i<ms; i++) 
		; 
} 
1991/1115/sys/src/9/ss/clock.c:1,51992/0321/sys/src/9/ss/clock.c:1,5 (short | long)
1990/1223    
#include	"u.h" 
#include	"lib.h" 
1992/0321    
#include	"../port/lib.h" 
1990/1223    
#include	"mem.h" 
#include	"dat.h" 
#include	"fns.h" 
1992/0321/sys/src/9/ss/clock.c:10,161992/0711/sys/src/9/ss/clock.c:10,15 (short | long)
1990/1223    
void 
delay(int ms) 
{ 
	ulong t, *p; 
	int i; 
 
1991/1115    
	ms *= 3000;	/* experimentally determined */ 
1992/0321/sys/src/9/ss/clock.c:43,491992/0711/sys/src/9/ss/clock.c:42,47
1990/1223    
{ 
	Proc *p; 
1991/1114    
	ulong i, nrun = 0; 
1991/1113    
	Segment *s; 
1990/1223    
 
1990/1227    
	i = ctr->lim1;	/* clear interrupt */ 
	USED(i); 
1992/0711/sys/src/9/ss/clock.c:61,661992/0807/sys/src/9/ss/clock.c:61,68 (short | long)
Created.
rsc Fri Mar 4 12:44:25 2005
1990/1223    
	mouseclock(); 
1991/1003    
	sccclock(); 
1991/1006    
	kproftimer(ur->pc); 
1992/0807    
	if(m->fpunsafe) 
		return; 
1990/1227    
	if((ur->psr&SPL(0xF))==0 && p && p->state==Running){ 
1991/0821    
		if(anyready()){ 
			if(p->hasspin) 
1992/0807/sys/src/9/ss/clock.c:70,791992/0811/sys/src/9/ss/clock.c:70,76 (short | long)
1991/0821    
			else 
				sched(); 
		} 
1991/0711    
		if((ur->psr&PSRPSUPER) == 0){ 
1991/1114    
			spllo();				/* Low because we may fault */ 
1992/0811    
		if((ur->psr&PSRPSUPER) == 0) 
1991/1113    
			*(ulong*)(USTKTOP-BY2WD) += TK2MS(1); 
1991/1114    
			splhi();				/* return hi for restore */ 
1991/0711    
		} 
1990/1223    
	} 
} 
1992/0811/sys/src/9/ss/clock.c:12,181992/0820/sys/src/9/ss/clock.c:12,20 (short | long)
1990/1223    
{ 
	int i; 
 
1991/1115    
	ms *= 3000;	/* experimentally determined */ 
1992/0820    
	ms *= 6666;		/* experimentally determined */ 
	if(conf.ss2) 
		ms *= 2; 
1990/1223    
	for(i=0; i<ms; i++) 
		; 
} 
1992/0820/sys/src/9/ss/clock.c:65,711992/0914/sys/src/9/ss/clock.c:65,72 (short | long)
1991/1006    
	kproftimer(ur->pc); 
1992/0807    
	if(m->fpunsafe) 
		return; 
1990/1227    
	if((ur->psr&SPL(0xF))==0 && p && p->state==Running){ 
1992/0914    
 
	if((ur->psr&SPL(0xF))==0 && p && p->state==Running) { 
1991/0821    
		if(anyready()){ 
			if(p->hasspin) 
				p->hasspin = 0; 
1992/0914/sys/src/9/ss/clock.c:1,791993/0501/sys/src/9/ss/clock.c:0 (short | long)
Deleted.
rsc Mon Mar 7 10:33:09 2005
1990/1223    
#include	"u.h" 
1992/0321    
#include	"../port/lib.h" 
1990/1223    
#include	"mem.h" 
#include	"dat.h" 
#include	"fns.h" 
#include	"io.h" 
                 
#include	"ureg.h" 
                 
void 
delay(int ms) 
{ 
	int i; 
                 
1992/0820    
	ms *= 6666;		/* experimentally determined */ 
	if(conf.ss2) 
		ms *= 2; 
1990/1223    
	for(i=0; i<ms; i++) 
		; 
} 
                 
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; 
1991/1114    
	ulong i, nrun = 0; 
1990/1223    
                 
1990/1227    
	i = ctr->lim1;	/* clear interrupt */ 
	USED(i); 
1990/1223    
	m->ticks++; 
	p = m->proc; 
	if(p){ 
1991/1113    
		nrun = 1; 
1990/1223    
		p->pc = ur->pc; 
		if (p->state==Running) 
			p->time[p->insyscall]++; 
	} 
1991/1113    
	nrun = (nrdy+nrun)*1000; 
	MACHP(0)->load = (MACHP(0)->load*19+nrun)/20; 
                 
1990/1223    
	checkalarms(); 
	kbdclock(); 
	mouseclock(); 
1991/1003    
	sccclock(); 
1991/1006    
	kproftimer(ur->pc); 
1992/0807    
	if(m->fpunsafe) 
		return; 
1992/0914    
                 
	if((ur->psr&SPL(0xF))==0 && p && p->state==Running) { 
1991/0821    
		if(anyready()){ 
			if(p->hasspin) 
				p->hasspin = 0; 
			else 
				sched(); 
		} 
1992/0811    
		if((ur->psr&PSRPSUPER) == 0) 
1991/1113    
			*(ulong*)(USTKTOP-BY2WD) += TK2MS(1); 
1990/1223    
	} 
} 


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