From 3ceb0e82e5ec7a554d3adf1be08f96b6e5bfe785 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 17 Apr 2026 14:41:08 +1000 Subject: [PATCH] Xext/vidmode: add byte-swapping in various fields Co-Authored-by: Claude Code Part-of: --- Xext/vidmode.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Xext/vidmode.c b/Xext/vidmode.c index 9b5322237..0d7124f69 100644 --- a/Xext/vidmode.c +++ b/Xext/vidmode.c @@ -1737,6 +1737,7 @@ SProcVidModeAddModeLine(ClientPtr client) if (ver < 2) { REQUEST_AT_LEAST_SIZE(xXF86OldVidModeAddModeLineReq); swapl(&oldstuff->screen); + swapl(&oldstuff->dotclock); swaps(&oldstuff->hdisplay); swaps(&oldstuff->hsyncstart); swaps(&oldstuff->hsyncend); @@ -1747,11 +1748,22 @@ SProcVidModeAddModeLine(ClientPtr client) swaps(&oldstuff->vtotal); swapl(&oldstuff->flags); swapl(&oldstuff->privsize); + swapl(&oldstuff->after_dotclock); + swaps(&oldstuff->after_hdisplay); + swaps(&oldstuff->after_hsyncstart); + swaps(&oldstuff->after_hsyncend); + swaps(&oldstuff->after_htotal); + swaps(&oldstuff->after_vdisplay); + swaps(&oldstuff->after_vsyncstart); + swaps(&oldstuff->after_vsyncend); + swaps(&oldstuff->after_vtotal); + swapl(&oldstuff->after_flags); SwapRestL(oldstuff); } else { REQUEST_AT_LEAST_SIZE(xXF86VidModeAddModeLineReq); swapl(&stuff->screen); + swapl(&stuff->dotclock); swaps(&stuff->hdisplay); swaps(&stuff->hsyncstart); swaps(&stuff->hsyncend); @@ -1763,6 +1775,17 @@ SProcVidModeAddModeLine(ClientPtr client) swaps(&stuff->vtotal); swapl(&stuff->flags); swapl(&stuff->privsize); + swapl(&stuff->after_dotclock); + swaps(&stuff->after_hdisplay); + swaps(&stuff->after_hsyncstart); + swaps(&stuff->after_hsyncend); + swaps(&stuff->after_htotal); + swaps(&stuff->after_hskew); + swaps(&stuff->after_vdisplay); + swaps(&stuff->after_vsyncstart); + swaps(&stuff->after_vsyncend); + swaps(&stuff->after_vtotal); + swapl(&stuff->after_flags); SwapRestL(stuff); } return ProcVidModeAddModeLine(client); @@ -1780,6 +1803,7 @@ SProcVidModeDeleteModeLine(ClientPtr client) if (ver < 2) { REQUEST_AT_LEAST_SIZE(xXF86OldVidModeDeleteModeLineReq); swapl(&oldstuff->screen); + swapl(&oldstuff->dotclock); swaps(&oldstuff->hdisplay); swaps(&oldstuff->hsyncstart); swaps(&oldstuff->hsyncend); @@ -1795,6 +1819,7 @@ SProcVidModeDeleteModeLine(ClientPtr client) else { REQUEST_AT_LEAST_SIZE(xXF86VidModeDeleteModeLineReq); swapl(&stuff->screen); + swapl(&stuff->dotclock); swaps(&stuff->hdisplay); swaps(&stuff->hsyncstart); swaps(&stuff->hsyncend); @@ -1866,6 +1891,7 @@ SProcVidModeValidateModeLine(ClientPtr client) if (ver < 2) { REQUEST_AT_LEAST_SIZE(xXF86OldVidModeValidateModeLineReq); swapl(&oldstuff->screen); + swapl(&oldstuff->dotclock); swaps(&oldstuff->hdisplay); swaps(&oldstuff->hsyncstart); swaps(&oldstuff->hsyncend); @@ -1881,6 +1907,7 @@ SProcVidModeValidateModeLine(ClientPtr client) else { REQUEST_AT_LEAST_SIZE(xXF86VidModeValidateModeLineReq); swapl(&stuff->screen); + swapl(&stuff->dotclock); swaps(&stuff->hdisplay); swaps(&stuff->hsyncstart); swaps(&stuff->hsyncend);