int (*cmpswap)(long*, long, long);
int cmpswap486(long*, long, long);
void (*coherence)(void);
-void cpuid(int, ulong regs[]);
+void cpuid(int, int, ulong regs[]);
+void fpuinit(void);
int cpuidentify(void);
void cpuidprint(void);
void (*cycles)(uvlong*);
void fpinit(void);
void (*fprestore)(FPsave*);
void (*fpsave)(FPsave*);
-void fpsserestore(FPsave*);
-void fpssesave(FPsave*);
-void fpx87restore(FPsave*);
-void fpx87save(FPsave*);
+void fpuprocsetup(Proc*);
+void fpuprocfork(Proc*);
+void fpuprocsave(Proc*);
+void fpuprocrestore(Proc*);
int fpusave(void);
void fpurestore(int);
u64int getcr0(void);
u64int getcr2(void);
u64int getcr3(void);
u64int getcr4(void);
+u64int getxcr0(void);
u64int getdr6(void);
char* getconf(char*);
-void guesscpuhz(int);
void halt(void);
void mwait(void*);
int i8042auxcmd(int);
void i8253reset(void);
uvlong i8253read(uvlong*);
void i8253timerset(uvlong);
-int i8259disable(int);
-int i8259enable(Vctl*);
-void i8259init(void);
-int i8259isr(int);
-void i8259on(void);
-void i8259off(void);
-int i8259vecno(int);
void idle(void);
void idlehands(void);
int inb(int);
void meminit0(void);
void memreserve(uintptr, uintptr);
void mfence(void);
-#define mmuflushtlb() putcr3(getcr3())
+#define mmuflushtlb(pml4) putcr3(pml4)
void mmuinit(void);
uintptr *mmuwalk(uintptr*, uintptr, int, int);
char* mtrr(uvlong, uvlong, char *);
+char* mtrrattr(uvlong, uvlong *);
void mtrrclock(void);
int mtrrprint(char *, long);
void mtrrsync(void);
+void nmienable(void);
void noteret(void);
uchar nvramread(int);
void nvramwrite(int, uchar);
void putcr2(u64int);
void putcr3(u64int);
void putcr4(u64int);
+void putxcr0(u64int);
void putdr(u64int*);
void putdr01236(u64int*);
void putdr6(u64int);