~ubuntu-branches/ubuntu/precise/xorg-server/precise

« back to all changes in this revision

Viewing changes to hw/xfree86/dri/xf86dri.c

  • Committer: Bazaar Package Importer
  • Author(s): Christopher James Halse Rogers
  • Date: 2011-01-31 19:45:19 UTC
  • mfrom: (1.1.38 upstream) (0.1.19 experimental)
  • Revision ID: james.westby@ubuntu.com-20110131194519-fx30d1zsg83invba
Tags: 2:1.9.99.901+git20110131.be3be758-0ubuntu1
* Merge from (unreleased) debian-experimental.  Remaining Ubuntu changes:
  - rules:
    + Disable SELinux, libaudit-dev is not in main yet. (LP: #406226)
    + Enable xcsecurity. (LP: #247537)
    + Add --with-extra-module-dir to support GL alternatives.
  - control: 
    + Xvfb depends on xauth, x11-xkb-utils. (LP: #500102)
    + Add breaks for incompatible drivers. (LP: #614993)
    + Drop libaudit-dev from build-deps.
  - local/xvfb-run*: Add correct docs about error codes. (LP #328205)
  - debian/patches:
    + 100_rethrow_signals.patch:
      When aborting, re-raise signals for apport
    + 109_fix-swcursor-crash.patch:
      Avoid dereferencing null pointer while reloading cursors during
      resume. (LP: #371405)
    + 111_armel-drv-fallbacks.patch:
      Add support for armel driver fallbacks.
    + 121_only_switch_vt_when_active.diff:
      Add a check to prevent the X server from changing the VT when killing
      GDM from the console.
    + 122_xext_fix_card32_overflow_in_xauth.patch:
      Fix server crash when “xauth generate” is called with large timeout.
    + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch,
      166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch
      169_mipointer_nullptr_checks.patch,
      172_cwgetbackingpicture_nullptr_check.patch:
      Fix various segfaults in xserver by checking pointers for NULL
      values before dereferencing them.
    + 165_man_xorg_conf_no_device_ident.patch
      Correct man page
    + 168_glibc_trace_to_stderr.patch:
      Report abort traces to stderr instead of terminal
    + 184_virtual_devices_autodetect.patch:
      Use vesa for qemu device, which is not supported by cirrus
    + 188_default_primary_to_first_busid.patch:
      Pick the first device and carry on (LP: #459512)
    + 190_cache-xkbcomp_output_for_fast_start_up.patch:
    + 191-Xorg-add-an-extra-module-path.patch:
      Add support for the alternatives module path.
    + 198_nohwaccess.patch:
      Adds a -nohwaccess argument to make X not access the hardware
      ports directly.
    + 200_randr-null.patch:
      Clarify a pointer initialization.
    + 206_intel_8xx_default_to_fbdev.patch:
      Makes 8xx class intel GPUs default to fbdev for stability. (LP: #633593)
* Refresh 121_only_switch_vt_when_active.diff for new upstream.
* Drop 187_edid_quirk_hp_nc8430.patch; upstream.
* Drop 189_xserver_1.5.0_bg_none_root.patch; functionality now upstream.
* Refresh 190_cache-xkbcomp_output_for_fast_start_up.patch for new upstream.
* Drop 197_xvfb-randr.patch:
  - miRandR, which this used, has been removed from the server. 
* Drop 204_fix-neg-sync-transition.patch; upstream.
* Drop 207_dga_master_device.patch; upstream.
* Drop 208_switch_on_release.diff; upstream.
* debian/patches/209_add_legacy_bgnone_option.patch:
  - Add "-nr" as a synonym for "-background none" to ease the transition from
    the old 189_xserver_1.5.0_bg_none_root.patch patch.  Can be dropped once
    all the ?DM have been updated to use the new option.
* debian/control:
  - Add Breaks: to xserver-xorg-video-8 and current fglrx.  These proprietary
    drivers don't yet have appropriate dependency information, so manually
    handle them here to prevent broken upgrades.

Show diffs side-by-side

added added

removed removed

Lines of Context:
64
64
 
65
65
static int DRIErrorBase;
66
66
 
67
 
static DISPATCH_PROC(ProcXF86DRIQueryVersion);
68
 
static DISPATCH_PROC(ProcXF86DRIQueryDirectRenderingCapable);
69
 
static DISPATCH_PROC(ProcXF86DRIOpenConnection);
70
 
static DISPATCH_PROC(ProcXF86DRICloseConnection);
71
 
static DISPATCH_PROC(ProcXF86DRIGetClientDriverName);
72
 
static DISPATCH_PROC(ProcXF86DRICreateContext);
73
 
static DISPATCH_PROC(ProcXF86DRIDestroyContext);
74
 
static DISPATCH_PROC(ProcXF86DRICreateDrawable);
75
 
static DISPATCH_PROC(ProcXF86DRIDestroyDrawable);
76
 
static DISPATCH_PROC(ProcXF86DRIGetDrawableInfo);
77
 
static DISPATCH_PROC(ProcXF86DRIGetDeviceInfo);
78
 
static DISPATCH_PROC(ProcXF86DRIDispatch);
79
 
static DISPATCH_PROC(ProcXF86DRIAuthConnection);
80
67
 
81
 
static DISPATCH_PROC(SProcXF86DRIQueryVersion);
82
 
static DISPATCH_PROC(SProcXF86DRIQueryDirectRenderingCapable);
83
 
static DISPATCH_PROC(SProcXF86DRIDispatch);
84
68
 
85
69
static void XF86DRIResetProc(ExtensionEntry* extEntry);
86
70
 
88
72
 
89
73
extern void XFree86DRIExtensionInit(void);
90
74
 
91
 
void
92
 
XFree86DRIExtensionInit(void)
93
 
{
94
 
    ExtensionEntry* extEntry;
95
 
 
96
 
#ifdef XF86DRI_EVENTS
97
 
    EventType = CreateNewResourceType(XF86DRIFreeEvents, "DRIEvent");
98
 
#endif
99
 
 
100
 
    if (
101
 
        DRIExtensionInit() &&
102
 
#ifdef XF86DRI_EVENTS
103
 
        EventType && ScreenPrivateIndex != -1 &&
104
 
#endif
105
 
        (extEntry = AddExtension(XF86DRINAME,
106
 
                                 XF86DRINumberEvents,
107
 
                                 XF86DRINumberErrors,
108
 
                                 ProcXF86DRIDispatch,
109
 
                                 SProcXF86DRIDispatch,
110
 
                                 XF86DRIResetProc,
111
 
                                 StandardMinorOpcode))) {
112
 
        DRIReqCode = (unsigned char)extEntry->base;
113
 
        DRIErrorBase = extEntry->errorBase;
114
 
    }
115
 
}
116
 
 
117
75
/*ARGSUSED*/
118
76
static void
119
77
XF86DRIResetProc (
677
635
        return DRIErrorBase + XF86DRIClientNotLocal;
678
636
    }
679
637
}
 
638
 
 
639
void
 
640
XFree86DRIExtensionInit(void)
 
641
{
 
642
    ExtensionEntry* extEntry;
 
643
 
 
644
#ifdef XF86DRI_EVENTS
 
645
    EventType = CreateNewResourceType(XF86DRIFreeEvents, "DRIEvent");
 
646
#endif
 
647
 
 
648
    if (
 
649
        DRIExtensionInit() &&
 
650
#ifdef XF86DRI_EVENTS
 
651
        EventType && ScreenPrivateIndex != -1 &&
 
652
#endif
 
653
        (extEntry = AddExtension(XF86DRINAME,
 
654
                                 XF86DRINumberEvents,
 
655
                                 XF86DRINumberErrors,
 
656
                                 ProcXF86DRIDispatch,
 
657
                                 SProcXF86DRIDispatch,
 
658
                                 XF86DRIResetProc,
 
659
                                 StandardMinorOpcode))) {
 
660
        DRIReqCode = (unsigned char)extEntry->base;
 
661
        DRIErrorBase = extEntry->errorBase;
 
662
    }
 
663
}