~kris/9p

9hist

d705bfa698806e7e7a6220e43b207f09f93c1643 — David du Colombier 26 years ago b5adc66
Plan 9 from Bell Labs 2000-09-22
3 files changed, 31 insertions(+), 15 deletions(-)

M ip/ethermedium.c
M pc/devarch.c
M pc/ptclbsum386.s
M ip/ethermedium.c => ip/ethermedium.c +17 -0
@@ 44,6 44,22 @@ Medium ethermedium =
.areg=		sendgarp,
};

Medium gbemedium =
{
.name=		"gbe",
.hsize=		14,
.minmtu=	60,
.maxmtu=	9014,
.maclen=	6,
.bind=		etherbind,
.unbind=	etherunbind,
.bwrite=	etherbwrite,
.addmulti=	etheraddmulti,
.remmulti=	etherremmulti,
.ares=		arpenter,
.areg=		sendgarp,
};

typedef struct	Etherrock Etherrock;
struct Etherrock
{


@@ 561,4 577,5 @@ void
ethermediumlink(void)
{
	addipmedium(&ethermedium);
	addipmedium(&gbemedium);
}

M pc/devarch.c => pc/devarch.c +13 -3
@@ 482,10 482,11 @@ cpuidprint(void)
int
cpuidentify(void)
{
	int family, model;
	char *p;
	int family, model, nomce;
	X86type *t;
	ulong cr4;
	vlong mct;
	vlong mca, mct;

	cpuid(m->cpuidid, &m->cpuidax, &m->cpuiddx);
	if(strncmp(m->cpuidid, "AuthenticAMD", 12) == 0)


@@ 515,8 516,17 @@ cpuidentify(void)
		cr4 = 0;
		if(m->cpuiddx & 0x08)
			cr4 |= 0x10;		/* page size extensions */
		if(m->cpuiddx & 0x80)
		if(p = getconf("*nomce"))
			nomce = strtoul(p, 0, 0);
		else
			nomce = 0;
		if((m->cpuiddx & 0x80) && !nomce){
			cr4 |= 0x40;		/* machine check enable */
			if(family == 5){
				rdmsr(0x00, &mca);
				rdmsr(0x01, &mct);
			}
		}
		putcr4(cr4);
		if(m->cpuiddx & 0x80)
			rdmsr(0x01, &mct);

M pc/ptclbsum386.s => pc/ptclbsum386.s +1 -12
@@ 84,23 84,12 @@ _2loop:
	CMPL	CX, $0x02
	JLT	_1dreg

_2fold:
	MOVL	AX, BX
	SHRL	$16, BX
	JEQ	_2foldx

	ANDL	$0xFFFF, AX
	ADDL	BX, AX
	JMP	_2fold

_2foldx:
	MOVL	CX, BP
	SHRL	$1, BP
	ANDL	$0x01, CX

_2loopx:
	XORL	BX, BX			/* in the loop for PPro */
	MOVW	0x00(SI), BX
	MOVWLZX	0x00(SI), BX
	ADCL	BX, AX

	LEAL	0x02(SI), SI