annotate vidix/dha.h @ 25809:7c4ba42d7328

Use the proper option name for constant quantizer in the hint that user gets if there isn't any of the essential options.
author iive
date Wed, 23 Jan 2008 14:32:15 +0000
parents 3baf6a2283da
children 246221f7ba2e
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 /*
23046
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
2 * VIDIX Direct Hardware Access (DHA).
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
3 * Copyright (C) 2002 Nick Kurshev
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
4 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
5 * This file is part of MPlayer.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
6 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
7 * MPlayer is free software; you can redistribute it and/or modify
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
8 * it under the terms of the GNU General Public License as published by
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
10 * (at your option) any later version.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
11 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
12 * MPlayer is distributed in the hope that it will be useful,
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
15 * GNU General Public License for more details.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
16 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
17 * You should have received a copy of the GNU General Public License
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
18 * along with MPlayer; if not, write to the Free Software
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
20 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
21 * 1996/10/27 - Robin Cutshaw (robin@xfree86.org)
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
22 * XFree86 3.3.3 implementation
23933
aa6833574b03 UTF-8 conversion
diego
parents: 23046
diff changeset
23 * 1999 - Øyvind Aabling.
23046
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
24 * Modified for GATOS/win/gfxdump.
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
25 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
26 * 2002 - library implementation by Nick Kurshev
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
27 * - dhahelper and some changes by Alex Beregszaszi
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
28 *
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
29 * Supported O/S's: SVR4, UnixWare, SCO, Solaris,
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
30 * FreeBSD, NetBSD, 386BSD, BSDI BSD/386,
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
31 * Linux, Mach/386, ISC
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
32 * DOS (WATCOM 9.5 compiler), Win9x (with mapdev.vxd)
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
33 * Original location: www.linuxvideo.org/gatos
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
34 */
82216ef041e0 updated vidix files headers whenever it's possible to have a clear GPL statement
ben
parents: 22901
diff changeset
35
3973
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
36 #ifndef LIBDHA_H
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
37 #define LIBDHA_H
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
38
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
39 #ifdef __cplusplus
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
40 extern "C" {
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
41 #endif
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
42
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
43 #define MAX_DEV_PER_VENDOR_CFG1 64
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
44 #define MAX_PCI_DEVICES_PER_BUS 32
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
45 #define MAX_PCI_DEVICES 64
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
46 #define PCI_MULTIFUNC_DEV 0x80
9767
f6d2772efca3 Ignore disabled cards. (Jon Burgess <jburgess@uklinux.net>)
ranma
parents: 5702
diff changeset
47 #define PCI_COMMAND_IO 0x1 /* Enable response to I/O space */
3973
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
48
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
49 typedef struct pciinfo_s
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
50 {
4192
fb092b45c9cc en(dis)able app io should be exported too
nick
parents: 4174
diff changeset
51 int bus,card,func; /* PCI/AGP bus:card:func */
9767
f6d2772efca3 Ignore disabled cards. (Jon Burgess <jburgess@uklinux.net>)
ranma
parents: 5702
diff changeset
52 unsigned short command; /* Device control register */
4192
fb092b45c9cc en(dis)able app io should be exported too
nick
parents: 4174
diff changeset
53 unsigned short vendor,device; /* Card vendor+device ID */
fb092b45c9cc en(dis)able app io should be exported too
nick
parents: 4174
diff changeset
54 unsigned base0,base1,base2,baserom; /* Memory and I/O base addresses */
4277
5f74792b6d5e pci_config_read working
alex
parents: 4192
diff changeset
55 // unsigned base0_limit, base1_limit, base2_limit, baserom_limit;
3973
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
56 }pciinfo_t;
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
57
4174
4cfb6b9a6da3 api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents: 3995
diff changeset
58 /* needed for mga_vid */
4277
5f74792b6d5e pci_config_read working
alex
parents: 4192
diff changeset
59 extern int pci_config_read(unsigned char bus, unsigned char dev, unsigned char func,
5f74792b6d5e pci_config_read working
alex
parents: 4192
diff changeset
60 unsigned char cmd, int len, unsigned long *val);
3973
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
61 /* Fill array pci_list which must have size MAX_PCI_DEVICES
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
62 and return 0 if sucessful */
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
63 extern int pci_scan(pciinfo_t *pci_list,unsigned *num_card);
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
64
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
65
4192
fb092b45c9cc en(dis)able app io should be exported too
nick
parents: 4174
diff changeset
66 /* Enables/disables accessing to IO space from application side.
fb092b45c9cc en(dis)able app io should be exported too
nick
parents: 4174
diff changeset
67 Should return 0 if o'k or errno on error. */
fb092b45c9cc en(dis)able app io should be exported too
nick
parents: 4174
diff changeset
68 extern int enable_app_io( void );
fb092b45c9cc en(dis)able app io should be exported too
nick
parents: 4174
diff changeset
69 extern int disable_app_io( void );
3973
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
70
3995
0d9de811e312 minor interface changing
nick
parents: 3973
diff changeset
71 extern unsigned char INPORT8(unsigned idx);
0d9de811e312 minor interface changing
nick
parents: 3973
diff changeset
72 extern unsigned short INPORT16(unsigned idx);
0d9de811e312 minor interface changing
nick
parents: 3973
diff changeset
73 extern unsigned INPORT32(unsigned idx);
0d9de811e312 minor interface changing
nick
parents: 3973
diff changeset
74 #define INPORT(idx) INPORT32(idx)
0d9de811e312 minor interface changing
nick
parents: 3973
diff changeset
75 extern void OUTPORT8(unsigned idx,unsigned char val);
0d9de811e312 minor interface changing
nick
parents: 3973
diff changeset
76 extern void OUTPORT16(unsigned idx,unsigned short val);
0d9de811e312 minor interface changing
nick
parents: 3973
diff changeset
77 extern void OUTPORT32(unsigned idx,unsigned val);
0d9de811e312 minor interface changing
nick
parents: 3973
diff changeset
78 #define OUTPORT(idx,val) OUTPORT32(idx,val)
3973
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
79
5702
567de708ab3a sync with mplayerxp
nick
parents: 4476
diff changeset
80 extern void * map_phys_mem(unsigned long base, unsigned long size);
567de708ab3a sync with mplayerxp
nick
parents: 4476
diff changeset
81 extern void unmap_phys_mem(void *ptr, unsigned long size);
3973
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
82
4476
0d9a096cfd46 MTRR configuring
nick
parents: 4277
diff changeset
83 /* These are the region types */
0d9a096cfd46 MTRR configuring
nick
parents: 4277
diff changeset
84 #define MTRR_TYPE_UNCACHABLE 0
0d9a096cfd46 MTRR configuring
nick
parents: 4277
diff changeset
85 #define MTRR_TYPE_WRCOMB 1
0d9a096cfd46 MTRR configuring
nick
parents: 4277
diff changeset
86 #define MTRR_TYPE_WRTHROUGH 4
0d9a096cfd46 MTRR configuring
nick
parents: 4277
diff changeset
87 #define MTRR_TYPE_WRPROT 5
0d9a096cfd46 MTRR configuring
nick
parents: 4277
diff changeset
88 #define MTRR_TYPE_WRBACK 6
0d9a096cfd46 MTRR configuring
nick
parents: 4277
diff changeset
89 extern int mtrr_set_type(unsigned base,unsigned size,int type);
0d9a096cfd46 MTRR configuring
nick
parents: 4277
diff changeset
90
3973
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
91 #ifdef __cplusplus
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
92 }
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
93 #endif
138800dfbe22 preliminary support of direct hardware access
nick
parents:
diff changeset
94
25535
3baf6a2283da Add explanatory comments to the #endif part of multiple inclusion guards.
diego
parents: 23933
diff changeset
95 #endif /* LIBDHA_H */