]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/9/pc64/fns.h
pc64: avoid getcr3() in mmuflushtlb()
[plan9front.git] / sys / src / 9 / pc64 / fns.h
index 44613d2b21a9eeae7e2197f3d532a3f975ac76f7..75764f06dff4e1f41ce1030f5950c8f9dddc4f51 100644 (file)
@@ -15,12 +15,14 @@ void        clockintr(Ureg*, void*);
 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   delay(int);
 void*  dmabva(int);
+#define        dmaflush(clean, addr, len)
 int    dmacount(int);
 int    dmadone(int);
 void   dmaend(int);
@@ -37,17 +39,19 @@ int ecwrite(uchar addr, uchar val);
 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);
@@ -60,13 +64,6 @@ void i8253init(void);
 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);
@@ -80,11 +77,7 @@ void intrenable(int, void (*)(Ureg*, void*), void*, int, char*);
 void   introff(void);
 void   intron(void);
 void   invlpg(uintptr);
-void   iofree(int);
 void   ioinit(void);
-int    iounused(int, int);
-int    ioalloc(int, int, int, char*);
-int    ioreserve(int, int, int, char*);
 int    iprint(char*, ...);
 int    isaconfig(char*, int, ISAConf*);
 void*  kaddr(uintptr);
@@ -100,16 +93,18 @@ void       mathinit(void);
 void   mb386(void);
 void   mb586(void);
 void   meminit(void);
-void   memorysummary(void);
+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   netconsole(void);
+void   nmienable(void);
 void   noteret(void);
 uchar  nvramread(int);
 void   nvramwrite(int, uchar);
@@ -121,30 +116,10 @@ void      outl(int, ulong);
 void   outsl(int, void*, int);
 uintptr        paddr(void*);
 void   patwc(void*, int);
-ulong  pcibarsize(Pcidev*, int);
-void   pcibussize(Pcidev*, ulong*, ulong*);
-int    pcicfgr8(Pcidev*, int);
-int    pcicfgr16(Pcidev*, int);
-int    pcicfgr32(Pcidev*, int);
-void   pcicfgw8(Pcidev*, int, int);
-void   pcicfgw16(Pcidev*, int, int);
-void   pcicfgw32(Pcidev*, int, int);
-void   pciclrbme(Pcidev*);
-void   pciclrioe(Pcidev*);
-void   pciclrmwi(Pcidev*);
-int    pcigetpms(Pcidev*);
-void   pcihinv(Pcidev*);
-uchar  pciipin(Pcidev*, uchar);
-Pcidev* pcimatch(Pcidev*, int, int);
-Pcidev* pcimatchtbdf(int);
-int    pcicap(Pcidev*, int);
-int    pcihtcap(Pcidev*, int);
-void   pcireset(void);
-int    pciscan(int, Pcidev**);
-void   pcisetbme(Pcidev*);
-void   pcisetioe(Pcidev*);
-void   pcisetmwi(Pcidev*);
-int    pcisetpms(Pcidev*, int);
+void   pcicfginit(void);
+int    (*pcicfgrw8)(int, int, int, int);
+int    (*pcicfgrw16)(int, int, int, int);
+int    (*pcicfgrw32)(int, int, int, int);
 void   pcmcisread(PCMslot*);
 int    pcmcistuple(int, int, int, void*, int);
 PCMmap*        pcmmap(int, ulong, int, int);
@@ -153,7 +128,9 @@ int (*_pcmspecial)(char *, ISAConf *);
 void   pcmspecialclose(int);
 void   (*_pcmspecialclose)(int);
 void   pcmunmap(int, PCMmap*);
-void   pmap(uintptr *, uintptr, uintptr, vlong);
+void   pmap(uintptr, uintptr, vlong);
+void   punmap(uintptr, vlong);
+void   preallocpages(void);
 void   procrestore(Proc*);
 void   procsave(Proc*);
 void   procsetup(Proc*);
@@ -162,6 +139,7 @@ void        putcr0(u64int);
 void   putcr2(u64int);
 void   putcr3(u64int);
 void   putcr4(u64int);
+void   putxcr0(u64int);
 void   putdr(u64int*);
 void   putdr01236(u64int*);
 void   putdr6(u64int);
@@ -169,10 +147,11 @@ void      putdr7(u64int);
 void*  rampage(void);
 int    rdmsr(int, vlong*);
 void   realmode(Ureg*);
+void*  rsdsearch(void);
 void   screeninit(void);
 void   (*screenputs)(char*, int);
 void   setconfenv(void);
-void*  sigsearch(char*);
+void*  sigsearch(char*, int);
 void   syncclock(void);
 void   syscallentry(void);
 void   touser(void*);
@@ -181,17 +160,15 @@ void      trapinit(void);
 void   trapinit0(void);
 int    tas(void*);
 uvlong tscticks(uvlong*);
-uintptr        umbmalloc(uintptr, int, int);
-void   umbfree(uintptr, int);
-uintptr        umbrwmalloc(uintptr, int, int);
-void   umbrwfree(uintptr, int);
-uintptr        upaalloc(int, int);
-void   upafree(uintptr, int);
-void   upareserve(uintptr, int);
+ulong  umballoc(ulong, ulong, ulong);
+void   umbfree(ulong, ulong);
+uvlong upaalloc(uvlong, ulong, ulong);
+uvlong upaallocwin(uvlong, ulong, ulong, ulong);
+void   upafree(uvlong, ulong);
 void   vectortable(void);
 void   vmxprocrestore(Proc *);
 void   vmxshutdown(void);
-void*  vmap(uintptr, int);
+void*  vmap(uvlong, int);
 void   vunmap(void*, int);
 void   wbinvd(void);
 void   writeconf(void);