bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

colortext patch


From: Marcus Brinkmann
Subject: colortext patch
Date: Tue, 2 Oct 2001 00:37:59 +0200
User-agent: Mutt/1.3.22i

Hi,

forgot the patch in my last message...

Marcus

--- ../colortext-0.3/screen.c   Mon Oct 11 17:05:47 1999
+++ screen.c    Mon Oct  1 23:58:33 2001
@@ -24,6 +24,7 @@
 #include <assert.h>            /* assert */
 #include <string.h>            /* memmove */
 #include <mach/machine/pio.h>  /* outb */
+#include <paths.h>             /* _PATH_MEM */
 #include "util.h"              /* xmalloc */
 #if 0
 # include "mach_i386.h"                /* i386_io_port_add */
@@ -39,7 +40,6 @@
 
 #define VIDMMAP_BEGIN 0xB8000
 #define VIDMMAP_SIZE (0xC0000 - 0xB8000)
-#define VIDMMAP_KDOFS 0xA0000 /* == kd_bitmap_start in mach/i386/i386at/kd.c */
 
 void
 screen_init_thread (void)
@@ -59,39 +59,21 @@
 map_videomem (void)
 {
   error_t err;
-  device_t device_master = MACH_PORT_NULL;
-  memory_object_t kd_mem = MACH_PORT_NULL;
-  vm_address_t mapped;
+  int mem;
   
   if (videomem)
     return;                    /* already mapped */
 
-  err = get_privileged_ports (0, &device_master);
-  if (err)
-    error (EXIT_FAILURE, err, "get_privileged_ports");
-
-  err = device_open (device_master, D_WRITE, "kd", &kd_device);
-  if (err)
-    error (EXIT_FAILURE, err, "device_open");
-
-  err = device_map (kd_device, VM_PROT_READ | VM_PROT_WRITE,
-                   VIDMMAP_BEGIN - VIDMMAP_KDOFS, VIDMMAP_SIZE,
-                   &kd_mem, 0);
-  if (err)
-    error (EXIT_FAILURE, err, "device_map");
-
-  err = vm_map (mach_task_self (), &mapped, VIDMMAP_SIZE,
-               0, 1, kd_mem, VIDMMAP_BEGIN - VIDMMAP_KDOFS, 0,
-               VM_PROT_READ | VM_PROT_WRITE, VM_PROT_READ | VM_PROT_WRITE,
-               VM_INHERIT_NONE);
-  if (err)
-    error (EXIT_FAILURE, err, "vm_map");
+  mem = open (_PATH_MEM, O_RDWR);
+  if (mem < 0)
+    error (EXIT_FAILURE, errno, "opening " _PATH_MEM);
+
+  videomem = mmap (0, VIDMMAP_SIZE, PROT_READ | PROT_WRITE,
+                  MAP_SHARED, mem   &kd_mem, VIDMMAP_BEGIN);
+  close (mem);
 
-  videomem = (uint16_t *) mapped;
-  assert (videomem != NULL);
-
-  mach_port_deallocate (mach_task_self (), device_master);
-  mach_port_deallocate (mach_task_self (), kd_mem);
+  if (videomem < 0)
+    error (EXIT_FAILURE, errno, "mmap");
 }
 
 struct screen *

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann              GNU    http://www.gnu.org    marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de



reply via email to

[Prev in Thread] Current Thread [Next in Thread]