#include "u.h"
#include "lib.h"
#include "mem.h"
#include "dat.h"
#include "fns.h"
#include "io.h"
#include "ureg.h"
/*
* 8253 timer
*/
enum
{
Timerctl= 0x43, /* control port */
Timercnt= 0x40, /* timer count port (outb count-1) */
Timericnt= 0x41, /* timer count input port */
Timerlatch= 0x40, /* latch count into Timericnt */
};
void
clockinit(void)
{
setvec(Clockvec, clock, SEGIG);
}
void
clock(Ureg *ur)
{
Proc *p;
m->ticks++;
p = m->proc;
if(p){
p->pc = ur->eip;
if (p->state==Running)
p->time[p->insyscall]++;
}
if((m->ticks%185) == 92)
floppystart();
else if((m->ticks%185) == 0)
floppystop();
}