From 945ed508b695dad952393b1f53d7e0cd6e6e7425 Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Tue, 5 Jul 2005 00:24:36 +0000 Subject: [PATCH] fix code that depends on GCC's void* pointer arithmetic extension svn path=/trunk/; revision=16420 --- reactos/drivers/dd/ramdrv/ramdrv.c | 4 +- reactos/drivers/fs/cdfs/dirctl.c | 12 ++--- reactos/drivers/fs/cdfs/fcb.c | 4 +- reactos/drivers/fs/np/rw.c | 28 +++++------ reactos/drivers/fs/ntfs/attrib.c | 6 +-- reactos/drivers/fs/ntfs/mft.c | 4 +- reactos/drivers/lib/ip/network/receive.c | 2 +- reactos/drivers/lib/ip/transport/udp/udp.c | 2 +- reactos/drivers/net/dd/pcnet/pcnet.c | 8 ++-- reactos/drivers/net/dd/pcnet/pcnet.h | 2 +- reactos/drivers/net/ndis/ndis/io.c | 4 +- reactos/drivers/storage/atapi/atapi.c | 6 +-- reactos/drivers/storage/cdrom/cdrom.c | 4 +- reactos/drivers/storage/scsiport/scsiport.c | 16 +++---- .../video/displays/vga/objects/bitblt.c | 4 +- .../video/displays/vga/vgavideo/vgavideo.c | 6 +-- reactos/drivers/video/videoprt/videoprt.c | 4 +- reactos/include/reactos/helper.h | 2 +- reactos/lib/crt/search/lsearch.c | 7 +-- reactos/lib/kernel32/file/find.c | 6 +-- reactos/lib/kernel32/mem/global.c | 16 +++---- reactos/lib/kernel32/process/create.c | 4 +- reactos/lib/ntdll/csr/lpc.c | 2 +- reactos/lib/ntdll/ldr/startup.c | 2 +- reactos/lib/ntdll/ldr/utils.c | 46 +++++++++---------- reactos/lib/rosrtl/thread/i386/context.c | 2 +- reactos/lib/rtl/image.c | 6 +-- reactos/lib/rtl/process.c | 4 +- reactos/lib/rtl/registry.c | 6 +-- reactos/lib/user32/windows/bitmap.c | 2 +- 30 files changed, 109 insertions(+), 112 deletions(-) diff --git a/reactos/drivers/dd/ramdrv/ramdrv.c b/reactos/drivers/dd/ramdrv/ramdrv.c index a458e6d7a07..52c4c6bf237 100644 --- a/reactos/drivers/dd/ramdrv/ramdrv.c +++ b/reactos/drivers/dd/ramdrv/ramdrv.c @@ -63,9 +63,9 @@ NTSTATUS STDCALL RamdrvDispatchReadWrite(PDEVICE_OBJECT DeviceObject, Stk->Parameters.Read.Length = devext->Size - Stk->Parameters.Read.ByteOffset.u.LowPart; if( Stk->MajorFunction == IRP_MJ_READ ) RtlCopyMemory( MmGetSystemAddressForMdl( Irp->MdlAddress ), - devext->Buffer + Stk->Parameters.Read.ByteOffset.u.LowPart, + (PVOID)((ULONG_PTR)devext->Buffer + Stk->Parameters.Read.ByteOffset.u.LowPart), Stk->Parameters.Read.Length ); - else RtlCopyMemory( devext->Buffer + Stk->Parameters.Read.ByteOffset.u.LowPart, + else RtlCopyMemory( (PVOID)((ULONG_PTR)devext->Buffer + Stk->Parameters.Read.ByteOffset.u.LowPart), MmGetSystemAddressForMdl( Irp->MdlAddress ), Stk->Parameters.Read.Length ); Irp->IoStatus.Status = STATUS_SUCCESS; diff --git a/reactos/drivers/fs/cdfs/dirctl.c b/reactos/drivers/fs/cdfs/dirctl.c index 6d5eee1e6b6..32c4cb6eaec 100644 --- a/reactos/drivers/fs/cdfs/dirctl.c +++ b/reactos/drivers/fs/cdfs/dirctl.c @@ -69,10 +69,10 @@ CdfsGetEntryName(PDEVICE_EXTENSION DeviceExt, Record = (PDIR_RECORD)*Block; while (Index < *pIndex) { - (*Ptr) += Record->RecordLength; + (*Ptr) = (PVOID)((ULONG_PTR)(*Ptr) + Record->RecordLength); (*CurrentOffset) += Record->RecordLength; Record = *Ptr; - if (*Ptr - *Block >= BLOCKSIZE || Record->RecordLength == 0) + if ((ULONG_PTR)(*Ptr) - (ULONG_PTR)(*Block) >= BLOCKSIZE || Record->RecordLength == 0) { DPRINT("Map next sector\n"); CcUnpinData(*Context); @@ -96,7 +96,7 @@ CdfsGetEntryName(PDEVICE_EXTENSION DeviceExt, } } - if (*Ptr - *Block >= BLOCKSIZE || Record->RecordLength == 0) + if ((ULONG_PTR)(*Ptr) - (ULONG_PTR)(*Block) >= BLOCKSIZE || Record->RecordLength == 0) { DPRINT("Map next sector\n"); CcUnpinData(*Context); @@ -259,11 +259,11 @@ CdfsFindFile(PDEVICE_EXTENSION DeviceExt, return STATUS_UNSUCCESSFUL; } - Record = (PDIR_RECORD) (Block + Offset % BLOCKSIZE); + Record = (PDIR_RECORD) ((ULONG_PTR)Block + Offset % BLOCKSIZE); if (Offset) { Offset += Record->RecordLength; - Record = (PVOID)Record + Record->RecordLength; + Record = (PDIR_RECORD)((ULONG_PTR)Record + Record->RecordLength); } while(TRUE) @@ -356,7 +356,7 @@ CdfsFindFile(PDEVICE_EXTENSION DeviceExt, } Offset += Record->RecordLength; - Record = (PVOID)Record + Record->RecordLength; + Record = (PDIR_RECORD)((ULONG_PTR)Record + Record->RecordLength); DirIndex++; } diff --git a/reactos/drivers/fs/cdfs/fcb.c b/reactos/drivers/fs/cdfs/fcb.c index 577f18c22ad..1092773c2fa 100644 --- a/reactos/drivers/fs/cdfs/fcb.c +++ b/reactos/drivers/fs/cdfs/fcb.c @@ -580,7 +580,7 @@ CdfsDirFindFile(PDEVICE_EXTENSION DeviceExt, Offset += Record->RecordLength; BlockOffset += Record->RecordLength; - Record = (PDIR_RECORD)(Block + BlockOffset); + Record = (PDIR_RECORD)((ULONG_PTR)Block + BlockOffset); if (BlockOffset >= BLOCKSIZE || Record->RecordLength == 0) { DPRINT("Map next sector\n"); @@ -597,7 +597,7 @@ CdfsDirFindFile(PDEVICE_EXTENSION DeviceExt, DPRINT("CcMapData() failed\n"); return(STATUS_UNSUCCESSFUL); } - Record = (PDIR_RECORD)(Block + BlockOffset); + Record = (PDIR_RECORD)((ULONG_PTR)Block + BlockOffset); } if (Offset >= DirSize) diff --git a/reactos/drivers/fs/np/rw.c b/reactos/drivers/fs/np/rw.c index e7fa82c6a6b..97255d00f03 100644 --- a/reactos/drivers/fs/np/rw.c +++ b/reactos/drivers/fs/np/rw.c @@ -390,7 +390,7 @@ NpfsRead(IN PDEVICE_OBJECT DeviceObject, Information = Irp->IoStatus.Information; Length = IoGetCurrentIrpStackLocation(Irp)->Parameters.Read.Length; ASSERT (Information <= Length); - Buffer += Information; + Buffer = (PVOID)((ULONG_PTR)Buffer + Information); Length -= Information; Status = STATUS_SUCCESS; @@ -450,24 +450,24 @@ NpfsRead(IN PDEVICE_OBJECT DeviceObject, while (Length > 0 && Fcb->ReadDataAvailable > 0) { CopyLength = min(Fcb->ReadDataAvailable, Length); - if (Fcb->ReadPtr + CopyLength <= Fcb->Data + Fcb->MaxDataLength) + if ((ULONG_PTR)Fcb->ReadPtr + CopyLength <= (ULONG_PTR)Fcb->Data + Fcb->MaxDataLength) { memcpy(Buffer, Fcb->ReadPtr, CopyLength); - Fcb->ReadPtr += CopyLength; - if (Fcb->ReadPtr == Fcb->Data + Fcb->MaxDataLength) + Fcb->ReadPtr = (PVOID)((ULONG_PTR)Fcb->ReadPtr + CopyLength); + if (Fcb->ReadPtr == (PVOID)((ULONG_PTR)Fcb->Data + Fcb->MaxDataLength)) { Fcb->ReadPtr = Fcb->Data; } } else { - TempLength = Fcb->Data + Fcb->MaxDataLength - Fcb->ReadPtr; + TempLength = (ULONG)((ULONG_PTR)Fcb->Data + Fcb->MaxDataLength - (ULONG_PTR)Fcb->ReadPtr); memcpy(Buffer, Fcb->ReadPtr, TempLength); - memcpy(Buffer + TempLength, Fcb->Data, CopyLength - TempLength); - Fcb->ReadPtr = Fcb->Data + CopyLength - TempLength; + memcpy((PVOID)((ULONG_PTR)Buffer + TempLength), Fcb->Data, CopyLength - TempLength); + Fcb->ReadPtr = (PVOID)((ULONG_PTR)Fcb->Data + CopyLength - TempLength); } - Buffer += CopyLength; + Buffer = (PVOID)((ULONG_PTR)Buffer + CopyLength); Length -= CopyLength; Information += CopyLength; @@ -505,7 +505,7 @@ NpfsRead(IN PDEVICE_OBJECT DeviceObject, if (Fcb->ReadDataAvailable > Length) { - memmove(Fcb->Data, Fcb->Data + Length, + memmove(Fcb->Data, (PVOID)((ULONG_PTR)Fcb->Data + Length), Fcb->ReadDataAvailable - Length); Fcb->ReadDataAvailable -= Length; Status = STATUS_MORE_ENTRIES; @@ -694,21 +694,21 @@ NpfsWrite(PDEVICE_OBJECT DeviceObject, while (Length > 0 && ReaderFcb->WriteQuotaAvailable > 0) { CopyLength = min(Length, ReaderFcb->WriteQuotaAvailable); - if (ReaderFcb->WritePtr + CopyLength <= ReaderFcb->Data + ReaderFcb->MaxDataLength) + if ((ULONG_PTR)ReaderFcb->WritePtr + CopyLength <= (ULONG_PTR)ReaderFcb->Data + ReaderFcb->MaxDataLength) { memcpy(ReaderFcb->WritePtr, Buffer, CopyLength); - ReaderFcb->WritePtr += CopyLength; - if (ReaderFcb->WritePtr == ReaderFcb->Data + ReaderFcb->MaxDataLength) + ReaderFcb->WritePtr = (PVOID)((ULONG_PTR)ReaderFcb->WritePtr + CopyLength); + if ((ULONG_PTR)ReaderFcb->WritePtr == (ULONG_PTR)ReaderFcb->Data + ReaderFcb->MaxDataLength) { ReaderFcb->WritePtr = ReaderFcb->Data; } } else { - TempLength = ReaderFcb->Data + ReaderFcb->MaxDataLength - ReaderFcb->WritePtr; + TempLength = (ULONG)((ULONG_PTR)ReaderFcb->Data + ReaderFcb->MaxDataLength - (ULONG_PTR)ReaderFcb->WritePtr); memcpy(ReaderFcb->WritePtr, Buffer, TempLength); memcpy(ReaderFcb->Data, Buffer + TempLength, CopyLength - TempLength); - ReaderFcb->WritePtr = ReaderFcb->Data + CopyLength - TempLength; + ReaderFcb->WritePtr = (PVOID)((ULONG_PTR)ReaderFcb->Data + CopyLength - TempLength); } Buffer += CopyLength; diff --git a/reactos/drivers/fs/ntfs/attrib.c b/reactos/drivers/fs/ntfs/attrib.c index fea5f10f8c7..ca8c02abcc5 100644 --- a/reactos/drivers/fs/ntfs/attrib.c +++ b/reactos/drivers/fs/ntfs/attrib.c @@ -125,7 +125,7 @@ NtfsDumpFileNameAttribute(PATTRIBUTE Attribute) ResAttr = (PRESIDENT_ATTRIBUTE)Attribute; // DbgPrint(" Length %lu Offset %hu ", ResAttr->ValueLength, ResAttr->ValueOffset); - FileNameAttr = (PFILENAME_ATTRIBUTE)((PVOID)ResAttr + ResAttr->ValueOffset); + FileNameAttr = (PFILENAME_ATTRIBUTE)((ULONG_PTR)ResAttr + ResAttr->ValueOffset); DbgPrint(" '%.*S' ", FileNameAttr->NameLength, FileNameAttr->Name); } @@ -141,7 +141,7 @@ NtfsDumpVolumeNameAttribute(PATTRIBUTE Attribute) ResAttr = (PRESIDENT_ATTRIBUTE)Attribute; // DbgPrint(" Length %lu Offset %hu ", ResAttr->ValueLength, ResAttr->ValueOffset); - VolumeName = (PWCHAR)((PVOID)ResAttr + ResAttr->ValueOffset); + VolumeName = (PWCHAR)((ULONG_PTR)ResAttr + ResAttr->ValueOffset); DbgPrint(" '%.*S' ", ResAttr->ValueLength / sizeof(WCHAR), VolumeName); } @@ -157,7 +157,7 @@ NtfsDumpVolumeInformationAttribute(PATTRIBUTE Attribute) ResAttr = (PRESIDENT_ATTRIBUTE)Attribute; // DbgPrint(" Length %lu Offset %hu ", ResAttr->ValueLength, ResAttr->ValueOffset); - VolInfoAttr = (PVOLINFO_ATTRIBUTE)((PVOID)ResAttr + ResAttr->ValueOffset); + VolInfoAttr = (PVOLINFO_ATTRIBUTE)((ULONG_PTR)ResAttr + ResAttr->ValueOffset); DbgPrint(" NTFS Version %u.%u Flags 0x%04hx ", VolInfoAttr->MajorVersion, VolInfoAttr->MinorVersion, diff --git a/reactos/drivers/fs/ntfs/mft.c b/reactos/drivers/fs/ntfs/mft.c index 6bba5ffc01a..cf5b4f54569 100644 --- a/reactos/drivers/fs/ntfs/mft.c +++ b/reactos/drivers/fs/ntfs/mft.c @@ -208,7 +208,7 @@ ReadFileRecord (PDEVICE_EXTENSION Vcb, ULONG n = m > 0 ? (index & m) : 0; - memcpy(file, p + n * BytesPerFileRecord, BytesPerFileRecord); + memcpy(file, (PVOID)((ULONG_PTR)p + n * BytesPerFileRecord), BytesPerFileRecord); ExFreePool(p); @@ -290,7 +290,7 @@ BOOL bitset(PUCHAR bitmap, ULONG i) VOID FixupUpdateSequenceArray(PFILE_RECORD_HEADER file) { - PUSHORT usa = (PUSHORT)((PVOID)file + file->Ntfs.UsaOffset); + PUSHORT usa = (PUSHORT)((ULONG_PTR)file + file->Ntfs.UsaOffset); PUSHORT sector = (PUSHORT)file; ULONG i; diff --git a/reactos/drivers/lib/ip/network/receive.c b/reactos/drivers/lib/ip/network/receive.c index f1efd74e38a..d6c05872e81 100644 --- a/reactos/drivers/lib/ip/network/receive.c +++ b/reactos/drivers/lib/ip/network/receive.c @@ -225,7 +225,7 @@ PIP_PACKET ReassembleDatagram( /* Copy the header into the buffer */ RtlCopyMemory(IPPacket->Header, &IPDR->IPv4Header, IPDR->HeaderSize); - Data = IPPacket->Header + IPDR->HeaderSize; + Data = (PVOID)((ULONG_PTR)IPPacket->Header + IPDR->HeaderSize); IPPacket->Data = Data; /* Copy data from all fragments into buffer */ diff --git a/reactos/drivers/lib/ip/transport/udp/udp.c b/reactos/drivers/lib/ip/transport/udp/udp.c index 70a3311120d..ffcd19dc949 100644 --- a/reactos/drivers/lib/ip/transport/udp/udp.c +++ b/reactos/drivers/lib/ip/transport/udp/udp.c @@ -44,7 +44,7 @@ NTSTATUS AddUDPHeaderIPv4( sizeof(UDP_HEADER), (PVOID *)&UDPHeader ); /* Build UDP header */ - UDPHeader = (PUDP_HEADER)(IPPacket->Data - sizeof(UDP_HEADER)); + UDPHeader = (PUDP_HEADER)((ULONG_PTR)IPPacket->Data - sizeof(UDP_HEADER)); /* Port values are already big-endian values */ UDPHeader->SourcePort = LocalPort; UDPHeader->DestPort = RemotePort; diff --git a/reactos/drivers/net/dd/pcnet/pcnet.c b/reactos/drivers/net/dd/pcnet/pcnet.c index b981a551e80..e5588560425 100644 --- a/reactos/drivers/net/dd/pcnet/pcnet.c +++ b/reactos/drivers/net/dd/pcnet/pcnet.c @@ -564,7 +564,7 @@ MiniportHalt( NdisMDeregisterInterrupt(&Adapter->InterruptObject); /* deregister i/o port range */ - NdisMDeregisterIoPortRange(Adapter->MiniportAdapterHandle, Adapter->IoBaseAddress, NUMBER_OF_PORTS, Adapter->PortOffset); + NdisMDeregisterIoPortRange(Adapter->MiniportAdapterHandle, Adapter->IoBaseAddress, NUMBER_OF_PORTS, (PVOID)Adapter->PortOffset); /* free shared memory */ MiFreeSharedMemory(Adapter); @@ -852,8 +852,8 @@ MiniportInitialize( } /* register an IO port range */ - Status = NdisMRegisterIoPortRange(&Adapter->PortOffset, Adapter->MiniportAdapterHandle, - Adapter->IoBaseAddress, NUMBER_OF_PORTS); + Status = NdisMRegisterIoPortRange((PVOID*)&Adapter->PortOffset, Adapter->MiniportAdapterHandle, + (UINT)Adapter->IoBaseAddress, NUMBER_OF_PORTS); if(Status != NDIS_STATUS_SUCCESS) { DPRINT1("NdisMRegisterIoPortRange failed: 0x%x\n", Status); @@ -914,7 +914,7 @@ MiniportInitialize( NdisMFreeMapRegisters(Adapter->MiniportAdapterHandle); /* doesn't hurt to free if we never alloc'd? */ if(Adapter->PortOffset) - NdisMDeregisterIoPortRange(Adapter->MiniportAdapterHandle, Adapter->IoBaseAddress, NUMBER_OF_PORTS, Adapter->PortOffset); + NdisMDeregisterIoPortRange(Adapter->MiniportAdapterHandle, Adapter->IoBaseAddress, NUMBER_OF_PORTS, (PVOID)Adapter->PortOffset); if(InterruptRegistered) NdisMDeregisterInterrupt(&Adapter->InterruptObject); diff --git a/reactos/drivers/net/dd/pcnet/pcnet.h b/reactos/drivers/net/dd/pcnet/pcnet.h index cb8d3c3ad38..b02d15e0917 100644 --- a/reactos/drivers/net/dd/pcnet/pcnet.h +++ b/reactos/drivers/net/dd/pcnet/pcnet.h @@ -57,7 +57,7 @@ typedef struct _ADAPTER ULONG Flags; ULONG InterruptVector; ULONG IoBaseAddress; - PVOID PortOffset; + ULONG_PTR PortOffset; NDIS_MINIPORT_INTERRUPT InterruptObject; NDIS_MEDIA_STATE MediaState; NDIS_MINIPORT_TIMER MediaDetectionTimer; diff --git a/reactos/drivers/net/ndis/ndis/io.c b/reactos/drivers/net/ndis/ndis/io.c index 240c2d38e61..bd8a6dbdfa7 100644 --- a/reactos/drivers/net/ndis/ndis/io.c +++ b/reactos/drivers/net/ndis/ndis/io.c @@ -487,7 +487,7 @@ NdisMStartBufferPhysicalMapping( */ { PLOGICAL_ADAPTER Adapter = 0; - VOID *CurrentVa; + PVOID CurrentVa; ULONG TotalLength; PHYSICAL_ADDRESS ReturnedAddress; UINT LoopCount = 0; @@ -514,7 +514,7 @@ NdisMStartBufferPhysicalMapping( PhysicalAddressArray[LoopCount].Length = Length; TotalLength -= Length; - CurrentVa += Length; + CurrentVa = (PVOID)((ULONG_PTR)CurrentVa + Length); LoopCount++; } diff --git a/reactos/drivers/storage/atapi/atapi.c b/reactos/drivers/storage/atapi/atapi.c index fe1a871c063..0e7af7a7a5c 100644 --- a/reactos/drivers/storage/atapi/atapi.c +++ b/reactos/drivers/storage/atapi/atapi.c @@ -3066,7 +3066,7 @@ AtapiInitDma(PATAPI_MINIPORT_EXTENSION DevExt, DPRINT("AtapiInitDma()\n"); StartAddress = Srb->DataBuffer; - EndAddress = StartAddress + Srb->DataTransferLength; + EndAddress = (PVOID)((ULONG_PTR)StartAddress + Srb->DataTransferLength); DevExt->PRDCount = 0; while (StartAddress < EndAddress) @@ -3105,7 +3105,7 @@ AtapiInitDma(PATAPI_MINIPORT_EXTENSION DevExt, return FALSE; } PhysicalAddress.u.LowPart += tmpLength; - StartAddress += tmpLength; + StartAddress = (PVOID)((ULONG_PTR)StartAddress + tmpLength); Length -= tmpLength; PRDEntry->PhysAddress = PhysicalAddress.u.LowPart; } @@ -3114,7 +3114,7 @@ AtapiInitDma(PATAPI_MINIPORT_EXTENSION DevExt, PRDEntry->PhysAddress = PhysicalAddress.u.LowPart; PRDEntry->Length = tmpLength; PRDEntry++; - StartAddress += tmpLength; + StartAddress = (PVOID)((ULONG_PTR)StartAddress + tmpLength); PhysicalAddress.u.LowPart += tmpLength; Length -= tmpLength; } diff --git a/reactos/drivers/storage/cdrom/cdrom.c b/reactos/drivers/storage/cdrom/cdrom.c index 11d06fd621c..1bebc73188e 100644 --- a/reactos/drivers/storage/cdrom/cdrom.c +++ b/reactos/drivers/storage/cdrom/cdrom.c @@ -1485,10 +1485,10 @@ CdromDeviceControlCompletion (IN PDEVICE_OBJECT DeviceObject, if (Retry == TRUE && (ULONG)OrigNextIrpStack->Parameters.Others.Argument1 > 0) { - DPRINT1 ("Try again (Retry count %lu)\n", + DPRINT1 ("Try again (Retry count 0x%p)\n", (ULONG)OrigNextIrpStack->Parameters.Others.Argument1); - (ULONG)OrigNextIrpStack->Parameters.Others.Argument1--; + OrigNextIrpStack->Parameters.Others.Argument1 = (PVOID)((ULONG_PTR)OrigNextIrpStack->Parameters.Others.Argument1 - 1); /* Release 'old' buffers */ ExFreePool (Srb->SenseInfoBuffer); diff --git a/reactos/drivers/storage/scsiport/scsiport.c b/reactos/drivers/storage/scsiport/scsiport.c index 8fa4a7bb80e..207bfe5e83d 100644 --- a/reactos/drivers/storage/scsiport/scsiport.c +++ b/reactos/drivers/storage/scsiport/scsiport.c @@ -478,7 +478,7 @@ ScsiPortGetPhysicalAddress(IN PVOID HwDeviceExtension, } if (Srb == NULL) { - EndAddress = DeviceExtension->VirtualAddress + DeviceExtension->CommonBufferLength; + EndAddress = (PVOID)((ULONG_PTR)DeviceExtension->VirtualAddress + DeviceExtension->CommonBufferLength); if (VirtualAddress >= DeviceExtension->VirtualAddress && VirtualAddress < EndAddress) { Offset = (ULONG_PTR)VirtualAddress - (ULONG_PTR)DeviceExtension->VirtualAddress; @@ -506,14 +506,14 @@ ScsiPortGetPhysicalAddress(IN PVOID HwDeviceExtension, } else { - EndAddress = Srb->DataBuffer + Srb->DataTransferLength; + EndAddress = (PVOID)((ULONG_PTR)Srb->DataBuffer + Srb->DataTransferLength); if (VirtualAddress == NULL) { VirtualAddress = Srb->DataBuffer; } else if (VirtualAddress < Srb->DataBuffer || VirtualAddress >= EndAddress) { - EndAddress = Srb->SenseInfoBuffer + Srb->SenseInfoBufferLength; + EndAddress = (PVOID)((ULONG_PTR)Srb->SenseInfoBuffer + Srb->SenseInfoBufferLength); if (VirtualAddress < Srb->SenseInfoBuffer || VirtualAddress >= EndAddress) { PhysicalAddress.QuadPart = 0LL; @@ -530,18 +530,18 @@ ScsiPortGetPhysicalAddress(IN PVOID HwDeviceExtension, } BufferLength = PAGE_SIZE - (ULONG_PTR)VirtualAddress % PAGE_SIZE; - while (VirtualAddress + BufferLength < EndAddress) + while ((ULONG_PTR)VirtualAddress + BufferLength < (ULONG_PTR)EndAddress) { - NextPhysicalAddress = MmGetPhysicalAddress(VirtualAddress + BufferLength); + NextPhysicalAddress = MmGetPhysicalAddress((PVOID)((ULONG_PTR)VirtualAddress + BufferLength)); if (PhysicalAddress.QuadPart + BufferLength != NextPhysicalAddress.QuadPart) { break; } BufferLength += PAGE_SIZE; } - if (VirtualAddress + BufferLength >= EndAddress) + if ((ULONG_PTR)VirtualAddress + BufferLength >= (ULONG_PTR)EndAddress) { - BufferLength = EndAddress - VirtualAddress; + BufferLength = (ULONG)((ULONG_PTR)EndAddress - (ULONG_PTR)VirtualAddress); } } if (Length != NULL) @@ -1786,7 +1786,7 @@ SpiAllocateSrbExtension(PSCSI_PORT_DEVICE_EXTENSION DeviceExtension, if (index != 0xffffffff) { DeviceExtension->CurrentSrbExtensions++; - Srb->SrbExtension = DeviceExtension->VirtualAddress + index * DeviceExtension->SrbExtensionSize; + Srb->SrbExtension = (PVOID)((ULONG_PTR)DeviceExtension->VirtualAddress + index * DeviceExtension->SrbExtensionSize); } } DPRINT("%x\n", Srb->SrbExtension); diff --git a/reactos/drivers/video/displays/vga/objects/bitblt.c b/reactos/drivers/video/displays/vga/objects/bitblt.c index cbf60c39bb9..763f6dfb0ba 100644 --- a/reactos/drivers/video/displays/vga/objects/bitblt.c +++ b/reactos/drivers/video/displays/vga/objects/bitblt.c @@ -52,14 +52,14 @@ DIBtoVGA(SURFOBJ *Dest, SURFOBJ *Source, XLATEOBJ *ColorTranslation, if (NULL == ColorTranslation || 0 != (ColorTranslation->flXlate & XO_TRIVIAL)) { DIB_BltToVGA(DestRect->left, DestRect->top, dx, dy, - Source->pvScan0 + SourcePoint->y * Source->lDelta + (SourcePoint->x >> 1), + (PVOID)((ULONG_PTR)Source->pvScan0 + SourcePoint->y * Source->lDelta + (SourcePoint->x >> 1)), Source->lDelta, SourcePoint->x % 2); } else { /* Perform color translation */ DIB_BltToVGAWithXlate(DestRect->left, DestRect->top, dx, dy, - Source->pvScan0 + SourcePoint->y * Source->lDelta + (SourcePoint->x >> 1), + (PVOID)((ULONG_PTR)Source->pvScan0 + SourcePoint->y * Source->lDelta + (SourcePoint->x >> 1)), Source->lDelta, ColorTranslation); } return FALSE; diff --git a/reactos/drivers/video/displays/vga/vgavideo/vgavideo.c b/reactos/drivers/video/displays/vga/vgavideo/vgavideo.c index 98dca55a659..eadf207dd92 100644 --- a/reactos/drivers/video/displays/vga/vgavideo/vgavideo.c +++ b/reactos/drivers/video/displays/vga/vgavideo/vgavideo.c @@ -409,7 +409,7 @@ void DIB_BltFromVGA(int x, int y, int w, int h, void *b, int Dest_lDelta) /* Reset the destination. */ for (j = 0; j < h; j++) { - memset(b + (j * Dest_lDelta), 0, abs(Dest_lDelta)); + memset((PVOID)((ULONG_PTR)b + (j * Dest_lDelta)), 0, abs(Dest_lDelta)); } for (plane = 0; plane < 4; plane++) @@ -986,7 +986,7 @@ void DFB_BltToDIB(int x, int y, int w, int h, void *b, int bw, void *bdib, int d int i, j, dib_shift; bpX = b; - dib = bdib + y * dibw + (x / 2); + dib = (unsigned char *)bdib + y * dibw + (x / 2); for (i=w; i>0; i--) { @@ -1015,7 +1015,7 @@ void DIB_BltToDFB(int x, int y, int w, int h, void *b, int bw, void *bdib, int d int i, j, dib_shift, dib_and; bpX = b; - dib = bdib + y * dibw + (x / 2); + dib = (unsigned char *)bdib + y * dibw + (x / 2); for (i=w; i>0; i--) { diff --git a/reactos/drivers/video/videoprt/videoprt.c b/reactos/drivers/video/videoprt/videoprt.c index e82d4ca77e4..b9d0f59a997 100644 --- a/reactos/drivers/video/videoprt/videoprt.c +++ b/reactos/drivers/video/videoprt/videoprt.c @@ -57,7 +57,7 @@ IntVideoPortImageDirectoryEntryToData( if (Va == 0) return NULL; - return (PVOID)(BaseAddress + Va); + return (PVOID)((ULONG_PTR)BaseAddress + Va); } PVOID STDCALL @@ -103,7 +103,7 @@ IntVideoPortGetProcAddress( ((ULONG_PTR)BaseAddress + (ULONG_PTR)ExportDir->AddressOfNames); for (i = 0; i < ExportDir->NumberOfNames; i++, NamePtr++, OrdinalPtr++) { - if (!_strnicmp((PCHAR)FunctionName, (PCHAR)(BaseAddress + *NamePtr), + if (!_strnicmp((PCHAR)FunctionName, (PCHAR)((ULONG_PTR)BaseAddress + *NamePtr), strlen((PCHAR)FunctionName))) { return (PVOID)((ULONG_PTR)BaseAddress + diff --git a/reactos/include/reactos/helper.h b/reactos/include/reactos/helper.h index 4bde71d9cb9..6266959f4b5 100644 --- a/reactos/include/reactos/helper.h +++ b/reactos/include/reactos/helper.h @@ -25,7 +25,7 @@ sizeof (IMAGE_NT_SIGNATURE) + \ sizeof (IMAGE_FILE_HEADER))) #define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24)) -#define RVA(m, b) ((ULONG)b + m) +#define RVA(m, b) ((PVOID)((ULONG_PTR)(b) + (ULONG_PTR)(m))) #define NTSTAT_SEVERITY_SHIFT 30 #define NTSTAT_SEVERITY_MASK 0x00000003 #define NTSTAT_FACILITY_SHIFT 16 diff --git a/reactos/lib/crt/search/lsearch.c b/reactos/lib/crt/search/lsearch.c index 37df9ffb003..07ca9b80740 100644 --- a/reactos/lib/crt/search/lsearch.c +++ b/reactos/lib/crt/search/lsearch.c @@ -13,11 +13,8 @@ void *_lsearch(const void *key, void *base, size_t *nelp, size_t width, if (ret_find != NULL) return ret_find; -#ifdef __GNUC__ - memcpy(base + (*nelp*width), key, width); -#else - memcpy((int*)base + (*nelp*width), key, width); -#endif + memcpy((void*)((int*)base + (*nelp*width)), key, width); + (*nelp)++; return base; } diff --git a/reactos/lib/kernel32/file/find.c b/reactos/lib/kernel32/file/find.c index b1d7b2bfb98..442d950cfe3 100644 --- a/reactos/lib/kernel32/file/find.c +++ b/reactos/lib/kernel32/file/find.c @@ -54,11 +54,11 @@ InternalFindNextFile ( if (IData->pFileInfo->NextEntryOffset != 0) { - IData->pFileInfo = (PVOID)IData->pFileInfo + IData->pFileInfo->NextEntryOffset; + IData->pFileInfo = (PVOID)((ULONG_PTR)IData->pFileInfo + IData->pFileInfo->NextEntryOffset); DPRINT("Found %.*S\n",IData->pFileInfo->FileNameLength/sizeof(WCHAR), IData->pFileInfo->FileName); return TRUE; } - IData->pFileInfo = (PVOID)IData + sizeof(KERNEL32_FIND_FILE_DATA); + IData->pFileInfo = (PVOID)((ULONG_PTR)IData + sizeof(KERNEL32_FIND_FILE_DATA)); IData->pFileInfo->FileIndex = 0; Status = NtQueryDirectoryFile (IData->DirectoryHandle, NULL, @@ -271,7 +271,7 @@ InternalFindFirstFile ( SetLastErrorByStatus (Status); return(NULL); } - IData->pFileInfo = (PVOID)IData + sizeof(KERNEL32_FIND_FILE_DATA); + IData->pFileInfo = (PVOID)((ULONG_PTR)IData + sizeof(KERNEL32_FIND_FILE_DATA)); IData->pFileInfo->FileIndex = 0; Status = NtQueryDirectoryFile (IData->DirectoryHandle, diff --git a/reactos/lib/kernel32/mem/global.c b/reactos/lib/kernel32/mem/global.c index 469ba35d50a..418c7dc2382 100644 --- a/reactos/lib/kernel32/mem/global.c +++ b/reactos/lib/kernel32/mem/global.c @@ -39,7 +39,7 @@ typedef struct __GLOBAL_LOCAL_HANDLE #define HANDLE_TO_INTERN(h) ((PGLOBAL_HANDLE)(((char *)(h))-4)) #define INTERN_TO_HANDLE(i) ((HGLOBAL) &((i)->Pointer)) -#define POINTER_TO_HANDLE(p) (*(PHANDLE)(p - HANDLE_SIZE)) +#define POINTER_TO_HANDLE(p) (*(PHANDLE)((ULONG_PTR)p - HANDLE_SIZE)) #define ISHANDLE(h) ((((ULONG)(h)) & 0x4)!=0) #define ISPOINTER(h) ((((ULONG)(h)) & 0x4)==0) @@ -105,7 +105,7 @@ GlobalAlloc(UINT uFlags, if (palloc) { *(PHANDLE)palloc = INTERN_TO_HANDLE(phandle); - phandle->Pointer = palloc + HANDLE_SIZE; + phandle->Pointer = (PVOID)((ULONG_PTR)palloc + HANDLE_SIZE); } else /*failed to allocate the memory block*/ { @@ -237,7 +237,7 @@ GlobalFree(HGLOBAL hMem) } if(phandle->Pointer) - RtlFreeHeap(GetProcessHeap(), 0, phandle->Pointer - HANDLE_SIZE); + RtlFreeHeap(GetProcessHeap(), 0, (PVOID)((ULONG_PTR)phandle->Pointer - HANDLE_SIZE)); RtlFreeHeap(GetProcessHeap(), 0, phandle); } @@ -549,7 +549,7 @@ GlobalReAlloc(HGLOBAL hMem, if(phandle->Pointer) { palloc = RtlReAllocateHeap(GetProcessHeap(), heap_flags, - phandle->Pointer - HANDLE_SIZE, + (PVOID)((ULONG_PTR)phandle->Pointer - HANDLE_SIZE), dwBytes + HANDLE_SIZE); if (0 == palloc) { @@ -558,7 +558,7 @@ GlobalReAlloc(HGLOBAL hMem, else { *(PHANDLE)palloc = hMem; - phandle->Pointer = palloc + HANDLE_SIZE; + phandle->Pointer = (PVOID)((ULONG_PTR)palloc + HANDLE_SIZE); } } else @@ -571,7 +571,7 @@ GlobalReAlloc(HGLOBAL hMem, else { *(PHANDLE)palloc = hMem; - phandle->Pointer = palloc + HANDLE_SIZE; + phandle->Pointer = (PVOID)((ULONG_PTR)palloc + HANDLE_SIZE); } } } @@ -579,7 +579,7 @@ GlobalReAlloc(HGLOBAL hMem, { if(phandle->Pointer) { - RtlFreeHeap(GetProcessHeap(), 0, phandle->Pointer - HANDLE_SIZE); + RtlFreeHeap(GetProcessHeap(), 0, (PVOID)((ULONG_PTR)phandle->Pointer - HANDLE_SIZE)); phandle->Pointer = 0; } } @@ -613,7 +613,7 @@ GlobalSize(HGLOBAL hMem) { if (0 != phandle->Pointer)/*NOT DISCARDED*/ { - retval = RtlSizeHeap(GetProcessHeap(), 0, phandle->Pointer - HANDLE_SIZE); + retval = RtlSizeHeap(GetProcessHeap(), 0, (PVOID)((ULONG_PTR)phandle->Pointer - HANDLE_SIZE)); if (retval == (SIZE_T)-1) /*RtlSizeHeap failed*/ { diff --git a/reactos/lib/kernel32/process/create.c b/reactos/lib/kernel32/process/create.c index b7e638eacb4..ddd1744c575 100644 --- a/reactos/lib/kernel32/process/create.c +++ b/reactos/lib/kernel32/process/create.c @@ -505,7 +505,7 @@ static NTSTATUS KlInitPeb(HANDLE ProcessHandle, while(*ptr++); } ptr++; - EnvSize = (PVOID)ptr - ParentEnv; + EnvSize = (ULONG)((ULONG_PTR)ptr - (ULONG_PTR)ParentEnv); } else if (NtCurrentPeb()->ProcessParameters->Environment != NULL) { @@ -572,7 +572,7 @@ static NTSTATUS KlInitPeb(HANDLE ProcessHandle, /* write pointer to environment */ Offset = FIELD_OFFSET(RTL_USER_PROCESS_PARAMETERS, Environment); NtWriteVirtualMemory(ProcessHandle, - (PVOID)(PpbBase + Offset), + (PVOID)((ULONG_PTR)PpbBase + Offset), &EnvPtr, sizeof(EnvPtr), &BytesWritten); diff --git a/reactos/lib/ntdll/csr/lpc.c b/reactos/lib/ntdll/csr/lpc.c index 1885445e923..d4d98f65405 100644 --- a/reactos/lib/ntdll/csr/lpc.c +++ b/reactos/lib/ntdll/csr/lpc.c @@ -48,7 +48,7 @@ CsrCaptureParameterBuffer(PVOID ParameterBuffer, memcpy(Block, ParameterBuffer, ParameterBufferSize); } *ClientAddress = Block; - *ServerAddress = Block - CsrSectionMapBase + CsrSectionMapServerBase; + *ServerAddress = (PVOID)((ULONG_PTR)Block - (ULONG_PTR)CsrSectionMapBase + (ULONG_PTR)CsrSectionMapServerBase); return(STATUS_SUCCESS); } diff --git a/reactos/lib/ntdll/ldr/startup.c b/reactos/lib/ntdll/ldr/startup.c index dbdbeac9475..a953e331532 100644 --- a/reactos/lib/ntdll/ldr/startup.c +++ b/reactos/lib/ntdll/ldr/startup.c @@ -266,7 +266,7 @@ __true_LdrInitializeThunk (ULONG Unknown1, &NlsTable); RtlResetRtlTranslations (&NlsTable); - NTHeaders = (PIMAGE_NT_HEADERS)(ImageBase + PEDosHeader->e_lfanew); + NTHeaders = (PIMAGE_NT_HEADERS)((ULONG_PTR)ImageBase + PEDosHeader->e_lfanew); /* Get number of processors */ Status = ZwQuerySystemInformation(SystemBasicInformation, diff --git a/reactos/lib/ntdll/ldr/utils.c b/reactos/lib/ntdll/ldr/utils.c index 0ec43b1ae1c..54cf36c935e 100644 --- a/reactos/lib/ntdll/ldr/utils.c +++ b/reactos/lib/ntdll/ldr/utils.c @@ -162,7 +162,7 @@ static inline VOID LdrpTlsCallback(PLDR_DATA_TABLE_ENTRY Module, ULONG dwReason) TRACE_LDR("%wZ - Calling tls callback at %x\n", &Module->BaseDllName, TlsCallback); TlsCallback(Module->DllBase, dwReason, NULL); - TlsCallback++; + TlsCallback = (PIMAGE_TLS_CALLBACK)((ULONG_PTR)TlsCallback + sizeof(PVOID)); } } } @@ -205,7 +205,7 @@ LdrpInitializeTlsForThread(VOID) return STATUS_NO_MEMORY; } - TlsData = (PVOID)TlsPointers + LdrpTlsCount * sizeof(PVOID); + TlsData = (PVOID)((ULONG_PTR)TlsPointers + LdrpTlsCount * sizeof(PVOID)); Teb->ThreadLocalStoragePointer = TlsPointers; TlsInfo = LdrpTlsArray; @@ -216,12 +216,12 @@ LdrpInitializeTlsForThread(VOID) if (TlsInfo->TlsDataSize) { memcpy(TlsData, TlsInfo->StartAddressOfRawData, TlsInfo->TlsDataSize); - TlsData += TlsInfo->TlsDataSize; + TlsData = (PVOID)((ULONG_PTR)TlsData + TlsInfo->TlsDataSize); } if (TlsInfo->TlsZeroSize) { memset(TlsData, 0, TlsInfo->TlsZeroSize); - TlsData += TlsInfo->TlsZeroSize; + TlsData = (PVOID)((ULONG_PTR)TlsData + TlsInfo->TlsZeroSize); } } } @@ -471,7 +471,7 @@ LdrAddModuleEntry(PVOID ImageBase, Module->DllBase = (PVOID)ImageBase; Module->EntryPoint = (PVOID)NTHeaders->OptionalHeader.AddressOfEntryPoint; if (Module->EntryPoint != 0) - Module->EntryPoint += (ULONG)Module->DllBase; + Module->EntryPoint = (PVOID)((ULONG_PTR)Module->EntryPoint + (ULONG_PTR)Module->DllBase); Module->SizeOfImage = LdrpGetResidentSize(NTHeaders); if (NtCurrentPeb()->Ldr->Initialized == TRUE) { @@ -803,7 +803,7 @@ LdrFindEntryForAddress(PVOID Address, DPRINT("Scanning %wZ at %p\n", &ModulePtr->BaseDllName, ModulePtr->DllBase); if ((Address >= ModulePtr->DllBase) && - (Address <= (ModulePtr->DllBase + ModulePtr->SizeOfImage))) + ((ULONG_PTR)Address <= ((ULONG_PTR)ModulePtr->DllBase + ModulePtr->SizeOfImage))) { *Module = ModulePtr; RtlLeaveCriticalSection(NtCurrentPeb()->LoaderLock); @@ -1030,7 +1030,7 @@ LdrGetExportByOrdinal ( ExportDir->AddressOfFunctions ); DPRINT( - "LdrGetExportByOrdinal(Ordinal %d) = %x\n", + "LdrGetExportByOrdinal(Ordinal %d) = %p\n", Ordinal, RVA(BaseAddress, ExFunctions[Ordinal - ExportDir->Base] ) ); @@ -1270,7 +1270,7 @@ LdrPerformRelocations(PIMAGE_NT_HEADERS NTHeaders, { Count = (RelocationDir->SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION)) / sizeof(USHORT); - Page = ImageBase + RelocationDir->VirtualAddress; + Page = (PVOID)((ULONG_PTR)ImageBase + (ULONG_PTR)RelocationDir->VirtualAddress); TypeOffset = (PUSHORT)(RelocationDir + 1); /* Unprotect the page(s) we're about to relocate. */ @@ -1289,7 +1289,7 @@ LdrPerformRelocations(PIMAGE_NT_HEADERS NTHeaders, if (RelocationDir->VirtualAddress + PAGE_SIZE < NTHeaders->OptionalHeader.SizeOfImage) { - ProtectPage2 = ProtectPage + PAGE_SIZE; + ProtectPage2 = (PVOID)((ULONG_PTR)ProtectPage + PAGE_SIZE); Status = NtProtectVirtualMemory(NtCurrentProcess(), &ProtectPage2, &ProtectSize, @@ -1391,16 +1391,16 @@ LdrpProcessImportDirectoryEntry(PLDR_DATA_TABLE_ENTRY Module, } /* Get the import address list. */ - ImportAddressList = (PVOID *)(Module->DllBase + (ULONG_PTR)ImportModuleDirectory->FirstThunk); + ImportAddressList = (PVOID *)((ULONG_PTR)Module->DllBase + (ULONG_PTR)ImportModuleDirectory->FirstThunk); /* Get the list of functions to import. */ if (ImportModuleDirectory->OriginalFirstThunk != 0) { - FunctionNameList = (PULONG) (Module->DllBase + (ULONG_PTR)ImportModuleDirectory->OriginalFirstThunk); + FunctionNameList = (PULONG) ((ULONG_PTR)Module->DllBase + (ULONG_PTR)ImportModuleDirectory->OriginalFirstThunk); } else { - FunctionNameList = (PULONG)(Module->DllBase + (ULONG_PTR)ImportModuleDirectory->FirstThunk); + FunctionNameList = (PULONG)((ULONG_PTR)Module->DllBase + (ULONG_PTR)ImportModuleDirectory->FirstThunk); } /* Get the size of IAT. */ @@ -1550,16 +1550,16 @@ LdrpAdjustImportDirectory(PLDR_DATA_TABLE_ENTRY Module, { /* Get the import address list. */ - ImportAddressList = (PVOID *)(Module->DllBase + (ULONG_PTR)ImportModuleDirectory->FirstThunk); + ImportAddressList = (PVOID *)((ULONG_PTR)Module->DllBase + (ULONG_PTR)ImportModuleDirectory->FirstThunk); /* Get the list of functions to import. */ if (ImportModuleDirectory->OriginalFirstThunk != 0) { - FunctionNameList = (PULONG) (Module->DllBase + (ULONG_PTR)ImportModuleDirectory->OriginalFirstThunk); + FunctionNameList = (PULONG) ((ULONG_PTR)Module->DllBase + (ULONG_PTR)ImportModuleDirectory->OriginalFirstThunk); } else { - FunctionNameList = (PULONG)(Module->DllBase + (ULONG_PTR)ImportModuleDirectory->FirstThunk); + FunctionNameList = (PULONG)((ULONG_PTR)Module->DllBase + (ULONG_PTR)ImportModuleDirectory->FirstThunk); } /* Get the size of IAT. */ @@ -1585,15 +1585,15 @@ LdrpAdjustImportDirectory(PLDR_DATA_TABLE_ENTRY Module, NTHeaders = RtlImageNtHeader (ImportedModule->DllBase); Start = (PVOID)NTHeaders->OptionalHeader.ImageBase; - End = Start + ImportedModule->SizeOfImage; - Offset = ImportedModule->DllBase - Start; + End = (PVOID)((ULONG_PTR)Start + ImportedModule->SizeOfImage); + Offset = (ULONG)((ULONG_PTR)ImportedModule->DllBase - (ULONG_PTR)Start); /* Walk through function list and fixup addresses. */ while (*FunctionNameList != 0L) { if (*ImportAddressList >= Start && *ImportAddressList < End) { - (*ImportAddressList) += Offset; + (*ImportAddressList) = (PVOID)((ULONG_PTR)(*ImportAddressList) + Offset); } ImportAddressList++; FunctionNameList++; @@ -1903,7 +1903,7 @@ PEPFUNC LdrPEStartup (PVOID ImageBase, * to the DLL's image. */ DosHeader = (PIMAGE_DOS_HEADER) ImageBase; - NTHeaders = (PIMAGE_NT_HEADERS) (ImageBase + DosHeader->e_lfanew); + NTHeaders = (PIMAGE_NT_HEADERS) ((ULONG_PTR)ImageBase + DosHeader->e_lfanew); /* * If the base address is different from the @@ -1978,7 +1978,7 @@ PEPFUNC LdrPEStartup (PVOID ImageBase, DPRINT("AddressOfEntryPoint = %x\n",(ULONG)NTHeaders->OptionalHeader.AddressOfEntryPoint); if (NTHeaders->OptionalHeader.AddressOfEntryPoint != 0) { - EntryPoint = (PEPFUNC) (ImageBase + EntryPoint = (PEPFUNC) ((ULONG_PTR)ImageBase + NTHeaders->OptionalHeader.AddressOfEntryPoint); } DPRINT("LdrPEStartup() = %x\n",EntryPoint); @@ -3108,17 +3108,17 @@ LdrProcessRelocationBlock(IN PVOID Address, break; case IMAGE_REL_BASED_HIGH: - ShortPtr = (PUSHORT)(Address + Offset); + ShortPtr = (PUSHORT)((ULONG_PTR)Address + Offset); *ShortPtr += HIWORD(Delta); break; case IMAGE_REL_BASED_LOW: - ShortPtr = (PUSHORT)(Address + Offset); + ShortPtr = (PUSHORT)((ULONG_PTR)Address + Offset); *ShortPtr += LOWORD(Delta); break; case IMAGE_REL_BASED_HIGHLOW: - LongPtr = (PULONG)(Address + Offset); + LongPtr = (PULONG)((ULONG_PTR)Address + Offset); *LongPtr += Delta; break; diff --git a/reactos/lib/rosrtl/thread/i386/context.c b/reactos/lib/rosrtl/thread/i386/context.c index 2688516ce93..f8eefdd4f58 100644 --- a/reactos/lib/rosrtl/thread/i386/context.c +++ b/reactos/lib/rosrtl/thread/i386/context.c @@ -44,7 +44,7 @@ RtlRosInitializeContext if(!NT_SUCCESS(nErrCode)) return nErrCode; /* too many parameters */ - if((nParamsSize + sizeof(ULONG_PTR)) > (SIZE_T)(pStackBase - pStackLimit)) + if((nParamsSize + sizeof(ULONG_PTR)) > (SIZE_T)((ULONG_PTR)pStackBase - (ULONG_PTR)pStackLimit)) return STATUS_STACK_OVERFLOW; memset(Context, 0, sizeof(CONTEXT)); diff --git a/reactos/lib/rtl/image.c b/reactos/lib/rtl/image.c index 6d778c35b96..df60edde756 100644 --- a/reactos/lib/rtl/image.c +++ b/reactos/lib/rtl/image.c @@ -72,7 +72,7 @@ RtlImageDirectoryEntryToData ( *Size = NtHeader->OptionalHeader.DataDirectory[Directory].Size; if (bFlag) - return (PVOID)(BaseAddress + Va); + return (PVOID)((ULONG_PTR)BaseAddress + Va); /* image mapped as ordinary file, we must find raw pointer */ return (PVOID)RtlImageRvaToVa (NtHeader, BaseAddress, Va, NULL); @@ -138,10 +138,10 @@ RtlImageRvaToVa ( *SectionHeader = Section; } - return (ULONG)(BaseAddress + + return (ULONG)((ULONG_PTR)BaseAddress + Rva + Section->PointerToRawData - - Section->VirtualAddress); + (ULONG_PTR)Section->VirtualAddress); } /* EOF */ diff --git a/reactos/lib/rtl/process.c b/reactos/lib/rtl/process.c index 648530fa955..c545a512ccd 100644 --- a/reactos/lib/rtl/process.c +++ b/reactos/lib/rtl/process.c @@ -161,7 +161,7 @@ static NTSTATUS KlInitPeb (HANDLE ProcessHandle, /* write pointer to environment */ Offset = FIELD_OFFSET(RTL_USER_PROCESS_PARAMETERS, Environment); ZwWriteVirtualMemory(ProcessHandle, - (PVOID)(PpbBase + Offset), + (PVOID)((ULONG_PTR)PpbBase + Offset), &EnvPtr, sizeof(EnvPtr), &BytesWritten); @@ -291,7 +291,7 @@ RtlCreateUserProcess( 0, &Sii.StackReserve, &Sii.StackCommit, - ImageBaseAddress + (ULONG)Sii.EntryPoint, + (PVOID)((ULONG_PTR)ImageBaseAddress + (ULONG_PTR)Sii.EntryPoint), (PVOID)PEB_BASE, &ProcessInfo->ThreadHandle, &ProcessInfo->ClientId diff --git a/reactos/lib/rtl/registry.c b/reactos/lib/rtl/registry.c index 303ef4befca..3a504f99aee 100644 --- a/reactos/lib/rtl/registry.c +++ b/reactos/lib/rtl/registry.c @@ -787,7 +787,7 @@ RtlQueryRegistryValues(IN ULONG RelativeTo, !(QueryEntry->Flags & RTL_QUERY_REGISTRY_NOEXPAND)) { DPRINT("Expand REG_MULTI_SZ type\n"); - StringPtr = (PWSTR)((PVOID)FullValueInfo + FullValueInfo->DataOffset); + StringPtr = (PWSTR)((ULONG_PTR)FullValueInfo + FullValueInfo->DataOffset); while (*StringPtr != 0) { StringLen = (wcslen(StringPtr) + 1) * sizeof(WCHAR); @@ -807,7 +807,7 @@ RtlQueryRegistryValues(IN ULONG RelativeTo, { DPRINT("Expand REG_EXPAND_SZ type\n"); - StringPtr = (PWSTR)((PVOID)FullValueInfo + FullValueInfo->DataOffset); + StringPtr = (PWSTR)((ULONG_PTR)FullValueInfo + FullValueInfo->DataOffset); ExpandBuffer = ExAllocatePool(PagedPool, FullValueInfo->DataLength * 2); if (ExpandBuffer == NULL) { @@ -841,7 +841,7 @@ RtlQueryRegistryValues(IN ULONG RelativeTo, { Status = QueryEntry->QueryRoutine(ValueName, FullValueInfo->Type, - (PVOID)FullValueInfo + FullValueInfo->DataOffset, + (PVOID)((ULONG_PTR)FullValueInfo + FullValueInfo->DataOffset), FullValueInfo->DataLength, Context, QueryEntry->EntryContext); diff --git a/reactos/lib/user32/windows/bitmap.c b/reactos/lib/user32/windows/bitmap.c index 54326a4a370..6be2803506d 100644 --- a/reactos/lib/user32/windows/bitmap.c +++ b/reactos/lib/user32/windows/bitmap.c @@ -534,7 +534,7 @@ LoadBitmapImage(HINSTANCE hInstance, LPCWSTR lpszName, UINT fuLoad) } HeaderSize = sizeof(BITMAPINFOHEADER) + ColorCount * sizeof(RGBQUAD); } - Data = (PVOID)BitmapInfo + HeaderSize; + Data = (PVOID)((ULONG_PTR)BitmapInfo + HeaderSize); PrivateInfo = RtlAllocateHeap(GetProcessHeap(), 0, HeaderSize); if (PrivateInfo == NULL)