[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
- colortext patch,
Marcus Brinkmann <=