[FREELDR] Fix 64 bit issues
[reactos.git] / boot / freeldr / freeldr / lib / fs / pxe.c
index ea91710..71f7e37 100644 (file)
@@ -45,9 +45,9 @@ FindPxeStructure(VOID)
 
     /* Find the '!PXE' structure */
     Ptr = (PPXE)0xA0000;
-    while ((ULONG)Ptr > 0x10000)
+    while ((ULONG_PTR)Ptr > 0x10000)
     {
-        Ptr = (PPXE)((ULONG)Ptr - 0x10);
+        Ptr = (PPXE)((ULONG_PTR)Ptr - 0x10);
 
         /* Look for signature */
         if (memcmp(Ptr, "!PXE", 4) != 0)
@@ -224,8 +224,8 @@ static ARC_STATUS PxeRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
         return EBADF;
 
     RtlZeroMemory(&readData, sizeof(readData));
-    readData.Buffer.segment = ((UINT32)_Packet & 0xf0000) / 16;
-    readData.Buffer.offset = (UINT32)_Packet & 0xffff;
+    readData.Buffer.segment = ((ULONG_PTR)_Packet & 0xf0000) / 16;
+    readData.Buffer.offset = (ULONG_PTR)_Packet & 0xffff;
 
     // Get new packets as required
     while (N > 0)
@@ -276,8 +276,8 @@ static ARC_STATUS PxeSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMo
     }
 
     RtlZeroMemory(&readData, sizeof(readData));
-    readData.Buffer.segment = ((UINT32)_Packet & 0xf0000) / 16;
-    readData.Buffer.offset = (UINT32)_Packet & 0xffff;
+    readData.Buffer.segment = ((ULONG_PTR)_Packet & 0xf0000) / 16;
+    readData.Buffer.offset = (ULONG_PTR)_Packet & 0xffff;
 
     // Get new packets as required
     while (Position->LowPart > _CachedLength)
@@ -363,7 +363,7 @@ static BOOLEAN GetCachedInfo(VOID)
         return FALSE;
     if (Data.BufferSize < 36)
         return FALSE;
-    Packet = (UCHAR*)((UINT32)(Data.Buffer.segment << 4) + Data.Buffer.offset);
+    Packet = (UCHAR*)((ULONG_PTR)(Data.Buffer.segment << 4) + Data.Buffer.offset);
     RtlCopyMemory(&_ServerIP, Packet + 20, sizeof(IP4));
     return TRUE;
 }