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

xorg-server: Changes to 'ubuntu+1'



 debian/changelog          |    7 -
 debian/patches/series     |    2 
 debian/patches/xmir.patch |  242 +++++++++++++++++++++++++++-------------------
 3 files changed, 152 insertions(+), 99 deletions(-)

New commits:
commit 0a38b9e027ff4c712254db5a50b1e2e2c7cfdb9b
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Fri Jul 4 16:16:41 2014 +1000

    Changelog entry for XMir

diff --git a/debian/changelog b/debian/changelog
index 5bc9ea2..cad027b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,13 @@
 xorg-server (2:1.15.99.903-3ubuntu1) UNRELEASED; urgency=medium
 
+  [ Maarten Lankhorst ]
   * New upstream release.
     - Refresh patches.
-    - Disable xmir, for now.
 
- -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Wed, 25 Jun 2014 12:57:16 +0200
+  [ Christopher James Halse Rogers ]
+  * Refresh XMir patch
+
+ -- Christopher James Halse Rogers <raof@ubuntu.com>  Fri, 04 Jul 2014 10:40:30 +1000
 
 xorg-server (2:1.15.99.903-3) experimental; urgency=medium
 

commit 04dff2f45038b067f99935319aa8f40646546c88
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Fri Jul 4 10:40:00 2014 +1000

    Refresh xmir patch for 1.16

diff --git a/debian/patches/series b/debian/patches/series
index f6b2b6d..5e74491 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -49,7 +49,7 @@ disable-rotation-transform-gpuscreens.patch
 
 pixman-validate.patch
 fix-ftbfs-ppc64el.patch
-#xmir.patch
+xmir.patch
 drm_device_keep_trying.patch
 xi2-resize-touch.patch
 mi-dont-process-disabled.patch
diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch
index d8870de..f60216f 100644
--- a/debian/patches/xmir.patch
+++ b/debian/patches/xmir.patch
@@ -1,14 +1,16 @@
+diff --git a/configure.ac b/configure.ac
+index e5387bf..ec171d9 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -628,6 +628,7 @@
- AC_ARG_ENABLE(libdrm,         AS_HELP_STRING([--enable-libdrm], [Build Xorg with libdrm support (default: enabled)]), [DRM=$enableval],[DRM=yes])
- AC_ARG_ENABLE(clientids,      AS_HELP_STRING([--disable-clientids], [Build Xorg with client ID tracking (default: enabled)]), [CLIENTIDS=$enableval], [CLIENTIDS=yes])
- AC_ARG_ENABLE(pciaccess, AS_HELP_STRING([--enable-pciaccess], [Build Xorg with pciaccess library (default: enabled)]), [PCI=$enableval], [PCI=yes])
-+AC_ARG_ENABLE(xmir,           AS_HELP_STRING([--enable-xmir], [Build support for nesting in Mir (default: auto)]), [XMIR=$enableval], [XMIR=auto])
- AC_ARG_ENABLE(linux_acpi, AS_HELP_STRING([--disable-linux-acpi], [Disable building ACPI support on Linux (if available).]), [enable_linux_acpi=$enableval], [enable_linux_acpi=yes])
+@@ -627,6 +627,7 @@ AC_ARG_ENABLE(linux_acpi, AS_HELP_STRING([--disable-linux-acpi], [Disable buildi
  AC_ARG_ENABLE(linux_apm, AS_HELP_STRING([--disable-linux-apm], [Disable building APM support on Linux (if available).]), [enable_linux_apm=$enableval], [enable_linux_apm=yes])
+ AC_ARG_ENABLE(systemd-logind, AS_HELP_STRING([--enable-systemd-logind], [Build systemd-logind support (default: auto)]), [SYSTEMD_LOGIND=$enableval], [SYSTEMD_LOGIND=auto])
+ AC_ARG_ENABLE(suid-wrapper, AS_HELP_STRING([--enable-suid-wrapper], [Build suid-root wrapper for legacy driver support on rootless xserver systems (default: no)]), [SUID_WRAPPER=$enableval], [SUID_WRAPPER=no])
++AC_ARG_ENABLE(xmir,           AS_HELP_STRING([--enable-xmir], [Build support for nesting in Mir (default: auto)]), [XMIR=$enableval], [XMIR=auto])
  
-@@ -1317,6 +1318,15 @@
+ dnl DDXes.
+ AC_ARG_ENABLE(xorg,    	      AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
+@@ -1348,6 +1349,15 @@ if test "x$XINERAMA" = xyes; then
  	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $XINERAMAPROTO"
  fi
  
@@ -16,15 +18,15 @@
 +	PKG_CHECK_MODULES([XMIR], [mirclient], [XMIR=yes], [XMIR=no])
 +	AC_SUBST([XMIR_LIBS])
 +        AC_SUBST([XMIR_CFLAGS])
-+        AC_DEFINE(XMIR, 1, [Support Mir nested mode])
++        AC_DEFINE(XMIR, 1, [Support wayland mode])
 +	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES mirclient"
-+fi
++fi	      
 +AM_CONDITIONAL(XMIR, [test "x$XMIR" = xyes])
 +
  AM_CONDITIONAL(XACE, [test "x$XACE" = xyes])
  if test "x$XACE" = xyes; then
  	AC_DEFINE(XACE, 1, [Build X-ACE extension])
-@@ -2504,6 +2514,7 @@
+@@ -2573,6 +2583,7 @@ hw/xfree86/utils/Makefile
  hw/xfree86/utils/man/Makefile
  hw/xfree86/utils/cvt/Makefile
  hw/xfree86/utils/gtf/Makefile
@@ -32,9 +34,11 @@
  hw/dmx/config/Makefile
  hw/dmx/config/man/Makefile
  hw/dmx/doc/Makefile
+diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
+index c5992c3..c9a077f 100644
 --- a/hw/xfree86/Makefile.am
 +++ b/hw/xfree86/Makefile.am
-@@ -30,15 +30,20 @@
+@@ -34,16 +34,20 @@ if INT10MODULE
  INT10_SUBDIR = int10
  endif
  
@@ -45,21 +49,23 @@
  SUBDIRS = common ddc x86emu $(INT10_SUBDIR) os-support parser \
  	  ramdac $(VGAHW_SUBDIR) loader modes $(DRI_SUBDIR) \
  	  $(DRI2_SUBDIR) . $(VBE_SUBDIR) i2c dixmods \
--	  fbdevhw shadowfb exa $(XF86UTILS_SUBDIR) doc man
-+	  fbdevhw shadowfb exa $(XF86UTILS_SUBDIR) doc man \
-+	  $(XMIR_SUBDIR)
+ 	  fbdevhw shadowfb exa $(XF86UTILS_SUBDIR) doc man \
+-	  $(GLAMOR_EGL_SUBDIR)
++	  $(GLAMOR_EGL_SUBDIR) $(XMIR_SUBDIR)
  
  DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \
                 parser ramdac shadowfb vbe vgahw \
                 loader dixmods dri dri2 exa modes \
--	       utils doc man
-+	       utils doc man xmir
+-	       utils doc man glamor_egl
++	       utils doc man glamor_egl xmir
  
  bin_PROGRAMS = Xorg
  nodist_Xorg_SOURCES = sdksyms.c
+diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
+index 2adef44..f8c3a7e 100644
 --- a/hw/xfree86/common/xf86Config.c
 +++ b/hw/xfree86/common/xf86Config.c
-@@ -118,6 +118,7 @@
+@@ -118,6 +118,7 @@ static ModuleDefault ModuleDefaults[] = {
      {.name = "fb",.toLoad = TRUE,.load_opt = NULL},
      {.name = "shadow",.toLoad = TRUE,.load_opt = NULL},
  #endif
@@ -67,7 +73,7 @@
      {.name = NULL,.toLoad = FALSE,.load_opt = NULL}
  };
  
-@@ -260,6 +261,17 @@
+@@ -272,6 +273,17 @@ xf86ModulelistFromConfig(void ***optlist)
          return NULL;
      }
  
@@ -85,56 +91,37 @@
      if (xf86configptr->conf_modules) {
          /* Walk the disable list and let people know what we've parsed to
           * not be loaded 
+diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
+index 35a673d..082e454 100644
 --- a/hw/xfree86/common/xf86Events.c
 +++ b/hw/xfree86/common/xf86Events.c
-@@ -105,8 +105,6 @@
- extern void (*xf86OSPMClose) (void);
- #endif
- 
--static void xf86VTSwitch(void);
--
- /*
-  * Allow arbitrary drivers or other XFree86 code to register with our main
-  * Wakeup handler.
-@@ -469,7 +467,7 @@
- 
-     xf86AccessLeave();      /* We need this here, otherwise */
- 
--    if (!xf86VTSwitchAway())
-+    if (!xorgMir && !xf86VTSwitchAway())
-         goto switch_failed;
- 
- #ifdef XF86PM
-@@ -528,7 +526,7 @@
-     IHPtr ih;
- 
-     DebugF("xf86VTSwitch: Entering\n");
--    if (!xf86VTSwitchTo())
-+    if (!xorgMir && !xf86VTSwitchTo())
-         return;
- 
- #ifdef XF86PM
-@@ -576,7 +574,7 @@
-  * xf86VTSwitch --
-  *      Handle requests for switching the vt.
-  */
--static void
-+_X_EXPORT void
- xf86VTSwitch(void)
+@@ -614,6 +614,10 @@ xf86VTSwitch(void)
  {
      DebugF("xf86VTSwitch()\n");
+ 
++    /* Host Mir server handles VTs for XMir */
++    if (xorgMir)
++        return;
++
+ #ifdef XFreeXDGA
+     if (!DGAVTSwitch())
+         return;
+diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c
+index 984c39b..9b23d9a 100644
 --- a/hw/xfree86/common/xf86Globals.c
 +++ b/hw/xfree86/common/xf86Globals.c
-@@ -206,3 +206,6 @@
+@@ -204,3 +204,6 @@ Bool xf86VidModeAllowNonLocal = FALSE;
  #endif
  RootWinPropPtr *xf86RegisteredPropertiesTable = NULL;
  Bool xorgHWAccess = FALSE;
 +Bool xorgMir = FALSE;
 +const char *mirID = NULL;
 +const char *mirSocket = NULL;
+diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
+index e2b32a0..d942ffd 100644
 --- a/hw/xfree86/common/xf86Helper.c
 +++ b/hw/xfree86/common/xf86Helper.c
-@@ -100,7 +100,14 @@
+@@ -100,7 +100,14 @@ xf86DeleteDriver(int drvIndex)
          if (xf86DriverList[drvIndex]->module)
              UnloadModule(xf86DriverList[drvIndex]->module);
          free(xf86DriverList[drvIndex]);
@@ -150,9 +137,11 @@
      }
  }
  
+diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
+index 5a45004..931381d 100644
 --- a/hw/xfree86/common/xf86Init.c
 +++ b/hw/xfree86/common/xf86Init.c
-@@ -557,7 +557,7 @@
+@@ -540,7 +540,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
           * needed at this early stage.
           */
  
@@ -161,12 +150,13 @@
              xorgHWFlags flags = HW_IO;
  
              if (xf86DriverList[i]->Identify != NULL)
-@@ -568,12 +568,21 @@
+@@ -551,12 +551,22 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
                                                GET_REQUIRED_HW_INTERFACES,
                                                &flags);
  
 +            if (xorgMir &&
 +                (NEED_IO_ENABLED(flags) || !(flags & HW_SKIP_CONSOLE))) {
++                
 +                ErrorF("Driver needs flags %lu, incompatible with nested, deleting.\n", flags);
 +                xf86DeleteDriver(i);
 +                continue;
@@ -183,7 +173,7 @@
          }
  
          if (xorgHWOpenConsole)
-@@ -668,9 +677,13 @@
+@@ -644,9 +654,13 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
          }
  
          /* Remove (unload) drivers that are not required */
@@ -199,7 +189,7 @@
  
          /*
           * At this stage we know how many screens there are.
-@@ -1498,6 +1511,17 @@
+@@ -1479,6 +1493,17 @@ ddxProcessArgument(int argc, char **argv, int i)
          xf86Info.ShareVTs = TRUE;
          return 1;
      }
@@ -217,7 +207,7 @@
  
      /* OS-specific processing */
      return xf86ProcessArgument(argc, argv, i);
-@@ -1571,6 +1595,8 @@
+@@ -1552,6 +1577,8 @@ ddxUseMsg(void)
      ErrorF
          ("-novtswitch            don't automatically switch VT at reset & exit\n");
      ErrorF("-sharevts              share VTs with another X server\n");
@@ -226,37 +216,41 @@
      /* OS-specific usage */
      xf86UseMsg();
      ErrorF("\n");
+diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
+index 6e374eb..226ae5d 100644
 --- a/hw/xfree86/common/xf86Priv.h
 +++ b/hw/xfree86/common/xf86Priv.h
-@@ -93,6 +93,9 @@
+@@ -91,6 +91,11 @@ extern _X_EXPORT int xf86NumScreens;
  extern _X_EXPORT const char *xf86VisualNames[];
  extern _X_EXPORT int xf86Verbose;       /* verbosity level */
  extern _X_EXPORT int xf86LogVerbose;    /* log file verbosity level */
++extern _X_EXPORT Bool xorgHWAccess;
 +extern _X_EXPORT Bool xorgMir;
 +extern _X_EXPORT const char *mirID;
 +extern _X_EXPORT const char *mirSocket;
++
  
  extern _X_EXPORT RootWinPropPtr *xf86RegisteredPropertiesTable;
  
-@@ -149,6 +152,9 @@
- extern _X_EXPORT int (*xf86PMGetEventFromOs) (int fd, pmEvent * events,
+@@ -148,6 +153,7 @@ extern _X_EXPORT int (*xf86PMGetEventFromOs) (int fd, pmEvent * events,
                                                int num);
  extern _X_EXPORT pmWait (*xf86PMConfirmEventToOs) (int fd, pmEvent event);
-+extern _X_EXPORT void
-+xf86VTSwitch(void);
-+
  
++
  /* xf86Helper.c */
  extern _X_EXPORT void
+ xf86LogInit(void);
+diff --git a/hw/xfree86/ramdac/xf86Cursor.c b/hw/xfree86/ramdac/xf86Cursor.c
+index fac6822..7becd5f 100644
 --- a/hw/xfree86/ramdac/xf86Cursor.c
 +++ b/hw/xfree86/ramdac/xf86Cursor.c
-@@ -58,7 +58,12 @@
+@@ -58,7 +58,12 @@ xf86InitCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr)
      xf86CursorScreenPtr ScreenPriv;
      miPointerScreenPtr PointPriv;
  
 -    if (!xf86InitHardwareCursor(pScreen, infoPtr))
 +    infoPtr->pScrn = xf86ScreenToScrn(pScreen);
-+
++    
 +    /* If we can't create a hardware cursor don't bother initialising HW cursor support */
 +    if (infoPtr->MaxWidth != 0 &&
 +        infoPtr->MaxHeight != 0 &&
@@ -264,9 +258,11 @@
          return FALSE;
  
      if (!dixRegisterPrivateKey(&xf86CursorScreenKeyRec, PRIVATE_SCREEN, 0))
+diff --git a/hw/xfree86/ramdac/xf86HWCurs.c b/hw/xfree86/ramdac/xf86HWCurs.c
+index 953c86a..d8994be 100644
 --- a/hw/xfree86/ramdac/xf86HWCurs.c
 +++ b/hw/xfree86/ramdac/xf86HWCurs.c
-@@ -114,8 +114,6 @@
+@@ -114,8 +114,6 @@ xf86InitHardwareCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr)
          infoPtr->RealizeCursor = RealizeCursorInterleave0;
      }
  
@@ -275,6 +271,29 @@
      return TRUE;
  }
  
+diff --git a/hw/xfree86/xmir/#xmir.h# b/hw/xfree86/xmir/#xmir.h#
+new file mode 100644
+index 0000000..1ca78b1
+--- /dev/null
++++ b/hw/xfree86/xmir/#xmir.h#
+@@ -0,0 +1,14 @@
++
++typedef struct MirBufferInfo {
++    uint32_t name;
++    uint32_t stride;
++} MirBufferInfo;
++
++typedef void (*XMirBufferReceivedProcPtr)(WindowPtr window, 
++                                          MirBufferInfo *info);
++
++typedef struct xmir_screen {
++    XMirBufferReceivedProcPtr BufferNotify;
++    MirSurface *root_surf;
++    RealizeWindowProcPtr RealizeWindow;
++} xmir_screen;
+diff --git a/hw/xfree86/xmir/Makefile.am b/hw/xfree86/xmir/Makefile.am
+new file mode 100644
+index 0000000..80715f8
 --- /dev/null
 +++ b/hw/xfree86/xmir/Makefile.am
 @@ -0,0 +1,26 @@
@@ -304,6 +323,9 @@
 +	xmir-private.h
 +
 +sdk_HEADERS = xmir.h
+diff --git a/hw/xfree86/xmir/xmir-output.c b/hw/xfree86/xmir/xmir-output.c
+new file mode 100644
+index 0000000..6cfb9da
 --- /dev/null
 +++ b/hw/xfree86/xmir/xmir-output.c
 @@ -0,0 +1,678 @@
@@ -632,7 +654,7 @@
 +    const char *error_msg;
 +
 +    if (mode->HDisplay == 0 || mode->VDisplay == 0)
-+        return FALSE;
++        return FALSE;    
 +
 +    xf86Msg(X_INFO, "Initial configuration for crtc %p:\n", crtc);
 +    xmir_dump_config(xmir_crtc->config);
@@ -798,7 +820,7 @@
 +static void
 +xmir_output_destroy(xf86OutputPtr xf86output)
 +{
-+    /* The MirDisplayOutput* in driver_private gets cleaned up by
++    /* The MirDisplayOutput* in driver_private gets cleaned up by 
 +       mir_display_config_destroy() */
 +}
 +
@@ -816,7 +838,7 @@
 +};
 +
 +static int
-+xmir_visit_set_window_pixmap(WindowPtr window, void *data)
++xmir_visit_set_window_pixmap(WindowPtr window, void* data)
 +{
 +    struct xmir_visit_set_pixmap_window *visit = data;
 +
@@ -895,7 +917,7 @@
 +    xmir_update_config(crtc_config);
 +
 +    /* Trigger RANDR refresh */
-+    RRGetInfo(xf86ScrnToScreen(scrn), TRUE);
++    RRGetInfo(xf86ScrnToScreen(scrn), TRUE);   
 +}
 +
 +static void
@@ -982,9 +1004,12 @@
 +
 +    /* TODO: Use initial Mir state rather than setting up our own */
 +    xf86InitialConfiguration(scrn, TRUE);
-+
++  
 +    return TRUE;
 +}
+diff --git a/hw/xfree86/xmir/xmir-private.h b/hw/xfree86/xmir/xmir-private.h
+new file mode 100644
+index 0000000..15d89f0
 --- /dev/null
 +++ b/hw/xfree86/xmir/xmir-private.h
 @@ -0,0 +1,106 @@
@@ -1094,6 +1119,9 @@
 +xmir_process_from_eventloop(void);
 +
 + #endif /* _MIR_PRIVATE_H */
+diff --git a/hw/xfree86/xmir/xmir-thread-proxy.c b/hw/xfree86/xmir/xmir-thread-proxy.c
+new file mode 100644
+index 0000000..2e60aec
 --- /dev/null
 +++ b/hw/xfree86/xmir/xmir-thread-proxy.c
 @@ -0,0 +1,124 @@
@@ -1147,7 +1175,7 @@
 +static int pipefds[2];
 +
 +static void
-+xmir_wakeup_handler(void *data, int err, void *read_mask)
++xmir_wakeup_handler(void* data, int err, void* read_mask)
 +{
 +    if (err >= 0 && FD_ISSET(pipefds[0], (fd_set *)read_mask))
 +        xmir_process_from_eventloop();
@@ -1190,7 +1218,7 @@
 +}
 +
 +void
-+xmir_post_to_eventloop(xmir_marshall_handler *handler, void *msg)
++xmir_post_to_eventloop(xmir_marshall_handler *handler, void *msg) 
 +{
 +	ssize_t written;
 +	const int total_size = sizeof *handler + handler->msg_size;
@@ -1221,6 +1249,9 @@
 +	}
 +}
 +
+diff --git a/hw/xfree86/xmir/xmir-window.c b/hw/xfree86/xmir/xmir-window.c
+new file mode 100644
+index 0000000..18a19bf
 --- /dev/null
 +++ b/hw/xfree86/xmir/xmir-window.c
 @@ -0,0 +1,343 @@
@@ -1559,7 +1590,7 @@
 +    xmir->DestroyWindow = screen->DestroyWindow;
 +    screen->DestroyWindow = xmir_destroy_window;
 +
-+    xmir->submit_rendering_handler =
++    xmir->submit_rendering_handler = 
 +        xmir_register_handler(&xmir_handle_buffer_available,
 +                              sizeof (xmir_window *));
 +    if (xmir->submit_rendering_handler == NULL)
@@ -1567,6 +1598,9 @@
 +
 +    return TRUE;
 +}
+diff --git a/hw/xfree86/xmir/xmir.c b/hw/xfree86/xmir/xmir.c
+new file mode 100644
+index 0000000..ceb81e1
 --- /dev/null
 +++ b/hw/xfree86/xmir/xmir.c
 @@ -0,0 +1,263 @@
@@ -1621,7 +1655,7 @@
 +#include <mir_toolkit/mir_client_library_drm.h>
 +
 +static DevPrivateKeyRec xmir_screen_private_key;
-+/*
++/* 
 + * We have only a single Mir connection, regardless of how many
 + * drivers load.
 + */
@@ -1704,13 +1738,13 @@
 +    Bool new_focus = *(Bool *)ctx;
 +    xf86Msg(X_INFO, "[XMir] Handling focus event, new_focus = %s\n", new_focus ? "TRUE" : "FALSE");
 +
-+    /* TODO: Split xf86VTSwitch out so that we don't need to check xf86VTOwner*/
 +    /* TODO: Disable input on startup until we receive a usc ACK */
-+    if (new_focus && !xf86VTOwner())
-+        xf86VTSwitch();
-+
-+    if (!new_focus && xf86VTOwner())
-+        xf86VTSwitch();
++    if (new_focus) {
++        xf86VTEnter();
++    }
++    else {
++        xf86VTLeave();
++    }
 +}
 +
 +static void xmir_handle_lifecycle_event(MirConnection *unused, MirLifecycleState state, void *ctx)
@@ -1747,7 +1781,7 @@
 +        xf86Msg(X_WARNING, "xf86Cursor initialisation failed\n");
 +
 +    /* Hook up focus -> VT switch proxy */
-+    xmir->focus_event_handler =
++    xmir->focus_event_handler = 
 +        xmir_register_handler(&xmir_handle_focus_event,
 +                              sizeof(Bool));
 +    if (xmir->focus_event_handler == NULL)
@@ -1769,7 +1803,7 @@
 +_X_EXPORT void
 +xmir_screen_destroy(xmir_screen *xmir)
 +{
-+
++    
 +}
 +
 +_X_EXPORT void
@@ -1801,11 +1835,11 @@
 +
 +_X_EXPORT XF86ModuleData xmirModuleData = { &VersRec, xMirSetup, xMirTeardown };
 +
-+static void *
-+xMirSetup(void *module, void *opts, int *errmaj, int *errmin)
++static void*
++xMirSetup(void* module, void* opts, int *errmaj, int *errmin)
 +{
 +    static Bool setupDone = FALSE;
-+
++    
 +    if (setupDone) {
 +        if (errmaj)
 +            *errmaj = LDR_ONCEONLY;
@@ -1822,7 +1856,7 @@
 +        return NULL;
 +    }
 +
-+    xmir_init_thread_to_eventloop();
++    xmir_init_thread_to_eventloop();    
 +
 +    setupDone = TRUE;
 +
@@ -1830,9 +1864,12 @@
 +}
 +
 +static void
-+xMirTeardown(void *module)
++xMirTeardown(void* module)
 +{
 +}
+diff --git a/hw/xfree86/xmir/xmir.h b/hw/xfree86/xmir/xmir.h
+new file mode 100644
+index 0000000..78396a3
 --- /dev/null
 +++ b/hw/xfree86/xmir/xmir.h
 @@ -0,0 +1,103 @@
@@ -1906,7 +1943,7 @@
 +
 +_X_EXPORT void
 +xmir_screen_close(ScreenPtr screen, xmir_screen *xmir);
-+
++	
 +_X_EXPORT void
 +xmir_screen_destroy(xmir_screen *xmir);
 +
@@ -1939,9 +1976,11 @@
 +xmir_screen_for_each_damaged_window(xmir_screen *xmir, xmir_window_proc callback);
 +
 +#endif /* _XMIR_H */
+diff --git a/include/list.h b/include/list.h
+index 455c670..c5f8d11 100644
 --- a/include/list.h
 +++ b/include/list.h
-@@ -184,6 +184,14 @@
+@@ -184,6 +184,14 @@ __xorg_list_del(struct xorg_list *prev, struct xorg_list *next)
      prev->next = next;
  }
  
@@ -1956,6 +1995,8 @@
  /**
   * Remove the element from the list it is in. Using this function will reset
   * the pointers to/from this element so it is removed from the list. It does
+diff --git a/include/xorg-server.h.in b/include/xorg-server.h.in
+index 8bf9d38..9bcfe7c 100644
 --- a/include/xorg-server.h.in
 +++ b/include/xorg-server.h.in
 @@ -227,4 +227,7 @@
@@ -1966,19 +2007,25 @@
 +#undef XMIR
 +
  #endif /* _XORG_SERVER_H_ */
+diff --git a/test/Makefile.am b/test/Makefile.am
+index 32edc7a..39c86ca 100644
 --- a/test/Makefile.am
 +++ b/test/Makefile.am
-@@ -6,6 +6,9 @@
+@@ -6,7 +6,12 @@ if XORG
  # For now, requires xf86 ddx, could be adjusted to use another
  SUBDIRS += xi2
  noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging touch
+-endif
++
 +if XMIR
 +noinst_PROGRAMS += xmir-thread-proxy
 +endif #XMIR
- endif
++
++endif #XORG
  check_LTLIBRARIES = libxservertest.la
  
-@@ -38,6 +41,8 @@
+ TESTS=$(noinst_PROGRAMS)
+@@ -37,6 +42,8 @@ touch_LDADD=$(TEST_LDADD)
  signal_logging_LDADD=$(TEST_LDADD)
  hashtabletest_LDADD=$(TEST_LDADD)
  os_LDADD=$(TEST_LDADD)
@@ -1987,6 +2034,9 @@
  
  libxservertest_la_LIBADD = $(XSERVER_LIBS)
  if XORG
+diff --git a/test/xmir-thread-proxy.c b/test/xmir-thread-proxy.c
+new file mode 100644
+index 0000000..7cf19cf
 --- /dev/null
 +++ b/test/xmir-thread-proxy.c
 @@ -0,0 +1,154 @@
@@ -2126,7 +2176,7 @@
 +
 +	xmir_process_from_eventloop();
 +
-+	assert(check == NUM_THREADS);
++	assert(check == NUM_THREADS);	
 +}
 +
 +static void


Reply to: