~kris/9p

9hist

232fb58f27bd7a7988a2c54ee94f561454becf81 — David du Colombier 26 years ago 9a9eec6
Plan 9 from Bell Labs 2000-06-22
3 files changed, 20 insertions(+), 7 deletions(-)

M pc/devarch.c
M pc/fns.h
M pc/i8253.c
M pc/devarch.c => pc/devarch.c +2 -2
@@ 587,10 587,10 @@ cycletimer(uvlong *hz)
{
	uvlong tsc;

	rdmsr(0x10, (vlong*)&tsc);
	m->fastclock = tsc;
	if(hz != nil)
		*hz = fasthz;
	rdmsr(0x10, (vlong*)&tsc);
	m->fastclock = tsc;
	return tsc;
}


M pc/fns.h => pc/fns.h +3 -1
@@ 1,5 1,8 @@
#include "../port/portfns.h"

void	loopbackintr(Ureg*);


void	aamloop(int);
void	addconf(char*, char*);
//void	addscsilink(char*, Scsiio (*)(int, ISAConf*));


@@ 59,7 62,6 @@ void	kbdinit(void);
void	lgdt(ushort[3]);
void	lidt(ushort[3]);
void	links(void);
void	loopbackintr(void);
void	ltr(ulong);
void	mathinit(void);
void	meminit(ulong);

M pc/i8253.c => pc/i8253.c +15 -4
@@ 13,19 13,23 @@ enum
	T0cntr=	0x40,		/* counter ports */
	T1cntr=	0x41,		/* ... */
	T2cntr=	0x42,		/* ... */
	Tmode=	0x43,		/* mode port */
	Tmode=	0x43,		/* mode port (control word register) */

	/* commands */
	Latch0=	0x00,		/* latch counter 0's value */
	Load0l=	0x10,		/* load counter 0's lsb */
	Load0m=	0x20,		/* load counter 0's msb */
	Load0=	0x30,		/* load counter 0 with 2 bytes */

	/* modes */
	Square=	0x36,		/* periodic square wave */
	Trigger= 0x30,		/* interrupt on terminal count */
	Square=	0x6,		/* periodic square wave */
	Trigger= 0x0,		/* interrupt on terminal count */

	Freq=	1193182,	/* Real clock frequency */
};

static Lock	i8253lock;

void
i8253init(int aalcycles, int havecycleclock)
{


@@ 124,10 128,17 @@ i8253init(int aalcycles, int havecycleclock)
	}
}

int
i8253readcnt(void)
{
	ilock(&i8253lock);
	iunlock(&i8253lock);
}

static void
clockintr0(Ureg* ureg, void *v)
{
	loopbackintr();
	loopbackintr(ureg);
	clockintr(ureg, v);
}