annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3973
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
1 /*
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
2 libgha.h - Library for direct hardware access
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
3 Copyrights:
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
4 1996/10/27 - Robin Cutshaw (robin@xfree86.org)
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
5 XFree86 3.3.3 implementation
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
6 1999 - Øyvind Aabling.
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
7 Modified for GATOS/win/gfxdump.
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
8 2002 - library implementation by Nick Kurshev
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
9
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
10 supported O/S's: SVR4, UnixWare, SCO, Solaris,
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
11 FreeBSD, NetBSD, 386BSD, BSDI BSD/386,
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
12 Linux, Mach/386, ISC
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
13 DOS (WATCOM 9.5 compiler), Win9x (with mapdev.vxd)
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
14 Licence: GPL
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
15 */
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
16 #ifndef LIBDHA_H
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
17 #define LIBDHA_H
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
18
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
19 #ifdef __cplusplus
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
20 extern "C" {
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
21 #endif
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
22
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
23 #define MAX_DEV_PER_VENDOR_CFG1 64
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
24 #define MAX_PCI_DEVICES_PER_BUS 32
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
25 #define MAX_PCI_DEVICES 64
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
26 #define PCI_MULTIFUNC_DEV 0x80
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
27
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
28 typedef struct pciinfo_s
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
29 {
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
30 int bus,card,func ; /* PCI/AGP bus:card:func */
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
31 unsigned short vendor,device ; /* Card vendor+device ID */
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
32 unsigned base0,base1,base2,baserom ; /* Memory and I/O base addresses */
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
33 }pciinfo_t;
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
34
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
35 /* Fill array pci_list which must have size MAX_PCI_DEVICES
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
36 and return 0 if sucessful */
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
37 extern int pci_scan(pciinfo_t *pci_list,unsigned *num_card);
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
38
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
39
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
40
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
41 extern unsigned char INREG8(unsigned idx);
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
42 extern unsigned short INREG16(unsigned idx);
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
43 extern unsigned INREG32(unsigned idx);
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
44 #define INREG(idx) INREG32(idx)
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
45 extern void OUTREG8(unsigned idx,unsigned char val);
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
46 extern void OUTREG16(unsigned idx,unsigned short val);
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
47 extern void OUTREG32(unsigned idx,unsigned val);
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
48 #define OUTREG(idx,val) OUTREG32(idx,val)
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
49
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
50 extern void * map_phys_mem(unsigned base, unsigned size);
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
51 extern void unmap_phys_mem(void *ptr, unsigned size);
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
52
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
53 #ifdef __cplusplus
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
54 }
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
55 #endif
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
56
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
57 #endif