summaryrefslogtreecommitdiff
blob: 84485c986aa547ca99d9cb9d2f60e9b4e36a5553 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index 1653574..fe881ee 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -286,6 +286,54 @@ extern _X_EXPORT unsigned int inl(unsigned int port);
 #include <machine/pio.h>
 #endif                          /* __NetBSD__ */
 
+#elif defined(linux) && defined(__ia64__)
+/* for Linux on ia64, we use the LIBC _inx/_outx routines */
+/* note that the appropriate setup via "ioperm" needs to be done */
+/*  *before* any inx/outx is done. */
+
+extern _X_EXPORT void _outb(unsigned char val, unsigned long port);
+extern _X_EXPORT void _outw(unsigned short val, unsigned long port);
+extern _X_EXPORT void _outl(unsigned int val, unsigned long port);
+extern _X_EXPORT unsigned int _inb(unsigned long port);
+extern _X_EXPORT unsigned int _inw(unsigned long port);
+extern _X_EXPORT unsigned int _inl(unsigned long port);
+
+static __inline__ void
+outb(unsigned long port, unsigned char val)
+{
+    _outb(val, port);
+}
+
+static __inline__ void
+outw(unsigned long port, unsigned short val)
+{
+    _outw(val, port);
+}
+
+static __inline__ void
+outl(unsigned long port, unsigned int val)
+{
+    _outl(val, port);
+}
+
+static __inline__ unsigned int
+inb(unsigned long port)
+{
+    return _inb(port);
+}
+
+static __inline__ unsigned int
+inw(unsigned long port)
+{
+    return _inw(port);
+}
+
+static __inline__ unsigned int
+inl(unsigned long port)
+{
+    return _inl(port);
+}
+
 #elif defined(__amd64__)
 
 #include <inttypes.h>