]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/9/pc/fns.h
pc, pc64: make mtrr() callable from interrupt context and before mpinit
[plan9front.git] / sys / src / 9 / pc / fns.h
index e376e72801ca4c3c78350bf7023e62bd6b389b7b..8ecaa0f7d21ffb6a8d8127232e9901721f3f25bf 100644 (file)
@@ -9,6 +9,7 @@ void    bios32close(BIOS32si*);
 BIOS32si* bios32open(char*);
 void   bootargs(void*);
 ulong  cankaddr(ulong);
+int    checksum(void *, int);
 void   clockintr(Ureg*, void*);
 int    (*cmpswap)(long*, long, long);
 int    cmpswap486(long*, long, long);
@@ -27,14 +28,23 @@ int dmainit(int, int);
 #define DMAREAD 1
 #define DMALOOP 2
 long   dmasetup(int, void*, long, int);
+void   dumpmcregs(void);
 #define        evenaddr(x)                             /* x86 doesn't care */
 void   fpclear(void);
 void   fpenv(FPsave*);
 void   fpinit(void);
 void   fpoff(void);
-void   fprestore(FPsave*);
-void   fpsave(FPsave*);
+void   (*fprestore)(FPsave*);
+void   (*fpsave)(FPsave*);
+void   fpsserestore(FPsave*);
+void   fpsserestore0(FPsave*);
+void   fpssesave(FPsave*);
+void   fpssesave0(FPsave*);
 ulong  fpstatus(void);
+void   fpx87restore(FPsave*);
+void   fpx87restore0(FPsave*);
+void   fpx87save(FPsave*);
+void   fpx87save0(FPsave*);
 ulong  getcr0(void);
 ulong  getcr2(void);
 ulong  getcr3(void);
@@ -42,17 +52,16 @@ ulong       getcr4(void);
 char*  getconf(char*);
 void   guesscpuhz(int);
 void   halt(void);
+void   mwait(void*);
 int    i8042auxcmd(int);
 int    i8042auxcmds(uchar*, int);
 void   i8042auxenable(void (*)(int, int));
 void   i8042reset(void);
 void   i8250console(void);
 void*  i8250alloc(int, int, int);
-void   i8250mouse(char*, int (*)(Queue*, int), int);
-void   i8250setmouseputc(char*, int (*)(Queue*, int));
 void   i8253enable(void);
 void   i8253init(void);
-void   i8253link(void);
+void   i8253reset(void);
 uvlong i8253read(uvlong*);
 void   i8253timerset(uvlong);
 int    i8259disable(int);
@@ -86,7 +95,9 @@ void* kaddr(ulong);
 void   kbdenable(void);
 void   kbdinit(void);
 #define        kmapinval()
+void   ldmxcsr(ulong);
 void   lgdt(ushort[3]);
+void   lldt(ulong);
 void   lidt(ushort[3]);
 void   links(void);
 void   ltr(ulong);
@@ -100,9 +111,10 @@ void       mfence(void);
 #define mmuflushtlb(pdb) putcr3(pdb)
 void   mmuinit(void);
 ulong* mmuwalk(ulong*, ulong, int, int);
-int    mtrr(uvlong, uvlong, char *);
+char*  mtrr(uvlong, uvlong, char *);
 void   mtrrclock(void);
 int    mtrrprint(char *, long);
+void   mtrrsync(void);
 uchar  nvramread(int);
 void   nvramwrite(int, uchar);
 void   outb(int, int);
@@ -128,7 +140,8 @@ void        pcihinv(Pcidev*);
 uchar  pciipin(Pcidev*, uchar);
 Pcidev* pcimatch(Pcidev*, int, int);
 Pcidev* pcimatchtbdf(int);
-int    pcinextcap(Pcidev*, int);
+int    pcicap(Pcidev*, int);
+int    pcihtcap(Pcidev*, int);
 void   pcireset(void);
 int    pciscan(int, Pcidev**);
 void   pcisetbme(Pcidev*);
@@ -147,17 +160,17 @@ int       pdbmap(ulong*, ulong, ulong, int);
 void   procrestore(Proc*);
 void   procsave(Proc*);
 void   procsetup(Proc*);
+void   procfork(Proc*);
 void   putcr0(ulong);
 void   putcr3(ulong);
 void   putcr4(ulong);
 void*  rampage(void);
-void   rdmsr(int, vlong*);
+int    rdmsr(int, vlong*);
 void   realmode(Ureg*);
 void   screeninit(void);
 void   (*screenputs)(char*, int);
+void*  sigsearch(char*);
 void   syncclock(void);
-void   syscallfmt(int syscallno, ulong pc, va_list list);
-void   sysretfmt(int syscallno, va_list list, long ret, uvlong start, uvlong stop);
 void*  tmpmap(Page*);
 void   tmpunmap(void*);
 void   touser(void*);
@@ -173,15 +186,16 @@ void      umbrwfree(ulong, int);
 ulong  upaalloc(int, int);
 void   upafree(ulong, int);
 void   upareserve(ulong, int);
-#define        userureg(ur) (((ur)->cs & 0xFFFF) == UESEL)
 void   vectortable(void);
 void*  vmap(ulong, int);
 int    vmapsync(ulong);
 void   vunmap(void*, int);
 void   wbinvd(void);
-void   wrmsr(int, vlong);
+int    wrmsr(int, vlong);
 int    xchgw(ushort*, int);
+void   rdrandbuf(void*, ulong);
 
+#define        userureg(ur)    (((ur)->cs & 3) == 3)
 #define        waserror()      (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1]))
 #define        KADDR(a)        kaddr(a)
 #define PADDR(a)       paddr((void*)(a))