Mercurial > mplayer.hg
annotate vidix/sysdep/AsmMacros_x86.h @ 26625:5b89b42f6d50
Only compile and use libmpeg2 AltiVec code when AltiVec is available. The
AltiVec code needs -maltivec to compile, but then AltiVec instructions
appear in other places of the code causing MPlayer to sigill.
Somehow upstream libmpeg2 manages not to sigill under what appear to be
the same circumstances. Enlightenment welcome.
author | diego |
---|---|
date | Sat, 03 May 2008 15:23:22 +0000 |
parents | a93e46adb54c |
children | 9ae10ac43d8c |
rev | line source |
---|---|
4164 | 1 /* |
2 This file is based on: | |
3 $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/util/AsmMacros.h,v 1.1 2001/11/16 21:13:34 tsi Exp $ | |
4 Modified for readability by Nick Kurshev | |
5 */ | |
25132
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
6 /* |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
7 * (c) Copyright 1993,1994 by David Wexelblat <dwex@xfree86.org> |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
8 * |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
9 * Permission is hereby granted, free of charge, to any person obtaining a |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
10 * copy of this software and associated documentation files (the "Software"), |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
11 * to deal in the Software without restriction, including without limitation |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
12 * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
13 * and/or sell copies of the Software, and to permit persons to whom the |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
14 * Software is furnished to do so, subject to the following conditions: |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
15 * |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
16 * The above copyright notice and this permission notice shall be included in |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
17 * all copies or substantial portions of the Software. |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
18 * |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
22 * DAVID WEXELBLAT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
23 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
24 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
25 * SOFTWARE. |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
26 * |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
27 * Except as contained in this notice, the name of David Wexelblat shall not be |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
28 * used in advertising or otherwise to promote the sale, use or other dealings |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
29 * in this Software without prior written authorization from David Wexelblat. |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
30 */ |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
31 /* |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
32 * Copyright 1997 |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
33 * Digital Equipment Corporation. All rights reserved. |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
34 * This software is furnished under license and may be used and copied only in |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
35 * accordance with the following terms and conditions. Subject to these |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
36 * conditions, you may download, copy, install, use, modify and distribute |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
37 * this software in source and/or binary form. No title or ownership is |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
38 * transferred hereby. |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
39 * |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
40 * 1) Any source code used, modified or distributed must reproduce and retain |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
41 * this copyright notice and list of conditions as they appear in the source |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
42 * file. |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
43 * |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
44 * 2) No right is granted to use any trade name, trademark, or logo of Digital |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
45 * Equipment Corporation. Neither the "Digital Equipment Corporation" name |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
46 * nor any trademark or logo of Digital Equipment Corporation may be used |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
47 * to endorse or promote products derived from this software without the |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
48 * prior written permission of Digital Equipment Corporation. |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
49 * |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
50 * 3) This software is provided "AS-IS" and any express or implied warranties, |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
51 * including but not limited to, any implied warranties of merchantability, |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
52 * fitness for a particular purpose, or non-infringement are disclaimed. In |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
53 * no event shall DIGITAL be liable for any damages whatsoever, and in |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
54 * particular, DIGITAL shall not be liable for special, indirect, |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
55 * consequential, or incidental damages or damages for |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
56 * lost profits, loss of revenue or loss of use, whether such damages arise |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
57 * in contract, |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
58 * negligence, tort, under statute, in equity, at law or otherwise, even if |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
59 * advised of the possibility of such damage. |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
23934
diff
changeset
|
60 */ |
4164 | 61 |
26030 | 62 #ifndef MPLAYER_ASMMACROS_X86_H |
63 #define MPLAYER_ASMMACROS_X86_H | |
4164 | 64 |
10980 | 65 //#if defined (WINNT) |
66 //#error This stuff is not ported on your system | |
67 //#else | |
4164 | 68 |
4474 | 69 #include "config.h" |
70 | |
71 #ifdef CONFIG_DHAHELPER | |
72 #include <sys/ioctl.h> | |
73 #include "../kernelhelper/dhahelper.h" | |
74 | |
75 extern int dhahelper_fd; | |
76 extern int dhahelper_initialized; | |
77 #endif | |
78 | |
8503
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
79 #ifdef CONFIG_SVGAHELPER |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
80 #include <sys/ioctl.h> |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
81 #include <svgalib_helper.h> |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
82 |
12078
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
83 #ifndef SVGALIB_HELPER_IOC_MAGIC |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
84 /* svgalib 1.9.18+ compatibility ::atmos */ |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
85 #define SVGALIB_HELPER_IOCSOUTB SVGAHELPER_OUTB |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
86 #define SVGALIB_HELPER_IOCSOUTW SVGAHELPER_OUTW |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
87 #define SVGALIB_HELPER_IOCSOUTL SVGAHELPER_OUTL |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
88 #define SVGALIB_HELPER_IOCGINB SVGAHELPER_INB |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
89 #define SVGALIB_HELPER_IOCGINW SVGAHELPER_INW |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
90 #define SVGALIB_HELPER_IOCGINL SVGAHELPER_INL |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
91 #endif |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
92 |
8503
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
93 extern int svgahelper_fd; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
94 extern int svgahelper_initialized; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
95 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
96 static __inline__ void svga_outb(short port, char value) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
97 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
98 io_t iov; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
99 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
100 iov.val = value; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
101 iov.port = port; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
102 ioctl(svgahelper_fd, SVGALIB_HELPER_IOCSOUTB, &iov); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
103 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
104 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
105 static __inline__ void svga_outw(short port, char value) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
106 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
107 io_t iov; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
108 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
109 iov.val = value; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
110 iov.port = port; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
111 ioctl(svgahelper_fd, SVGALIB_HELPER_IOCSOUTW, &iov); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
112 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
113 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
114 static __inline__ void svga_outl(short port, unsigned int value) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
115 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
116 io_t iov; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
117 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
118 iov.val = value; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
119 iov.port = port; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
120 ioctl(svgahelper_fd, SVGALIB_HELPER_IOCSOUTL, &iov); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
121 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
122 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
123 static __inline__ unsigned int svga_inb(short port) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
124 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
125 io_t iov; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
126 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
127 iov.port = port; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
128 ioctl(svgahelper_fd, SVGALIB_HELPER_IOCGINB, &iov); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
129 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
130 return iov.val; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
131 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
132 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
133 static __inline__ unsigned int svga_inw(short port) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
134 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
135 io_t iov; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
136 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
137 iov.port = port; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
138 ioctl(svgahelper_fd, SVGALIB_HELPER_IOCGINW, &iov); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
139 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
140 return iov.val; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
141 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
142 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
143 static __inline__ unsigned int svga_inl(short port) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
144 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
145 io_t iov; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
146 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
147 iov.port = port; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
148 ioctl(svgahelper_fd, SVGALIB_HELPER_IOCGINL, &iov); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
149 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
150 return iov.val; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
151 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
152 #endif /* CONIFG_SVGAHELPER */ |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
153 |
4164 | 154 static __inline__ void outb(short port,char val) |
155 { | |
8503
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
156 #ifdef CONFIG_SVGAHELPER |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
157 if (svgahelper_initialized == 1) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
158 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
159 svga_outb(port, val); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
160 return; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
161 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
162 #endif |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
163 |
4474 | 164 #ifdef CONFIG_DHAHELPER |
165 if (dhahelper_initialized == 1) | |
166 { | |
167 dhahelper_port_t _port; | |
168 | |
169 _port.operation = PORT_OP_WRITE; | |
170 _port.addr = port; | |
171 _port.size = 1; | |
172 _port.value = val; | |
173 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
174 return; | |
175 } | |
176 else | |
177 #endif | |
4164 | 178 __asm__ __volatile__("outb %0,%1" : :"a" (val), "d" (port)); |
4474 | 179 return; |
4164 | 180 } |
181 | |
182 static __inline__ void outw(short port,short val) | |
183 { | |
8503
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
184 #ifdef CONFIG_SVGAHELPER |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
185 if (svgahelper_initialized == 1) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
186 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
187 svga_outw(port, val); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
188 return; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
189 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
190 #endif |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
191 |
4474 | 192 #ifdef CONFIG_DHAHELPER |
193 if (dhahelper_initialized == 1) | |
194 { | |
195 dhahelper_port_t _port; | |
196 | |
197 _port.operation = PORT_OP_WRITE; | |
198 _port.addr = port; | |
199 _port.size = 2; | |
200 _port.value = val; | |
201 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
202 return; | |
203 } | |
204 else | |
205 #endif | |
4164 | 206 __asm__ __volatile__("outw %0,%1" : :"a" (val), "d" (port)); |
4474 | 207 return; |
4164 | 208 } |
209 | |
210 static __inline__ void outl(short port,unsigned int val) | |
211 { | |
8503
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
212 #ifdef CONFIG_SVGAHELPER |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
213 if (svgahelper_initialized == 1) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
214 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
215 svga_outl(port, val); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
216 return; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
217 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
218 #endif |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
219 |
4474 | 220 #ifdef CONFIG_DHAHELPER |
221 if (dhahelper_initialized == 1) | |
222 { | |
223 dhahelper_port_t _port; | |
224 | |
225 _port.operation = PORT_OP_WRITE; | |
226 _port.addr = port; | |
227 _port.size = 4; | |
228 _port.value = val; | |
229 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
230 return; | |
231 } | |
232 else | |
233 #endif | |
4164 | 234 __asm__ __volatile__("outl %0,%1" : :"a" (val), "d" (port)); |
4474 | 235 return; |
4164 | 236 } |
237 | |
238 static __inline__ unsigned int inb(short port) | |
239 { | |
8503
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
240 unsigned char ret = 0; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
241 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
242 #ifdef CONFIG_SVGAHELPER |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
243 if (svgahelper_initialized == 1) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
244 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
245 return svga_inb(port); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
246 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
247 #endif |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
248 |
4474 | 249 #ifdef CONFIG_DHAHELPER |
250 if (dhahelper_initialized == 1) | |
251 { | |
252 dhahelper_port_t _port; | |
253 | |
254 _port.operation = PORT_OP_READ; | |
255 _port.addr = port; | |
256 _port.size = 1; | |
257 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
258 return _port.value; | |
259 } | |
260 else | |
261 #endif | |
4164 | 262 __asm__ __volatile__("inb %1,%0" : |
263 "=a" (ret) : | |
264 "d" (port)); | |
265 return ret; | |
266 } | |
267 | |
268 static __inline__ unsigned int inw(short port) | |
269 { | |
8503
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
270 unsigned short ret = 0; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
271 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
272 #ifdef CONFIG_SVGAHELPER |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
273 if (svgahelper_initialized == 1) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
274 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
275 return svga_inw(port); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
276 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
277 #endif |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
278 |
4474 | 279 #ifdef CONFIG_DHAHELPER |
280 if (dhahelper_initialized == 1) | |
281 { | |
282 dhahelper_port_t _port; | |
283 | |
284 _port.operation = PORT_OP_READ; | |
285 _port.addr = port; | |
286 _port.size = 2; | |
287 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
288 return _port.value; | |
289 } | |
290 else | |
291 #endif | |
4164 | 292 __asm__ __volatile__("inw %1,%0" : |
293 "=a" (ret) : | |
294 "d" (port)); | |
295 return ret; | |
296 } | |
297 | |
298 static __inline__ unsigned int inl(short port) | |
299 { | |
8503
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
300 unsigned int ret = 0; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
301 |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
302 #ifdef CONFIG_SVGAHELPER |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
303 if (svgahelper_initialized == 1) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
304 { |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
305 return svga_inl(port); |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
306 } |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
307 #endif |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
308 |
4474 | 309 #ifdef CONFIG_DHAHELPER |
310 if (dhahelper_initialized == 1) | |
311 { | |
312 dhahelper_port_t _port; | |
313 | |
314 _port.operation = PORT_OP_READ; | |
315 _port.addr = port; | |
316 _port.size = 4; | |
317 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
318 return _port.value; | |
319 } | |
320 else | |
321 #endif | |
4164 | 322 __asm__ __volatile__("inl %1,%0" : |
323 "=a" (ret) : | |
324 "d" (port)); | |
325 return ret; | |
326 } | |
327 | |
328 static __inline__ void intr_disable() | |
329 { | |
8503
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
330 #ifdef CONFIG_SVGAHELPER |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
331 if (svgahelper_initialized == 1) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
332 return; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
333 #endif |
4164 | 334 __asm__ __volatile__("cli"); |
335 } | |
336 | |
337 static __inline__ void intr_enable() | |
338 { | |
8503
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
339 #ifdef CONFIG_SVGAHELPER |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
340 if (svgahelper_initialized == 1) |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
341 return; |
9dbb9c710480
svgalib kernelhelper support (based on patch by Matan Ziv-Av <matan@svgalib.org>) and some reordering/cleanup (part #1 ;)
alex
parents:
4474
diff
changeset
|
342 #endif |
4164 | 343 __asm__ __volatile__("sti"); |
344 } | |
345 | |
25532 | 346 //#endif |
4164 | 347 |
26030 | 348 #endif /* MPLAYER_ASMMACROS_X86_H */ |