summaryrefslogtreecommitdiff
path: root/sysutils/aperture/patches/patch-ad
blob: 191da3f85c0cf7af93942cd9787f667914f186fe (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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
$NetBSD: patch-ad,v 1.7 2005/12/14 13:42:45 christos Exp $

--- aperture.c.orig	2005-12-14 08:34:23.000000000 -0500
+++ aperture.c	2005-12-14 08:41:10.000000000 -0500
@@ -71,6 +71,10 @@
 /* open counter */
 static int xf86_open_count = 0;
 
+#if !defined(__NetBSD_Version__) || __NetBSD_Version__ < 399001400
+#define PROC
+#endif
+
 /* mem range descriptors */
 struct mem_range_softc mem_range_softc;
 
@@ -78,12 +82,15 @@
  * Open the device
  */
 int
-xf86open(dev, oflags, devtype, p)
-	dev_t dev;
-	int oflags;
-	int devtype;
-	struct proc *p;
+xf86open(dev_t dev, int oflags, int devtype, 
+#ifdef PROC
+    struct proc *p)
+{
+#else
+    struct lwp *l)
 {
+	struct proc *p = l->l_proc;
+#endif
 
 	if (suser(p->p_ucred, &p->p_acflag) != 0) {
 		return(EPERM);
@@ -101,11 +108,13 @@
  * Close the device
  */
 int
-xf86close(dev, cflags, devtype, p)
-	dev_t dev;
-	int cflags;
-	int devtype;
-	struct proc *p;
+xf86close(dev_t dev, int cflags, int devtype,
+#ifdef PROC
+    struct proc *p
+#else
+    struct lwp *l
+#endif
+)
 {
 	xf86_open_count--;
 	return(0);
@@ -117,19 +126,22 @@
  * allow only section in the vga framebuffer and above main memory 
  * to be mapped
  */
+/*
+ * Technically, the change to the kernel mmap interface happened
+ * during 1.5A, but after the interface changed, the kernel version
+ * was inexplicably not bumped.  Starting with 1.5B _and_ with the
+ * 1.5-branch releases, the change to the kernel mmap interface
+ * appears.
+ */
 #if !defined(__NetBSD_Version__) || \
-    (defined(__NetBSD_Version__) && (__NetBSD_Version__ < 105000000))
+    (defined(__NetBSD_Version__) && \
+     ((__NetBSD_Version__ < 105000000) || \
+      (__NetBSD_Version__ >= 105010000) && (__NetBSD_Version__ < 105020000)))
 int
-xf86mmap(dev, offset, length)
-	dev_t dev;
-	int offset;
-	int length;
+xf86mmap(dev_t dev, int offset, int length)
 #else
 paddr_t
-xf86mmap(dev, offset, length)
-	dev_t dev;
-	off_t offset;
-	int length;
+xf86mmap(dev_t dev, off_t offset, int length)
 #endif /* __NetBSD_Version__ */
 {
 
@@ -144,19 +156,24 @@
 		     && (unsigned)offset <= HOLE16M_END)
 #endif
 		     )) {
+#if __NetBSD_Version__ >= 106160000
+		return x86_btop(offset);
+#else
 		return i386_btop(offset);
+#endif
 	} else {
 		return(-1);
 	}
 }
        
 int
-xf86ioctl(dev, cmd, data, flags, p)
-	dev_t dev;
-	u_long cmd;
-	caddr_t data;
-	int flags;
-	struct proc *p;
+xf86ioctl(dev_t dev, u_long cmd, caddr_t data, int flags,
+#ifdef PROC
+	struct proc *p
+#else
+	struct lwp *l
+#endif
+)
 {
 	int nd, error = 0;
 	struct mem_range_op *mo = (struct mem_range_op *)data;
@@ -212,9 +229,7 @@
  * memory range attributes.
  */
 int
-mem_range_attr_get(mrd, arg)
-	struct mem_range_desc *mrd;
-	int *arg;
+mem_range_attr_get(struct mem_range_desc *mrd, int *arg)
 {
 	/* can we handle this? */
 	if (mem_range_softc.mr_op == NULL)
@@ -229,9 +244,7 @@
 }
 
 int
-mem_range_attr_set(mrd, arg)
-	struct mem_range_desc *mrd;
-	int *arg;
+mem_range_attr_set(struct mem_range_desc *mrd, int *arg)
 {
 	/* can we handle this? */
 	if (mem_range_softc.mr_op == NULL)