On Mon, Mar 22, 2004 at 05:06:28PM -0800, Mark Vojkovich wrote:
>   This sounds like it will completely break binary compatibility.

It looks like it does change the size of some data structures and
the data types of some fields.  Whether these changes affect the
module interfaces is something that needs to be checked in each
case.

I wonder, though, if we'd be better off going all the way and making
the number of screens dynamic.

David

>
>                       Mark.
>
>On Mon, 22 Mar 2004, Rik Faith wrote:
>
>> [I posted this last Monday, but it got held for moderation because it
>> was slightly over 100KB with the patch uncompressed.  I've compressed
>> the patch for this posting. --Rik Faith]
>>
>> Throughout the DMX (dmx.sf.net) work, we have been submitting patches
>> for bug fixes and/or self-contained code as we finish them.  Towards
>> that goal, a patch is attached below.  It has also been entered into the
>> XFree86 bugzilla database as #1269:
>>     http://bugs.xfree86.org/show_bug.cgi?id=1269
>>
>> Rik Faith and Kevin Martin
>>
>> ======================================================================
>>
>> The following patch changes MAXSCREENS from a #define to an int.  The
>> patch is against the XFree86 CVS repository.
>>
>> The goals of the patch are as follows:
>>     1) Allow MAXSCREENS to be determined at run time instead of compile
>>        time (a new -maxscreens command line flag was added).
>>     2) Make minimal source-code changes to the tree:
>>        a) The name "MAXSCREENS" was not changed -- this allowed all of
>>           the loops that reference MAXSCREENS to remain unchanged.
>>        b) MAXSCREENSALLOC is a convenience macro that allocates and
>>           zeros memory, allowing 1-line changes to allocate code (and
>>           another line to check that allocation succeeded).  Memory is
>>           zero'd because many routines assume that the previous static
>>           allocations are zero'd.  The macro is also safe to call
>>           multiple times since there are places in the code where the
>>           first use of a MAXSCREENS-sized array is difficult to
>>           determine (or non-deterministic).
>>        c) In some cases, the existing code zeros the memory.  These
>>           calls are unchanged, but could be removed.
>>
>> The patch has been tested using xtest, and the results from the XFree86
>> 4.4 tree with and without the patch are identical.
>>
>> Some of the changes could not be tested because we do not have the
>> appropriate hardware available -- it would be possible to substitute
>> MAXSCREENSDEFAULT for MAXSCREENS in these code paths (i.e., and leave
>> them as compile-time configurable code paths):
>>     config/cf/iPAQH3600.cf
>>     config/cf/itsy.cf
>>     programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c
>>     programs/Xserver/hw/kdrive/kxv.c
>>     programs/Xserver/hw/sun/sunInit.c
>>     programs/Xserver/hw/sunLynx/sunLyInit.c
>>     programs/Xserver/hw/xfree86/drivers/* [all the changes are similar]
>>     programs/Xserver/hw/xfree86/os-support/bsd/arm_video.c
>>     programs/Xserver/hw/xfree86/os-support/dgux/dgux_video.c
>>     programs/Xserver/hw/xwin/InitOutput.c
>>
>> The diffstat is below, followed by the patch.
>>
>> ======================================================================
>>
>>  config/cf/iPAQH3600.cf                                      |    2
>>  config/cf/itsy.cf                                           |    2
>>  programs/Xserver/GL/mesa/src/X/xf86glx.c                    |    6
>>  programs/Xserver/Xext/appgroup.c                            |   13 +
>>  programs/Xserver/Xext/mbufbf.c                              |   19 +-
>>  programs/Xserver/Xext/panoramiX.c                           |   15 +
>>  programs/Xserver/Xext/panoramiX.h                           |    2
>>  programs/Xserver/Xext/panoramiXprocs.c                      |  107 +++++++++---
>>  programs/Xserver/Xext/panoramiXsrv.h                        |    2
>>  programs/Xserver/Xext/shm.c                                 |   29 ++-
>>  programs/Xserver/Xext/xf86dga2.c                            |    3
>>  programs/Xserver/Xext/xprint.c                              |    4
>>  programs/Xserver/Xext/xvdisp.c                              |    8
>>  programs/Xserver/dbe/dbe.c                                  |    5
>>  programs/Xserver/dix/cursor.c                               |   69 +++++++
>>  programs/Xserver/dix/dispatch.c                             |    9 +
>>  programs/Xserver/dix/events.c                               |    3
>>  programs/Xserver/dix/extension.c                            |    5
>>  programs/Xserver/dix/globals.c                              |    2
>>  programs/Xserver/dix/main.c                                 |   45 ++++-
>>  programs/Xserver/dix/window.c                               |    2
>>  programs/Xserver/fb/fbcmap.c                                |   11 -
>>  programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c   |   10 +
>>  programs/Xserver/hw/kdrive/kxv.c                            |    4
>>  programs/Xserver/hw/sun/sunInit.c                           |   14 +
>>  programs/Xserver/hw/sunLynx/sunLyInit.c                     |    6
>>  programs/Xserver/hw/vfb/InitOutput.c                        |    8
>>  programs/Xserver/hw/xfree86/common/xf86Cursor.c             |   64 +++----
>>  programs/Xserver/hw/xfree86/common/xf86xv.c                 |    3
>>  programs/Xserver/hw/xfree86/drivers/ati/r128_dga.c          |    4
>>  programs/Xserver/hw/xfree86/drivers/ati/radeon_dga.c        |    4
>>  programs/Xserver/hw/xfree86/drivers/chips/ct_dga.c          |    4
>>  programs/Xserver/hw/xfree86/drivers/cirrus/cir_dga.c        |    4
>>  programs/Xserver/hw/xfree86/drivers/dummy/dummy_dga.c       |    4
>>  programs/Xserver/hw/xfree86/drivers/glint/glint_dga.c       |    4
>>  programs/Xserver/hw/xfree86/drivers/i128/i128dga.c          |    4
>>  programs/Xserver/hw/xfree86/drivers/i740/i740_dga.c         |    4
>>  programs/Xserver/hw/xfree86/drivers/i810/i810_dga.c         |    4
>>  programs/Xserver/hw/xfree86/drivers/i810/i830_dga.c         |    4
>>  programs/Xserver/hw/xfree86/drivers/mga/mga_dga.c           |    4
>>  programs/Xserver/hw/xfree86/drivers/neomagic/neo_dga.c      |    4
>>  programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx1_dga.c       |    4
>>  programs/Xserver/hw/xfree86/drivers/nsc/nsc_gx2_dga.c       |    4
>>  programs/Xserver/hw/xfree86/drivers/nv/nv_dga.c             |    4
>>  programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c          |   10 -
>>  programs/Xserver/hw/xfree86/drivers/nv/riva_dga.c           |    4
>>  programs/Xserver/hw/xfree86/drivers/s3/s3_dga.c             |    4
>>  programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c       |    4
>>  programs/Xserver/hw/xfree86/drivers/savage/savage_dga.c     |   13 +
>>  programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_dga.c |    4
>>  programs/Xserver/hw/xfree86/drivers/sis/sis_dga.c           |    4
>>  programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_dga.c         |    4
>>  programs/Xserver/hw/xfree86/drivers/trident/trident_dga.c   |    4
>>  programs/Xserver/hw/xfree86/drivers/tseng/tseng_dga.c       |    4
>>  programs/Xserver/hw/xfree86/os-support/bsd/arm_video.c      |    4
>>  programs/Xserver/hw/xfree86/os-support/dgux/dgux_video.c    |   21 +-
>>  programs/Xserver/hw/xfree86/xf8_16bpp/cfbscrinit.c          |    7
>>  programs/Xserver/hw/xfree86/xf8_32wid/cfbscrinit.c          |    7
>>  programs/Xserver/hw/xnest/Args.c                            |    4
>>  programs/Xserver/hw/xnest/Color.c                           |    6
>>  programs/Xserver/hw/xnest/Init.c                            |    3
>>  programs/Xserver/hw/xnest/Screen.c                          |    4
>>  programs/Xserver/hw/xnest/Screen.h                          |    4
>>  programs/Xserver/hw/xwin/InitOutput.c                       |    6
>>  programs/Xserver/include/cursorstr.h                        |    4
>>  programs/Xserver/include/dixstruct.h                        |    2
>>  programs/Xserver/include/globals.h                          |    2
>>  programs/Xserver/include/misc.h                             |   48 +++++
>>  programs/Xserver/include/scrnintstr.h                       |    2
>>  programs/Xserver/include/windowstr.h                        |    2
>>  programs/Xserver/lbx/lbxdix.c                               |    2
>>  programs/Xserver/mi/miclipn.c                               |    4
>>  programs/Xserver/mi/micmap.c                                |    3
>>  programs/Xserver/mi/micmap.h                                |    2
>>  programs/Xserver/mi/miexpose.c                              |    4
>>  programs/Xserver/os/utils.c                                 |   14 +
>>  programs/Xserver/render/render.c                            |   12 +
>>  77 files changed, 589 insertions(+), 165 deletions(-)
>>
>>
>_______________________________________________
>Devel mailing list
>[EMAIL PROTECTED]
>http://XFree86.Org/mailman/listinfo/devel
>
_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to