Convert m_config.c to use talloc
[mplayer.git] / vidix / dha.h
blobbd92d2752b766acc29fc6ebad9dc65afde9ae6c0
1 /*
2 * VIDIX Direct Hardware Access (DHA).
3 * Copyright (C) 2002 Nick Kurshev
5 * This file is part of MPlayer.
7 * MPlayer is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * MPlayer is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with MPlayer; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 * 1996/10/27 - Robin Cutshaw (robin@xfree86.org)
22 * XFree86 3.3.3 implementation
23 * 1999 - Øyvind Aabling.
24 * Modified for GATOS/win/gfxdump.
26 * 2002 - library implementation by Nick Kurshev
27 * - dhahelper and some changes by Alex Beregszaszi
29 * Supported O/S's: SVR4, UnixWare, SCO, Solaris,
30 * FreeBSD, NetBSD, 386BSD, BSDI BSD/386,
31 * Linux, Mach/386, ISC
32 * DOS (WATCOM 9.5 compiler), Win9x (with mapdev.vxd)
33 * Original location: www.linuxvideo.org/gatos
36 #ifndef MPLAYER_DHA_H
37 #define MPLAYER_DHA_H
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
43 #define MAX_DEV_PER_VENDOR_CFG1 64
44 #define MAX_PCI_DEVICES_PER_BUS 32
45 #define MAX_PCI_DEVICES 64
46 #define PCI_MULTIFUNC_DEV 0x80
47 #define PCI_COMMAND_IO 0x1 /* Enable response to I/O space */
49 typedef struct pciinfo_s
51 int bus,card,func; /* PCI/AGP bus:card:func */
52 unsigned short command; /* Device control register */
53 unsigned short vendor,device; /* Card vendor+device ID */
54 unsigned base0,base1,base2,baserom; /* Memory and I/O base addresses */
55 // unsigned base0_limit, base1_limit, base2_limit, baserom_limit;
56 }pciinfo_t;
58 /* needed for mga_vid */
59 extern int pci_config_read(unsigned char bus, unsigned char dev, unsigned char func,
60 unsigned char cmd, int len, unsigned long *val);
61 /* Fill array pci_list which must have size MAX_PCI_DEVICES
62 and return 0 if sucessful */
63 extern int pci_scan(pciinfo_t *pci_list,unsigned *num_card);
66 /* Enables/disables accessing to IO space from application side.
67 Should return 0 if o'k or errno on error. */
68 extern int enable_app_io( void );
69 extern int disable_app_io( void );
71 extern unsigned char INPORT8(unsigned idx);
72 extern unsigned short INPORT16(unsigned idx);
73 extern unsigned INPORT32(unsigned idx);
74 #define INPORT(idx) INPORT32(idx)
75 extern void OUTPORT8(unsigned idx,unsigned char val);
76 extern void OUTPORT16(unsigned idx,unsigned short val);
77 extern void OUTPORT32(unsigned idx,unsigned val);
78 #define OUTPORT(idx,val) OUTPORT32(idx,val)
80 extern void * map_phys_mem(unsigned long base, unsigned long size);
81 extern void unmap_phys_mem(void *ptr, unsigned long size);
83 /* These are the region types */
84 #define MTRR_TYPE_UNCACHABLE 0
85 #define MTRR_TYPE_WRCOMB 1
86 #define MTRR_TYPE_WRTHROUGH 4
87 #define MTRR_TYPE_WRPROT 5
88 #define MTRR_TYPE_WRBACK 6
89 extern int mtrr_set_type(unsigned base,unsigned size,int type);
91 #ifdef __cplusplus
93 #endif
95 #endif /* MPLAYER_DHA_H */