Mercurial > mplayer.hg
annotate libdha/sysdep/AsmMacros_x86.h @ 13249:a6642a4330fa
ensure that avi files have a valid header as soon as possible.
without this, the header says 0x0 video size, which works with mplayer
when the video size is stored in the codec data, but it does NOT work
with other players or with codecs that don't store size (e.g. snow).
actually i don't like having seeks in the muxer module, but i don't
know any other way to implement this fix without major changes to
mencoder. if you have a better fix, please reverse this and commit
yours.
author | rfelker |
---|---|
date | Sun, 05 Sep 2004 16:51:15 +0000 |
parents | 62705b2298ff |
children |
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 */ | |
6 | |
7 #ifndef __ASM_MACROS_X86_H | |
8 #define __ASM_MACROS_X86_H | |
9 | |
10980 | 10 //#if defined (WINNT) |
11 //#error This stuff is not ported on your system | |
12 //#else | |
4164 | 13 |
4474 | 14 #include "config.h" |
15 | |
16 #ifdef CONFIG_DHAHELPER | |
17 #include <sys/ioctl.h> | |
18 #include "../kernelhelper/dhahelper.h" | |
19 | |
20 extern int dhahelper_fd; | |
21 extern int dhahelper_initialized; | |
22 #endif | |
23 | |
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
|
24 #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
|
25 #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
|
26 #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
|
27 |
12078
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
28 #ifndef SVGALIB_HELPER_IOC_MAGIC |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
29 /* svgalib 1.9.18+ compatibility ::atmos */ |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
30 #define SVGALIB_HELPER_IOCSOUTB SVGAHELPER_OUTB |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
31 #define SVGALIB_HELPER_IOCSOUTW SVGAHELPER_OUTW |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
32 #define SVGALIB_HELPER_IOCSOUTL SVGAHELPER_OUTL |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
33 #define SVGALIB_HELPER_IOCGINB SVGAHELPER_INB |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
34 #define SVGALIB_HELPER_IOCGINW SVGAHELPER_INW |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
35 #define SVGALIB_HELPER_IOCGINL SVGAHELPER_INL |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
36 #endif |
62705b2298ff
svgalib 1.9.18 compile fix, still wont work for me though...
atmos4
parents:
10980
diff
changeset
|
37 |
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
|
38 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
|
39 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
|
40 |
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
|
41 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
|
42 { |
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
|
43 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
|
44 |
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
|
45 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
|
46 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
|
47 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
|
48 } |
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
|
49 |
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
|
50 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
|
51 { |
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
|
52 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
|
53 |
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
|
54 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
|
55 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
|
56 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
|
57 } |
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
|
58 |
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
|
59 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
|
60 { |
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
|
61 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
|
62 |
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
|
63 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
|
64 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
|
65 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
|
66 } |
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
|
67 |
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
|
68 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
|
69 { |
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
|
70 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
|
71 |
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
|
72 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
|
73 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
|
74 |
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
|
75 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
|
76 } |
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
|
77 |
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
|
78 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
|
79 { |
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 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
|
81 |
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 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
|
83 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
|
84 |
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
|
85 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
|
86 } |
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
|
87 |
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
|
88 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
|
89 { |
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
|
90 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
|
91 |
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
|
92 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
|
93 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
|
94 |
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 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
|
96 } |
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 #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
|
98 |
4164 | 99 static __inline__ void outb(short port,char val) |
100 { | |
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
|
101 #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
|
102 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
|
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 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
|
105 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
|
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 #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
|
108 |
4474 | 109 #ifdef CONFIG_DHAHELPER |
110 if (dhahelper_initialized == 1) | |
111 { | |
112 dhahelper_port_t _port; | |
113 | |
114 _port.operation = PORT_OP_WRITE; | |
115 _port.addr = port; | |
116 _port.size = 1; | |
117 _port.value = val; | |
118 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
119 return; | |
120 } | |
121 else | |
122 #endif | |
4164 | 123 __asm__ __volatile__("outb %0,%1" : :"a" (val), "d" (port)); |
4474 | 124 return; |
4164 | 125 } |
126 | |
127 static __inline__ void outw(short port,short val) | |
128 { | |
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
|
129 #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
|
130 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
|
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 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
|
133 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
|
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 #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
|
136 |
4474 | 137 #ifdef CONFIG_DHAHELPER |
138 if (dhahelper_initialized == 1) | |
139 { | |
140 dhahelper_port_t _port; | |
141 | |
142 _port.operation = PORT_OP_WRITE; | |
143 _port.addr = port; | |
144 _port.size = 2; | |
145 _port.value = val; | |
146 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
147 return; | |
148 } | |
149 else | |
150 #endif | |
4164 | 151 __asm__ __volatile__("outw %0,%1" : :"a" (val), "d" (port)); |
4474 | 152 return; |
4164 | 153 } |
154 | |
155 static __inline__ void outl(short port,unsigned int val) | |
156 { | |
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
|
157 #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
|
158 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
|
159 { |
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 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
|
161 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
|
162 } |
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 #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
|
164 |
4474 | 165 #ifdef CONFIG_DHAHELPER |
166 if (dhahelper_initialized == 1) | |
167 { | |
168 dhahelper_port_t _port; | |
169 | |
170 _port.operation = PORT_OP_WRITE; | |
171 _port.addr = port; | |
172 _port.size = 4; | |
173 _port.value = val; | |
174 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
175 return; | |
176 } | |
177 else | |
178 #endif | |
4164 | 179 __asm__ __volatile__("outl %0,%1" : :"a" (val), "d" (port)); |
4474 | 180 return; |
4164 | 181 } |
182 | |
183 static __inline__ unsigned int inb(short port) | |
184 { | |
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
|
185 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
|
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 #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
|
188 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
|
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 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
|
191 } |
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
|
192 #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
|
193 |
4474 | 194 #ifdef CONFIG_DHAHELPER |
195 if (dhahelper_initialized == 1) | |
196 { | |
197 dhahelper_port_t _port; | |
198 | |
199 _port.operation = PORT_OP_READ; | |
200 _port.addr = port; | |
201 _port.size = 1; | |
202 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
203 return _port.value; | |
204 } | |
205 else | |
206 #endif | |
4164 | 207 __asm__ __volatile__("inb %1,%0" : |
208 "=a" (ret) : | |
209 "d" (port)); | |
210 return ret; | |
211 } | |
212 | |
213 static __inline__ unsigned int inw(short port) | |
214 { | |
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
|
215 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
|
216 |
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 #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
|
218 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
|
219 { |
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
|
220 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
|
221 } |
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
|
222 #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
|
223 |
4474 | 224 #ifdef CONFIG_DHAHELPER |
225 if (dhahelper_initialized == 1) | |
226 { | |
227 dhahelper_port_t _port; | |
228 | |
229 _port.operation = PORT_OP_READ; | |
230 _port.addr = port; | |
231 _port.size = 2; | |
232 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
233 return _port.value; | |
234 } | |
235 else | |
236 #endif | |
4164 | 237 __asm__ __volatile__("inw %1,%0" : |
238 "=a" (ret) : | |
239 "d" (port)); | |
240 return ret; | |
241 } | |
242 | |
243 static __inline__ unsigned int inl(short port) | |
244 { | |
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
|
245 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
|
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 #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
|
248 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
|
249 { |
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
|
250 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
|
251 } |
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
|
252 #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
|
253 |
4474 | 254 #ifdef CONFIG_DHAHELPER |
255 if (dhahelper_initialized == 1) | |
256 { | |
257 dhahelper_port_t _port; | |
258 | |
259 _port.operation = PORT_OP_READ; | |
260 _port.addr = port; | |
261 _port.size = 4; | |
262 if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0) | |
263 return _port.value; | |
264 } | |
265 else | |
266 #endif | |
4164 | 267 __asm__ __volatile__("inl %1,%0" : |
268 "=a" (ret) : | |
269 "d" (port)); | |
270 return ret; | |
271 } | |
272 | |
273 static __inline__ void intr_disable() | |
274 { | |
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
|
275 #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
|
276 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
|
277 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
|
278 #endif |
4164 | 279 __asm__ __volatile__("cli"); |
280 } | |
281 | |
282 static __inline__ void intr_enable() | |
283 { | |
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
|
284 #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
|
285 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
|
286 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
|
287 #endif |
4164 | 288 __asm__ __volatile__("sti"); |
289 } | |
290 | |
291 #endif | |
292 | |
10980 | 293 //#endif |