[ros-diffs] [weiden] 24473: Make sure the compiler doesn't optimize away writes to video memory
weiden at svn.reactos.org
weiden at svn.reactos.org
Mon Oct 9 18:37:28 CEST 2006
Author: weiden
Date: Mon Oct 9 20:37:27 2006
New Revision: 24473
URL: http://svn.reactos.org/svn/reactos?rev=24473&view=rev
Log:
Make sure the compiler doesn't optimize away writes to video memory
Modified:
trunk/reactos/drivers/base/bootvid/vid_vgatext.c
Modified: trunk/reactos/drivers/base/bootvid/vid_vgatext.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/base/bootvid/vid_vgatext.c?rev=24473&r1=24472&r2=24473&view=diff
==============================================================================
--- trunk/reactos/drivers/base/bootvid/vid_vgatext.c (original)
+++ trunk/reactos/drivers/base/bootvid/vid_vgatext.c Mon Oct 9 20:37:27 2006
@@ -61,7 +61,7 @@
static VOID NTAPI
VidpVgaTextClearDisplay(VOID)
{
- WORD *ptr = (WORD*)VidpMemory;
+ volatile WORD *ptr = (volatile WORD*)VidpMemory;
ULONG i;
for (i = 0; i < SizeX * SizeY; i++, ptr++)
@@ -166,13 +166,12 @@
static VOID NTAPI
VidpVgaTextScrollDisplay(VOID)
{
- PUSHORT ptr;
+ volatile USHORT *ptr;
int i;
- ptr = (PUSHORT)VidpMemory + SizeX;
- RtlMoveMemory(VidpMemory, ptr, SizeX * (SizeY - 1) * 2);
-
- ptr = (PUSHORT)VidpMemory + (SizeX * (SizeY - 1));
+ RtlMoveMemory(VidpMemory, (PUSHORT)VidpMemory + SizeX, SizeX * (SizeY - 1) * 2);
+
+ ptr = (volatile USHORT *)VidpMemory + (SizeX * (SizeY - 1));
for (i = 0; i < (int)SizeX; i++, ptr++)
*ptr = (CHAR_ATTRIBUTE << 8) + ' ';
}
@@ -210,9 +209,9 @@
}
else if (*pch != '\r')
{
- PUSHORT ptr;
-
- ptr = (PUSHORT)VidpMemory + ((CursorY * SizeX) + CursorX);
+ volatile USHORT *ptr;
+
+ ptr = (volatile USHORT *)VidpMemory + ((CursorY * SizeX) + CursorX);
*ptr = (CHAR_ATTRIBUTE << 8) + *pch;
CursorX++;
More information about the Ros-diffs
mailing list