diff libdha/libdha.h @ 3973:138800dfbe22

preliminary support of direct hardware access
author nick
date Fri, 04 Jan 2002 10:32:26 +0000
parents
children 0d9de811e312
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libdha/libdha.h	Fri Jan 04 10:32:26 2002 +0000
@@ -0,0 +1,57 @@
+/*
+    libgha.h - Library for direct hardware access
+    Copyrights:
+    1996/10/27	- Robin Cutshaw (robin@xfree86.org)
+		  XFree86 3.3.3 implementation
+    1999	- Øyvind Aabling.
+    		  Modified for GATOS/win/gfxdump.
+    2002	- library implementation by Nick Kurshev
+    
+    supported O/S's:	SVR4, UnixWare, SCO, Solaris,
+			FreeBSD, NetBSD, 386BSD, BSDI BSD/386,
+			Linux, Mach/386, ISC
+			DOS (WATCOM 9.5 compiler), Win9x (with mapdev.vxd)
+    Licence: GPL
+*/
+#ifndef LIBDHA_H
+#define LIBDHA_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MAX_DEV_PER_VENDOR_CFG1 64
+#define MAX_PCI_DEVICES_PER_BUS 32
+#define MAX_PCI_DEVICES         64
+#define PCI_MULTIFUNC_DEV	0x80
+
+typedef struct pciinfo_s
+{
+  int	bus,card,func ;			/* PCI/AGP bus:card:func */
+  unsigned short vendor,device ;			/* Card vendor+device ID */
+  unsigned	base0,base1,base2,baserom ;	/* Memory and I/O base addresses */
+}pciinfo_t;
+
+			/* Fill array pci_list which must have size MAX_PCI_DEVICES
+			   and return 0 if sucessful */
+extern int  pci_scan(pciinfo_t *pci_list,unsigned *num_card);
+
+
+
+extern unsigned char  INREG8(unsigned idx);
+extern unsigned short INREG16(unsigned idx);
+extern unsigned       INREG32(unsigned idx);
+#define INREG(idx) INREG32(idx)
+extern void          OUTREG8(unsigned idx,unsigned char val);
+extern void          OUTREG16(unsigned idx,unsigned short val);
+extern void          OUTREG32(unsigned idx,unsigned val);
+#define OUTREG(idx,val) OUTREG32(idx,val)
+
+extern void *  map_phys_mem(unsigned base, unsigned size);
+extern void    unmap_phys_mem(void *ptr, unsigned size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
\ No newline at end of file