Esempio n. 1
0
void writecmos(u8 reg,u8 val)
{
	u8 ifstate=((getcpuflags()&CPU_FLAGS_IF)!=0);
	if(ifstate)disable_int();
	int org=inb(0x70);
	outb(0x70,(org&0b10000000)|(reg&0b01111111));
	outb(0x71,val);
	if(ifstate)enable_int();
}
Esempio n. 2
0
u8 readcmos(u8 reg)
{
	u8 ifstate=((getcpuflags()&CPU_FLAGS_IF)!=0);
	if(ifstate)disable_int();
	int org=inb(0x70);
	outb(0x70,(org&0b10000000)|(reg&0b01111111));
	u8 ret=inb(0x71);
	if(ifstate)enable_int();
	return ret;
}
Esempio n. 3
0
int main()
{
	int family;
	struct cpuflags flags;
	if(!getcpuflags(&flags)){ printf("CPU won't do cpuid (some old i386 or i486)\n"); return 0; }
	family = (flags.id & 0xf00)>>8;
	printf("family: %i\n", family);
	printf("stdcpuflags:  0x%08x\n", flags.std);
	printf("std2cpuflags: 0x%08x\n", flags.std2);
	printf("extcpuflags:  0x%08x\n", flags.ext);
	if(cpu_i586(flags))
	{
		printf("A i586 or better cpu with:");
		if(cpu_mmx(flags)) printf(" mmx");
		if(cpu_3dnow(flags)) printf(" 3dnow");
		if(cpu_3dnowext(flags)) printf(" 3dnowext");
		if(cpu_sse(flags)) printf(" sse");
		if(cpu_sse2(flags)) printf(" sse2");
		if(cpu_sse3(flags)) printf(" sse3");
		printf("\n");
	}
	else printf("I guess you have some i486\n");
	return 0;
}