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

X Strike Force X.Org X11 SVN commit: r3924 - in trunk/xserver/xorg-server/debian: . patches



Author: julien
Date: 2006-10-31 12:29:52 -0500 (Tue, 31 Oct 2006)
New Revision: 3924

Modified:
   trunk/xserver/xorg-server/debian/changelog
   trunk/xserver/xorg-server/debian/patches/24_hurd_support.diff
Log:
* Update hurd support patch (Closes: #356300). Thanks, Samuel Thibault.

Modified: trunk/xserver/xorg-server/debian/changelog
===================================================================
--- trunk/xserver/xorg-server/debian/changelog	2006-10-31 17:18:45 UTC (rev 3923)
+++ trunk/xserver/xorg-server/debian/changelog	2006-10-31 17:29:52 UTC (rev 3924)
@@ -10,8 +10,9 @@
   [ Julien Cristau ]
   * Don't build-depend on libdrm-dev on hurd-i386 (closes: #358015). Thanks,
     Samuel Thibault.
+  * Update hurd support patch (Closes: #356300). Thanks, Samuel Thibault.
 
- -- Drew Parsons <dparsons@debian.org>  Sat, 28 Oct 2006 00:48:42 +1000
+ -- Julien Cristau <julien.cristau@ens-lyon.org>  Tue, 31 Oct 2006 18:22:56 +0100
 
 xorg-server (2:1.1.1-10) unstable; urgency=low
 

Modified: trunk/xserver/xorg-server/debian/patches/24_hurd_support.diff
===================================================================
--- trunk/xserver/xorg-server/debian/patches/24_hurd_support.diff	2006-10-31 17:18:45 UTC (rev 3923)
+++ trunk/xserver/xorg-server/debian/patches/24_hurd_support.diff	2006-10-31 17:29:52 UTC (rev 3924)
@@ -1,8 +1,19 @@
 Index: xorg-server/configure.ac
 ===================================================================
---- xorg-server.orig/configure.ac	2006-09-27 20:58:22.000000000 -0400
-+++ xorg-server/configure.ac	2006-09-27 20:58:36.000000000 -0400
-@@ -1470,7 +1470,15 @@
+--- xorg-server.orig/configure.ac	2006-10-31 17:25:45.000000000 +0100
++++ xorg-server/configure.ac	2006-10-31 17:27:54.000000000 +0100
+@@ -1177,6 +1177,10 @@
+ 			XORG_CFLAGS="${XORG_CFLAGS} "'$(SOLARIS_ASM_CFLAGS)'
+ 		fi
+ 		;;
++	  gnu*)
++	  	XORG_OS="gnu"
++		XORG_OS_SUBDIR="hurd"
++		;;
+ 	  *)
+ 	  	XORG_OS="unknown"
+ 		XORG_OS_SUBDIR="unknown"
+@@ -1477,7 +1481,15 @@
      #    $MIEXT_SHADOW_LIB $XPSTUBS_LIB"
      KDRIVE_PURE_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $OS_LIB"
      KDRIVE_LIB='$(top_builddir)/hw/kdrive/src/libkdrive.a'
@@ -19,10 +30,18 @@
      KDRIVE_STUB_LIB='$(top_builddir)/hw/kdrive/src/libkdrivestubs.a'
      KDRIVE_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_OS_LIB $KDRIVE_PURE_LIBS $KDRIVE_STUB_LIB"
  
+@@ -1706,6 +1718,7 @@
+ hw/xfree86/os-support/solaris/Makefile
+ hw/xfree86/os-support/sysv/Makefile
+ hw/xfree86/os-support/usl/Makefile
++hw/xfree86/os-support/hurd/Makefile
+ hw/xfree86/parser/Makefile
+ hw/xfree86/rac/Makefile
+ hw/xfree86/ramdac/Makefile
 Index: xorg-server/hw/kdrive/Makefile.am
 ===================================================================
---- xorg-server.orig/hw/kdrive/Makefile.am	2006-09-18 17:26:22.000000000 -0400
-+++ xorg-server/hw/kdrive/Makefile.am	2006-09-27 20:58:36.000000000 -0400
+--- xorg-server.orig/hw/kdrive/Makefile.am	2006-10-28 16:58:28.000000000 +0200
++++ xorg-server/hw/kdrive/Makefile.am	2006-10-31 17:25:45.000000000 +0100
 @@ -15,9 +15,13 @@
  XEPHYR_SUBDIRS = ephyr
  endif
@@ -40,8 +59,8 @@
  	$(VESA_SUBDIRS)		\
 Index: xorg-server/GL/glx/indirect_dispatch_swap.c
 ===================================================================
---- xorg-server.orig/GL/glx/indirect_dispatch_swap.c	2006-09-18 17:27:44.000000000 -0400
-+++ xorg-server/GL/glx/indirect_dispatch_swap.c	2006-09-27 20:58:36.000000000 -0400
+--- xorg-server.orig/GL/glx/indirect_dispatch_swap.c	2006-10-28 16:58:28.000000000 +0200
++++ xorg-server/GL/glx/indirect_dispatch_swap.c	2006-10-31 17:25:45.000000000 +0100
 @@ -28,7 +28,7 @@
  #include <X11/Xmd.h>
  #include <GL/gl.h>
@@ -53,8 +72,8 @@
  #include <sys/endian.h>
 Index: xorg-server/GL/glx/indirect_reqsize.c
 ===================================================================
---- xorg-server.orig/GL/glx/indirect_reqsize.c	2006-09-18 17:27:44.000000000 -0400
-+++ xorg-server/GL/glx/indirect_reqsize.c	2006-09-27 20:58:36.000000000 -0400
+--- xorg-server.orig/GL/glx/indirect_reqsize.c	2006-10-28 16:58:28.000000000 +0200
++++ xorg-server/GL/glx/indirect_reqsize.c	2006-10-31 17:25:45.000000000 +0100
 @@ -31,7 +31,7 @@
  #include "indirect_size.h"
  #include "indirect_reqsize.h"
@@ -66,8 +85,8 @@
  #else
 Index: xorg-server/GL/glx/indirect_util.c
 ===================================================================
---- xorg-server.orig/GL/glx/indirect_util.c	2006-09-18 17:27:44.000000000 -0400
-+++ xorg-server/GL/glx/indirect_util.c	2006-09-27 20:58:36.000000000 -0400
+--- xorg-server.orig/GL/glx/indirect_util.c	2006-10-28 16:58:28.000000000 +0200
++++ xorg-server/GL/glx/indirect_util.c	2006-10-31 17:25:45.000000000 +0100
 @@ -28,7 +28,7 @@
  #include <X11/Xmd.h>
  #include <GL/gl.h>
@@ -77,3 +96,1054 @@
  #include <byteswap.h>
  #elif defined(__OpenBSD__)
  #include <sys/endian.h>
+Index: xorg-server/hw/xfree86/os-support/Makefile.am
+===================================================================
+--- xorg-server.orig/hw/xfree86/os-support/Makefile.am	2006-10-31 17:26:58.000000000 +0100
++++ xorg-server/hw/xfree86/os-support/Makefile.am	2006-10-31 17:27:54.000000000 +0100
+@@ -3,7 +3,7 @@
+ endif
+ 
+ SUBDIRS = bus @XORG_OS_SUBDIR@ misc $(DRI_SUBDIRS)
+-DIST_SUBDIRS = bsd bus drm misc linux lynxos solaris sysv sco usl
++DIST_SUBDIRS = bsd bus drm misc linux lynxos solaris sysv sco usl hurd
+ 
+ sdk_HEADERS = xf86_OSproc.h xf86_OSlib.h xf86_ansic.h xf86_libc.h \
+               assyntax.h xf86OSKbd.h xf86OSmouse.h
+Index: xorg-server/hw/xfree86/os-support/hurd/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xorg-server/hw/xfree86/os-support/hurd/Makefile.am	2006-10-31 17:27:54.000000000 +0100
+@@ -0,0 +1,18 @@
++noinst_LTLIBRARIES = libhurd.la
++
++libhurd_la_SOURCES = hurd_init.c hurd_io.c hurd_mmap.c hurd_kbd.c \
++		hurd_mouse.c hurd_video.c \
++		$(srcdir)/../shared/VTsw_noop.c \
++		$(srcdir)/../shared/posix_tty.c \
++		$(srcdir)/../shared/libc_wrapper.c \
++		$(srcdir)/../shared/stdResource.c \
++		$(srcdir)/../shared/stdPci.c \
++		$(srcdir)/../shared/sigiostubs.c \
++		$(srcdir)/../shared/pm_noop.c \
++		$(srcdir)/../shared/kmod_noop.c \
++		$(srcdir)/../shared/agp_noop.c \
++		$(srcdir)/../shared/at_scancode.c
++
++AM_CFLAGS = -DUSESTDRES -DHAVE_SYSV_IPC $(XORG_CFLAGS) @SERVER_DEFINES@ @LOADER_DEFINES@
++
++INCLUDES = $(XORG_INCS)
+Index: xorg-server/hw/xfree86/os-support/hurd/hurd_init.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xorg-server/hw/xfree86/os-support/hurd/hurd_init.c	2006-10-31 17:33:02.000000000 +0100
+@@ -0,0 +1,90 @@
++/*
++ * Copyright 1997,1998 by UCHIYAMA Yasushi
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that
++ * copyright notice and this permission notice appear in supporting
++ * documentation, and that the name of UCHIYAMA Yasushi not be used in
++ * advertising or publicity pertaining to distribution of the software without
++ * specific, written prior permission.  UCHIYAMA Yasushi makes no representations
++ * about the suitability of this software for any purpose.  It is provided
++ * "as is" without express or implied warranty.
++ *
++ * UCHIYAMA YASUSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL UCHIYAMA YASUSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ *
++ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/hurd/hurd_init.c,v 1.1 1998/08/16 10:25:48 dawes Exp $ */
++
++#ifdef HAVE_XORG_CONFIG_H
++#include <xorg-config.h>
++#endif
++
++#include <X11/X.h>
++
++#include "input.h"
++#include "scrnintstr.h"
++
++#include "compiler.h"
++
++#include "xf86.h"
++#include "xf86Priv.h"
++#include "xf86_OSlib.h"
++
++#include <stdio.h>
++#include <errno.h>
++#include <sys/time.h>
++#include <sys/file.h>
++#include <assert.h>
++#include <mach.h>
++
++int
++xf86ProcessArgument( int argc,char **argv, int i )
++{
++    return 0;
++}
++void
++xf86UseMsg()
++{
++    return;
++}
++
++
++void
++xf86OpenConsole()
++{
++    if( serverGeneration == 1 )
++    {
++	kern_return_t err;
++	mach_port_t device;
++	int fd;
++	err = get_privileged_ports( NULL, &device );
++	if( err )
++	{
++	    errno = err;
++	    FatalError( "xf86KbdInit can't get_privileged_ports. (%s)\n" , strerror(errno) );
++	}
++	mach_port_deallocate (mach_task_self (), device);
++
++	if( ( fd = open( "/dev/kbd" , O_RDONLY|O_NONBLOCK ) ) < 0 )
++	{
++	    fprintf( stderr , "Cannot open keyboard (%s)\n",strerror(errno) );
++	    exit(1);
++	}
++	xf86Info.consoleFd = fd;
++    }
++    return;
++}
++
++void
++xf86CloseConsole()
++{
++    close( xf86Info.consoleFd );
++    return;
++}
+Index: xorg-server/hw/xfree86/os-support/hurd/hurd_io.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xorg-server/hw/xfree86/os-support/hurd/hurd_io.c	2006-10-31 17:34:08.000000000 +0100
+@@ -0,0 +1,131 @@
++/*
++ * Copyright 1997,1998 by UCHIYAMA Yasushi
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that
++ * copyright notice and this permission notice appear in supporting
++ * documentation, and that the name of UCHIYAMA Yasushi not be used in
++ * advertising or publicity pertaining to distribution of the software without
++ * specific, written prior permission.  UCHIYAMA Yasushi makes no representations
++ * about the suitability of this software for any purpose.  It is provided
++ * "as is" without express or implied warranty.
++ *
++ * UCHIYAMA YASUSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL UCHIYAMA YASUSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ *
++ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/hurd/hurd_io.c,v 1.8 2002/10/11 01:40:35 dawes Exp $ */
++
++#define NEED_EVENTS
++#ifdef HAVE_XORG_CONFIG_H
++#include <xorg-config.h>
++#endif
++
++#include <X11/X.h>
++#include <X11/Xproto.h>
++#include "inputstr.h"
++#include "scrnintstr.h"
++#include "mipointer.h"
++
++#include "compiler.h"
++
++#include "xf86.h"
++#include "xf86Priv.h"
++#include "xf86_OSlib.h"
++
++#include <stdio.h>
++#include <errno.h>
++#include <sys/time.h>
++#include <sys/file.h>
++#include <assert.h>
++#include <mach.h>
++#include <sys/ioctl.h>
++
++typedef unsigned short kev_type;		/* kd event type */
++typedef unsigned char Scancode;
++
++struct mouse_motion {
++    short mm_deltaX;		/* units? */
++    short mm_deltaY;
++};
++
++typedef struct {
++    kev_type type;			/* see below */
++    struct timeval time;		/* timestamp */
++    union {				/* value associated with event */
++	boolean_t up;		/* MOUSE_LEFT .. MOUSE_RIGHT */
++	Scancode sc;		/* KEYBD_EVENT */
++	struct mouse_motion mmotion;	/* MOUSE_MOTION */
++    } value;
++} kd_event;
++
++/*
++ * kd_event ID's.
++ */
++#define MOUSE_LEFT	1		/* mouse left button up/down */
++#define MOUSE_MIDDLE	2
++#define MOUSE_RIGHT	3
++#define MOUSE_MOTION	4		/* mouse motion */
++#define KEYBD_EVENT	5		/* key up/down */
++
++/***********************************************************************
++ * Keyboard
++ **********************************************************************/
++void
++xf86SoundKbdBell(int loudness,int pitch,int duration)
++{
++    return;
++}
++
++void
++xf86SetKbdLeds(int leds)
++{
++    return;
++}
++
++int
++xf86GetKbdLeds()
++{
++    return 0;
++}
++
++void
++xf86SetKbdRepeat(char rad)
++{
++    return;
++}
++
++void
++xf86KbdInit()
++{
++    return;
++}
++int
++xf86KbdOn()
++{
++    int data = 1;
++    if( ioctl( xf86Info.consoleFd, _IOW('k', 1, int),&data) < 0)
++	FatalError("Cannot set event mode on keyboard (%s)\n",strerror(errno));
++    return xf86Info.consoleFd;
++}
++int
++xf86KbdOff()
++{
++    int data = 2;
++    if( ioctl( xf86Info.consoleFd, _IOW('k', 1, int),&data) < 0)
++	FatalError("can't reset keyboard mode (%s)\n",strerror(errno));
++}
++
++void
++xf86KbdEvents()
++{
++    kd_event ke;
++    while( read(xf86Info.consoleFd, &ke, sizeof(ke)) == sizeof(ke) )
++	xf86PostKbdEvent(ke.value.sc);
++}
+Index: xorg-server/hw/xfree86/os-support/hurd/hurd_kbd.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xorg-server/hw/xfree86/os-support/hurd/hurd_kbd.c	2006-10-31 17:33:33.000000000 +0100
+@@ -0,0 +1,176 @@
++/*
++ * Copyright 1997,1998 by UCHIYAMA Yasushi
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that
++ * copyright notice and this permission notice appear in supporting
++ * documentation, and that the name of UCHIYAMA Yasushi not be used in
++ * advertising or publicity pertaining to distribution of the software without
++ * specific, written prior permission.  UCHIYAMA Yasushi makes no representations
++ * about the suitability of this software for any purpose.  It is provided
++ * "as is" without express or implied warranty.
++ *
++ * UCHIYAMA YASUSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL UCHIYAMA YASUSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ *
++ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/hurd/hurd_io.c,v 1.8 2002/10/11 01:40:35 dawes Exp $ */
++
++#define NEED_EVENTS
++#ifdef HAVE_XORG_CONFIG_H
++#include <xorg-config.h>
++#endif
++
++#include <X11/X.h>
++
++#include "compiler.h"
++
++#include "xf86.h"
++#include "xf86Priv.h"
++#include "xf86_OSlib.h"
++
++#include "xf86Xinput.h"
++#include "xf86OSKbd.h"
++#include "atKeynames.h"
++#include "xf86Keymap.h"
++
++#include <stdio.h>
++#include <errno.h>
++#include <sys/time.h>
++#include <sys/file.h>
++#include <assert.h>
++#include <mach.h>
++#include <sys/ioctl.h>
++
++typedef unsigned short kev_type;		/* kd event type */
++typedef unsigned char Scancode;
++
++struct mouse_motion {
++    short mm_deltaX;		/* units? */
++    short mm_deltaY;
++};
++
++typedef struct {
++    kev_type type;			/* see below */
++    struct timeval time;		/* timestamp */
++    union {				/* value associated with event */
++	boolean_t up;		/* MOUSE_LEFT .. MOUSE_RIGHT */
++	Scancode sc;		/* KEYBD_EVENT */
++	struct mouse_motion mmotion;	/* MOUSE_MOTION */
++    } value;
++} kd_event;
++
++/*
++ * kd_event ID's.
++ */
++#define MOUSE_LEFT	1		/* mouse left button up/down */
++#define MOUSE_MIDDLE	2
++#define MOUSE_RIGHT	3
++#define MOUSE_MOTION	4		/* mouse motion */
++#define KEYBD_EVENT	5		/* key up/down */
++
++/***********************************************************************
++ * Keyboard
++ **********************************************************************/
++static void
++SoundKbdBell(InputInfoPtr pInfo, int loudness,int pitch,int duration)
++{
++    return;
++}
++
++static void
++SetKbdLeds(InputInfoPtr pInfo, int leds)
++{
++    return;
++}
++
++static int
++GetKbdLeds(InputInfoPtr pInfo)
++{
++    return 0;
++}
++
++static void
++SetKbdRepeat(InputInfoPtr pInfo, char rad)
++{
++    return;
++}
++
++static void
++KbdGetMapping(InputInfoPtr pInfo, KeySymsPtr pKeySyms, CARD8 *pModMap)
++{
++    pKeySyms->map        = map;
++    pKeySyms->mapWidth   = GLYPHS_PER_KEY;
++    pKeySyms->minKeyCode = MIN_KEYCODE;
++    pKeySyms->maxKeyCode = MAX_KEYCODE;
++    return;
++}
++
++static int
++KbdOn(InputInfoPtr pInfo, int what)
++{
++    int data = 1;
++    if( ioctl( pInfo->fd, _IOW('k', 1, int),&data) < 0)
++	FatalError("Cannot set event mode on keyboard (%s)\n",strerror(errno));
++    return Success;
++}
++static int
++KbdOff(InputInfoPtr pInfo, int what)
++{
++    int data = 2;
++    if( ioctl( pInfo->fd, _IOW('k', 1, int),&data) < 0)
++	FatalError("can't reset keyboard mode (%s)\n",strerror(errno));
++    return Success;
++}
++
++static int
++KbdInit(InputInfoPtr pInfo, int what)
++{
++    return Success;
++}
++
++static void
++ReadInput(InputInfoPtr pInfo)
++{
++    KbdDevPtr pKbd = (KbdDevPtr) pInfo->private;
++    kd_event ke;
++    while( read(pInfo->fd, &ke, sizeof(ke)) == sizeof(ke) )
++	pKbd->PostEvent(pInfo, ke.value.sc & 0x7f, ke.value.sc & 0x80 ? FALSE : TRUE);
++}
++
++static Bool
++OpenKeyboard(InputInfoPtr pInfo)
++{
++    pInfo->fd = xf86Info.consoleFd;
++    return TRUE;
++}
++
++Bool
++xf86OSKbdPreInit(InputInfoPtr pInfo)
++{
++    KbdDevPtr pKbd = pInfo->private;
++
++    pKbd->KbdInit       = KbdInit;
++    pKbd->KbdOn         = KbdOn;
++    pKbd->KbdOff        = KbdOff;
++    pKbd->Bell          = SoundKbdBell;
++    pKbd->SetLeds       = SetKbdLeds;
++    pKbd->GetLeds       = GetKbdLeds;
++    pKbd->SetKbdRepeat  = SetKbdRepeat;
++    pKbd->KbdGetMapping = KbdGetMapping;
++    pKbd->SpecialKey    = NULL;
++    pKbd->RemapScanCode = ATScancode;
++    pKbd->GetSpecialKey = NULL;
++    pKbd->OpenKeyboard  = OpenKeyboard;
++    pKbd->vtSwitchSupported = FALSE;
++    pKbd->CustomKeycodes = FALSE;
++    pKbd->private       = NULL;
++    pInfo->read_input   = ReadInput;
++    return TRUE;
++}
+Index: xorg-server/hw/xfree86/os-support/hurd/hurd_mmap.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xorg-server/hw/xfree86/os-support/hurd/hurd_mmap.c	2006-10-31 17:30:32.000000000 +0100
+@@ -0,0 +1,96 @@
++/*
++ * Copyright 1997 by UCHIYAMA Yasushi
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that
++ * copyright notice and this permission notice appear in supporting
++ * documentation, and that the name of UCHIYAMA Yasushi not be used in
++ * advertising or publicity pertaining to distribution of the software without
++ * specific, written prior permission.  UCHIYAMA Yasushi makes no representations
++ * about the suitability of this software for any purpose.  It is provided
++ * "as is" without express or implied warranty.
++ *
++ * UCHIYAMA YASUSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL UCHIYAMA YASUSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ *
++ */
++/* $XFree86$ */
++#ifdef HAVE_XORG_CONFIG_H
++#include <xorg-config.h>
++#endif
++
++#include<mach.h>
++#include<device/device.h>
++#include<mach/machine/mach_i386.h>
++
++#include <X11/X.h>
++
++#include "xf86.h"
++#include "xf86Priv.h"
++#include "xf86_OSlib.h"
++
++#define BIOS_SIZE 0x20000
++
++int
++xf86ReadBIOS(unsigned long Base,unsigned long Offset,unsigned char *Buf,int Len)
++{
++    mach_port_t device,iopl_dev;
++    memory_object_t iopl_mem;
++    vm_address_t addr = (vm_address_t)0; /* serach starting address */
++    kern_return_t err;
++
++
++    err = get_privileged_ports (NULL, &device);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86ReadBIOS() can't get_privileged_ports. (%s)\n",strerror(errno));
++    }
++    err = device_open(device,D_READ|D_WRITE,"iopl",&iopl_dev);
++    mach_port_deallocate (mach_task_self (), device);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86ReadBIOS() can't device_open. (%s)\n",strerror(errno));
++    }
++    err = device_map(iopl_dev,VM_PROT_READ|VM_PROT_WRITE, Base , BIOS_SIZE ,&iopl_mem,0);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86ReadBIOS() can't device_map. (%s)\n",strerror(errno));
++    }
++    err = vm_map(mach_task_self(),
++		 &addr,
++		 BIOS_SIZE,
++		 0,
++		 TRUE,
++		 iopl_mem,
++		 Base,
++		 FALSE,
++		 VM_PROT_READ|VM_PROT_WRITE,
++		 VM_PROT_READ|VM_PROT_WRITE,
++		 VM_INHERIT_SHARE);
++    mach_port_deallocate(mach_task_self(),iopl_mem);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86ReadBIOS() can't vm_map. (%s)\n",strerror(errno));
++    }
++
++    memcpy(Buf,(void*)((int)addr + Offset), Len);
++
++    err = vm_deallocate(mach_task_self(), addr, BIOS_SIZE);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86ReadBIOS() can't vm_deallocate. (%s)\n",strerror(errno));
++    }
++
++    return Len;
++}
+Index: xorg-server/hw/xfree86/os-support/hurd/hurd_mouse.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xorg-server/hw/xfree86/os-support/hurd/hurd_mouse.c	2006-10-31 17:32:34.000000000 +0100
+@@ -0,0 +1,301 @@
++/*
++ * Copyright 1997,1998 by UCHIYAMA Yasushi
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that
++ * copyright notice and this permission notice appear in supporting
++ * documentation, and that the name of UCHIYAMA Yasushi not be used in
++ * advertising or publicity pertaining to distribution of the software without
++ * specific, written prior permission.  UCHIYAMA Yasushi makes no representations
++ * about the suitability of this software for any purpose.  It is provided
++ * "as is" without express or implied warranty.
++ *
++ * UCHIYAMA YASUSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL UCHIYAMA YASUSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ *
++ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/hurd/hurd_mouse.c,v 1.7 2000/02/10 22:33:44 dawes Exp $ */
++
++#define NEED_EVENTS
++#ifdef HAVE_XORG_CONFIG_H
++#include <xorg-config.h>
++#endif
++
++#include <X11/X.h>
++#include <X11/Xproto.h>
++#include "inputstr.h"
++#include "scrnintstr.h"
++#include "mipointer.h"
++
++#include "xf86.h"
++#include "xf86Xinput.h"
++#include "xf86OSmouse.h"
++#include "xf86_OSlib.h"
++#include "xisb.h"
++
++#include <stdio.h>
++#include <errno.h>
++#include <sys/time.h>
++#include <sys/file.h>
++#include <assert.h>
++#include <mach.h>
++#include <sys/ioctl.h>
++
++typedef unsigned short kev_type;		/* kd event type */
++typedef unsigned char Scancode;
++
++struct mouse_motion {
++    short mm_deltaX;		/* units? */
++    short mm_deltaY;
++};
++
++typedef struct {
++    kev_type type;			/* see below */
++    struct timeval time;		/* timestamp */
++    union {				/* value associated with event */
++	boolean_t up;		/* MOUSE_LEFT .. MOUSE_RIGHT */
++	Scancode sc;		/* KEYBD_EVENT */
++	struct mouse_motion mmotion;	/* MOUSE_MOTION */
++    } value;
++} kd_event;
++
++/*
++ * kd_event ID's.
++ */
++#define MOUSE_LEFT	1		/* mouse left button up/down */
++#define MOUSE_MIDDLE	2
++#define MOUSE_RIGHT	3
++#define MOUSE_MOTION	4		/* mouse motion */
++#define KEYBD_EVENT	5		/* key up/down */
++
++#define NUMEVENTS	64
++
++/*
++ * OsMouseProc --
++ *      Handle the initialization, etc. of a mouse
++ */
++static int
++OsMouseProc(DeviceIntPtr pPointer, int what)
++{
++    InputInfoPtr pInfo;
++    MouseDevPtr pMse;
++    unsigned char map[MSE_MAXBUTTONS + 1];
++    int nbuttons;
++
++    pInfo = pPointer->public.devicePrivate;
++    pMse = pInfo->private;
++    pMse->device = pPointer;
++
++    switch (what) {
++    case DEVICE_INIT:
++	pPointer->public.on = FALSE;
++
++	for (nbuttons = 0; nbuttons < MSE_MAXBUTTONS; ++nbuttons)
++	    map[nbuttons + 1] = nbuttons + 1;
++
++	InitPointerDeviceStruct((DevicePtr)pPointer,
++				map,
++				min(pMse->buttons, MSE_MAXBUTTONS),
++				miPointerGetMotionEvents,
++				pMse->Ctrl,
++				miPointerGetMotionBufferSize());
++
++	/* X valuator */
++	xf86InitValuatorAxisStruct(pPointer, 0, 0, -1, 1, 0, 1);
++	xf86InitValuatorDefaults(pPointer, 0);
++	/* Y valuator */
++	xf86InitValuatorAxisStruct(pPointer, 1, 0, -1, 1, 0, 1);
++	xf86InitValuatorDefaults(pPointer, 1);
++	xf86MotionHistoryAllocate(pInfo);
++	break;
++
++    case DEVICE_ON:
++	pInfo->fd = xf86OpenSerial(pInfo->options);
++	if (pInfo->fd == -1)
++	    xf86Msg(X_WARNING, "%s: cannot open input device\n", pInfo->name);
++	else {
++	    pMse->buffer = XisbNew(pInfo->fd,
++				   NUMEVENTS * sizeof(kd_event));
++	    if (!pMse->buffer) {
++		xfree(pMse);
++		xf86CloseSerial(pInfo->fd);
++		pInfo->fd = -1;
++	    } else {
++		xf86FlushInput(pInfo->fd);
++		AddEnabledDevice(pInfo->fd);
++	    }
++	}
++	pMse->lastButtons = 0;
++	pMse->lastMappedButtons = 0;
++	pMse->emulateState = 0;
++	pPointer->public.on = TRUE;
++	break;
++
++    case DEVICE_OFF:
++    case DEVICE_CLOSE:
++	if (pInfo->fd != -1) {
++	    RemoveEnabledDevice(pInfo->fd);
++	    if (pMse->buffer) {
++		XisbFree(pMse->buffer);
++		pMse->buffer = NULL;
++	    }
++	    xf86CloseSerial(pInfo->fd);
++	    pInfo->fd = -1;
++	}
++	pPointer->public.on = FALSE;
++	usleep(300000);
++	break;
++    }
++    return Success;
++}
++
++/*
++ * OsMouseReadInput --
++ *      Get some events from our queue.  Process all outstanding events now.
++ */
++static void
++OsMouseReadInput(InputInfoPtr pInfo)
++{
++    MouseDevPtr pMse;
++    static kd_event eventList[NUMEVENTS];
++    int n, c;
++    kd_event *event = eventList;
++    unsigned char *pBuf;
++
++    pMse = pInfo->private;
++
++    XisbBlockDuration(pMse->buffer, -1);
++    pBuf = (unsigned char *)eventList;
++    n = 0;
++    while ((c = XisbRead(pMse->buffer)) >= 0 && n < sizeof(eventList))
++	pBuf[n++] = (unsigned char)c;
++
++    if (n == 0)
++	return;
++
++    n /= sizeof(kd_event);
++    while( n-- ) {
++	int buttons = pMse->lastButtons;
++	int dx = 0, dy = 0;
++	switch (event->type) {
++	case MOUSE_RIGHT:
++	    buttons  = buttons & 6 |(event->value.up ? 0 : 1);
++	    break;
++	case MOUSE_MIDDLE:
++	    buttons  = buttons & 5 |(event->value.up ? 0 : 2);
++	    break;
++	case MOUSE_LEFT:
++	    buttons  = buttons & 3 |(event->value.up ? 0 : 4) ;
++	    break;
++	case MOUSE_MOTION:
++	    dx = event->value.mmotion.mm_deltaX;
++	    dy = - event->value.mmotion.mm_deltaY;
++	    break;
++	default:
++	    ErrorF("Bad mouse event (%d)\n",event->type);
++	    continue;
++	}
++	pMse->PostEvent(pInfo, buttons, dx, dy, 0, 0);
++	++event;
++    }
++    return;
++}
++
++static Bool
++OsMousePreInit(InputInfoPtr pInfo, const char *protocol, int flags)
++{
++    MouseDevPtr pMse;
++
++    /* This is called when the protocol is "OSMouse". */
++
++    pMse = pInfo->private;
++    pMse->protocol = protocol;
++    xf86Msg(X_CONFIG, "%s: Protocol: %s\n", pInfo->name, protocol);
++
++    /* Collect the options, and process the common options. */
++    xf86CollectInputOptions(pInfo, NULL, NULL);
++    xf86ProcessCommonOptions(pInfo, pInfo->options);
++
++    /* Check if the device can be opened. */
++    pInfo->fd = xf86OpenSerial(pInfo->options);
++    if (pInfo->fd == -1) {
++	if (xf86GetAllowMouseOpenFail())
++	    xf86Msg(X_WARNING, "%s: cannot open input device\n", pInfo->name);
++	else {
++	    xf86Msg(X_ERROR, "%s: cannot open input device\n", pInfo->name);
++	    xfree(pMse);
++	    return FALSE;
++	}
++    }
++    xf86CloseSerial(pInfo->fd);
++    pInfo->fd = -1;
++
++    /* Process common mouse options (like Emulate3Buttons, etc). */
++    pMse->CommonOptions(pInfo);
++
++    /* Setup the local procs. */
++    pInfo->device_control = OsMouseProc;
++    pInfo->read_input = OsMouseReadInput;
++
++    pInfo->flags |= XI86_CONFIGURED;
++    return TRUE;
++}
++
++static int
++SupportedInterfaces(void)
++{
++    /* XXX Need to check this. */
++    return MSE_SERIAL | MSE_BUS | MSE_PS2 | MSE_XPS2 | MSE_AUTO;
++}
++
++static const char *internalNames[] = {
++	"OSMouse",
++	NULL
++};
++
++static const char **
++BuiltinNames(void)
++{
++    return internalNames;
++}
++
++static Bool
++CheckProtocol(const char *protocol)
++{
++    int i;
++
++    for (i = 0; internalNames[i]; i++)
++	if (xf86NameCmp(protocol, internalNames[i]) == 0)
++	    return TRUE;
++    return FALSE;
++}
++
++/* XXX Is this appropriate?  If not, this function should be removed. */
++static const char *
++DefaultProtocol(void)
++{
++    return "OSMouse";
++}
++
++OSMouseInfoPtr
++xf86OSMouseInit(int flags)
++{
++    OSMouseInfoPtr p;
++
++    p = xcalloc(sizeof(OSMouseInfoRec), 1);
++    if (!p)
++	return NULL;
++    p->SupportedInterfaces = SupportedInterfaces;
++    p->BuiltinNames = BuiltinNames;
++    p->DefaultProtocol = DefaultProtocol;
++    p->CheckProtocol = CheckProtocol;
++    p->PreInit = OsMousePreInit;
++    return p;
++}
++
+Index: xorg-server/hw/xfree86/os-support/hurd/hurd_video.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xorg-server/hw/xfree86/os-support/hurd/hurd_video.c	2006-10-31 17:31:44.000000000 +0100
+@@ -0,0 +1,191 @@
++/*
++ * Copyright 1997, 1998 by UCHIYAMA Yasushi
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that
++ * copyright notice and this permission notice appear in supporting
++ * documentation, and that the name of UCHIYAMA Yasushi not be used in
++ * advertising or publicity pertaining to distribution of the software without
++ * specific, written prior permission.  UCHIYAMA Yasushi makes no representations
++ * about the suitability of this software for any purpose.  It is provided
++ * "as is" without express or implied warranty.
++ *
++ * UCHIYAMA YASUSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL UCHIYAMA YASUSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ *
++ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/hurd/hurd_video.c,v 1.3 1999/04/29 12:24:52 dawes Exp $ */
++
++#ifdef HAVE_XORG_CONFIG_H
++#include <xorg-config.h>
++#endif
++
++#include <mach.h>
++#include <device/device.h>
++#include <mach/machine/mach_i386.h>
++
++#include <X11/X.h>
++#include "input.h"
++#include "scrnintstr.h"
++
++#include "xf86.h"
++#include "xf86Priv.h"
++#include "xf86_OSlib.h"
++#include "xf86OSpriv.h"
++
++/**************************************************************************
++ * Video Memory Mapping section
++ ***************************************************************************/
++pointer
++xf86MapVidMem(int ScreenNum,int Flags, unsigned long Base, unsigned long Size)
++{
++    mach_port_t device,iopl_dev;
++    memory_object_t iopl_mem;
++    kern_return_t err;
++    vm_address_t addr=(vm_address_t)0;
++
++    err = get_privileged_ports (NULL, &device);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86MapVidMem() can't get_privileged_ports. (%s)\n",strerror(errno));
++    }
++    err = device_open(device,D_READ|D_WRITE,"iopl",&iopl_dev);
++    mach_port_deallocate (mach_task_self(), device);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86MapVidMem() can't device_open. (%s)\n",strerror(errno));
++    }
++
++    err = device_map(iopl_dev,VM_PROT_READ|VM_PROT_WRITE, Base , Size ,&iopl_mem,0);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86MapVidMem() can't device_map. (%s)\n",strerror(errno));
++    }
++    err = vm_map(mach_task_self(),
++		 &addr,
++		 Size,
++		 0,     /* mask */
++		 TRUE,  /* anywhere */
++		 iopl_mem,
++		 (vm_offset_t)Base,
++		 FALSE, /* copy on write */
++		 VM_PROT_READ|VM_PROT_WRITE,
++		 VM_PROT_READ|VM_PROT_WRITE,
++		 VM_INHERIT_SHARE);
++    mach_port_deallocate(mach_task_self(),iopl_mem);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86MapVidMem() can't vm_map.(iopl_mem) (%s)\n",strerror(errno));
++    }
++    mach_port_deallocate(mach_task_self(),iopl_dev);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86MapVidMem() can't mach_port_deallocate.(iopl_dev) (%s)\n",strerror(errno));
++    }
++    return (pointer)addr;
++}
++
++void
++xf86UnMapVidMem(int ScreenNum,pointer Base,unsigned long Size)
++{
++    kern_return_t err = vm_deallocate(mach_task_self(), (int)Base, Size);
++    if( err )
++    {
++	errno = err;
++	ErrorF("xf86UnMapVidMem: can't dealloc framebuffer space (%s)\n",strerror(errno));
++    }
++    return;
++}
++
++Bool
++xf86LinearVidMem()
++{
++    return(TRUE);
++}
++
++/**************************************************************************
++ * I/O Permissions section
++ ***************************************************************************/
++mach_port_t io_port;
++
++Bool
++xf86EnableIO()
++{
++    mach_port_t device;
++    kern_return_t err;
++
++    err = get_privileged_ports(NULL, &device);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86EnableIO() can't get_privileged_ports. (%s)\n",strerror(errno));
++    }
++    err = device_open(device,D_READ|D_WRITE,"io",&io_port);
++    mach_port_deallocate(mach_task_self(), device);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86EnableIO() can't device_open. (%s)\n",strerror(errno));
++    }
++
++    err = i386_io_port_add(mach_thread_self (), io_port);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86EnableIO() can't i386_io_port_add.(io_port) (%s)\n",strerror(errno));
++    }
++    return TRUE;
++}
++
++void
++xf86DisableIO()
++{
++    kern_return_t err;
++
++    err = i386_io_port_remove(mach_thread_self (), io_port);
++    if( err )
++    {
++	errno = err;
++	FatalError("xf86DisableIO() can't i386_io_port_remove.(io_port) (%s)\n",strerror(errno));
++    }
++    mach_port_deallocate(mach_task_self(), io_port);
++    return;
++}
++
++/**************************************************************************
++ * Interrupt Handling section
++ **************************************************************************/
++Bool
++xf86DisableInterrupts()
++{
++    return TRUE;
++}
++void
++xf86EnableInterrupts()
++{
++    return;
++}
++
++void
++xf86MapReadSideEffects(int ScreenNum, int Flags, pointer Base,
++	unsigned long Size)
++{
++}
++
++Bool
++xf86CheckMTRR(int s)
++{
++	return FALSE;
++}
++



Reply to: