]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/9/bcm64/fns.h
bcm64: do not use OTP_BOOTMODE_REG to determine OSC frequency (thanks richard miller)
[plan9front.git] / sys / src / 9 / bcm64 / fns.h
index 280e748210b6e9acfe6447f215555abb3acb884f..5ace48713dbf188a43d28ecc24ff69130f314cbf 100644 (file)
@@ -68,6 +68,8 @@ extern void kmapinval(void);
 extern KMap *kmap(Page*);
 extern void kunmap(KMap*);
 extern uintptr mmukmap(uintptr, uintptr, usize);
+extern void* vmap(uintptr, int);
+extern void vunmap(void*, int);
 
 extern void mmu0init(uintptr*);
 extern void mmu0clear(uintptr*);
@@ -110,8 +112,8 @@ extern void dumpregs(Ureg*);
 /* irq */
 extern void intrcpushutdown(void);
 extern void intrsoff(void);
-#define intrenable(i, f, a, b, n)      irqenable((i), (f), (a))
-extern void irqenable(int, void (*)(Ureg*, void*), void*);
+extern void intrenable(int, void (*)(Ureg*, void*), void*, int, char*);
+extern void intrdisable(int, void (*)(Ureg*, void*), void*, int, char*);
 extern int irq(Ureg*);
 extern void fiq(Ureg*);
 
@@ -144,6 +146,7 @@ extern void wdogoff(void);
 
 /* dma */
 extern uintptr dmaaddr(void*);
+extern void dmaflush(int, void*, ulong);
 extern void dmastart(int, int, int, void*, void*, int);
 extern int dmawait(int);
 
@@ -161,6 +164,7 @@ extern void setclkrate(int clkid, ulong hz);
 extern uint getcputemp(void);
 extern void vgpinit(void);
 extern void vgpset(uint port, int on);
+extern void egpset(uint port, int on);
 
 /* bootargs */
 extern void bootargsinit(uintptr);
@@ -172,3 +176,29 @@ extern void writeconf(void);
 extern void screeninit(void);
 
 extern int isaconfig(char*, int, ISAConf*);
+
+/* pci */
+typedef struct Pcidev Pcidev;
+extern int pcicfgr32(Pcidev* pcidev, int rno);
+extern void pcicfgw32(Pcidev* pcidev, int rno, int data);
+extern int pcicfgr16(Pcidev* pcidev, int rno);
+extern void pcicfgw16(Pcidev* pcidev, int rno, int data);
+extern int pcicfgr8(Pcidev* pcidev, int rno);
+extern void pcicfgw8(Pcidev* pcidev, int rno, int data);
+extern Pcidev* pcimatch(Pcidev* prev, int vid, int did);
+extern Pcidev* pcimatchtbdf(int tbdf);
+extern void pcisetioe(Pcidev* p);
+extern void pciclrioe(Pcidev* p);
+extern void pcisetbme(Pcidev* p);
+extern void pciclrbme(Pcidev* p);
+extern void pcisetmwi(Pcidev* p);
+extern void pciclrmwi(Pcidev* p);
+extern int pcicap(Pcidev *p, int cap);
+extern int pcinextcap(Pcidev *pci, int offset);
+extern int pcihtcap(Pcidev *p, int cap);
+extern int pcigetpms(Pcidev* p);
+extern int pcisetpms(Pcidev* p, int state);
+extern void pcienable(Pcidev *p);
+extern void pcidisable(Pcidev *p);
+extern void pciintrenable(int tbdf, void (*f)(Ureg*, void*), void *a);
+extern void pciintrdisable(int tbdf, void (*f)(Ureg*, void*), void *a);