update to the 1.6 aperture driver from 3.2 XFree86.
authormickey <mickey@openbsd.org>
Sun, 19 Jan 1997 12:29:23 +0000 (12:29 +0000)
committermickey <mickey@openbsd.org>
Sun, 19 Jan 1997 12:29:23 +0000 (12:29 +0000)
add manual (composed from mem(4) and README)

lkm/ap/Makefile
lkm/ap/ap.4 [new file with mode: 0644]
lkm/ap/aperture.c
lkm/ap/version.c

index 84bed5e..6e921ea 100644 (file)
@@ -1,8 +1,9 @@
-#      $OpenBSD: Makefile,v 1.3 1996/06/03 04:02:22 mickey Exp $
+#      $OpenBSD: Makefile,v 1.4 1997/01/19 12:29:23 mickey Exp $
 
 LKM=   ap
 SRCS+= aperture.c lkm.c version.c
-NOMAN= noman
+MAN=   ap.4
+MLINKS=        ap.4 xf86.4
 
 .ifmake !(install)
 SUBDIR=        aptest
diff --git a/lkm/ap/ap.4 b/lkm/ap/ap.4
new file mode 100644 (file)
index 0000000..db3d228
--- /dev/null
@@ -0,0 +1,75 @@
+.\"    $OpenBSD: ap.4,v 1.1 1997/01/19 12:29:25 mickey Exp $
+.\"
+.\" Copyright (c) 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"    from: @(#)mem.4 5.3 (Berkeley) 5/2/91
+.\"    from Id: mem.4,v 1.1.1.1 1995/10/18 08:44:29 deraadt Exp
+.\"
+.Dd Jan 19, 1997
+.Dt AP 4
+.Os
+.Sh NAME
+.Nm xf86
+.Nd XFree86 Framebuffer aperture driver
+.Sh DESCRIPTION
+This module was written to help work around the security feature of
+the OS that prevents read/write access to /dev/mem.
+.Pp
+XFree86 can take advantage of having direct access to video
+memory (especially with VLB and PCI cards) and even requires it for
+the P9000 server.
+.Pp
+This driver works like the standard
+.Nm /dev/mem
+driver. It just allows
+mapping of the VGA framebuffer even if kernel security level is > 0.
+The driver only implements the
+.Xr open 2 ,
+.Xr close 2 ,
+.Xr mmap 2
+calls. In
+order not to defeat kernel security, only one open() at a time is
+allowed and only a process with effective user id of 0 can perform
+it. So while you're running XFree86, no other process will be allowed
+to open
+.Nm /dev/xf86
+.Sh FILES
+.Bl -tag -width Pa -compact
+.It Pa /dev/xf86
+.El
+.Sh SEE ALSO
+.Xr mem 4 ,
+.Xr kmem 4
+.Sh HISTORY
+This work is heavily inspired from the Solaris x86 aperture driver by
+Doug Anson (danson@lgc.com) and David Holland (davidh@use.com).
+
index 89543c1..89c9931 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: aperture.c,v 1.2 1996/12/21 22:23:38 millert Exp $    */
+/*     $OpenbSD$       */
 
 /*
  * Copyright 1994 the XFree86 Project Inc. 
 #include <sys/errno.h>
 
 #define VGA_START 0xA0000
+#ifdef PC98 
+#define VGA_END   0xFFFFF
+#define HOLE16M_START  0xF00000
+#define HOLE16M_END    0xFFFFFF
+#else 
 #define VGA_END   0xBFFFF
+#endif 
 
 /* open counter */
 static int ap_open_count = 0;
@@ -25,6 +31,7 @@ static int ap_open_count = 0;
 int
 apopen(dev_t dev, int oflags, int devtype, struct proc *p)
 {
+
     if (suser(p->p_ucred, &p->p_acflag) != 0) {
        return(EPERM);
     }
@@ -62,8 +69,13 @@ apmmap(dev_t dev, int offset, int length)
     printf("apmmap: addr 0x%x\n", offset);
 #endif
     if  ((minor(dev) == 0) 
-         && ((offset >= VGA_START && offset <= VGA_END)
-            || (unsigned)offset > (unsigned)ctob(physmem))) {
+        && ((offset >= VGA_START && offset <= VGA_END )
+            || (unsigned)offset > (unsigned)ctob(physmem)
+#ifdef PC98
+            || ((unsigned)offset >=HOLE16M_START
+                   && (unsigned)offset <= HOLE16M_END)
+#endif
+            )) {
        return i386_btop(offset);
     } else {
        return(-1);
index b545be1..ce0ea44 100644 (file)
@@ -1,8 +1,9 @@
-/*     $OpenBSD: version.c,v 1.1 1996/03/05 11:25:36 mickey Exp $      */
+/*     $OpenbSD$       */
+
 /*
  * Loadable Kernel Module for XFree86 Aperture driver
  *
- * Copyright (c) 1994 The XFree86 Project Inc.
+ * Copyright (c) 1994,1996 The XFree86 Project Inc.
  */
 char *ap_major_version = "1";
-char *ap_minor_version = "4";
+char *ap_minor_version = "6";