OvmfPkg/XenPvBlkDxe: fix VS2010 build failures
authorScott Duplichan <scott@notabs.org>
Fri, 14 Nov 2014 17:35:42 +0000 (17:35 +0000)
committerlersek <lersek@Edk2>
Fri, 14 Nov 2014 17:35:42 +0000 (17:35 +0000)
This patch contain type casts and replace one * operation by a
MultU64x32() call.

Contributed-under: TianoCore Contribution Agreement 1.0

Signed-off-by: Scott Duplichan <scott@notabs.org>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Build-tested-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16393 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/XenPvBlkDxe/BlockFront.c
OvmfPkg/XenPvBlkDxe/BlockIo.c

index c43e7af..afaa959 100644 (file)
@@ -192,7 +192,7 @@ XenPvBlockFrontInitialization (
             Status));\r
     goto Error;\r
   }\r
-  Dev->DomainId = Value;\r
+  Dev->DomainId = (domid_t)Value;\r
   XenBusIo->EventChannelAllocate (XenBusIo, Dev->DomainId, &Dev->EventChannel);\r
 \r
   SharedRing = (blkif_sring_t*) AllocatePages (1);\r
@@ -258,7 +258,7 @@ Again:
   if (Status != XENSTORE_STATUS_SUCCESS || Value > MAX_UINT32) {\r
     goto Error2;\r
   }\r
-  Dev->MediaInfo.VDiskInfo = Value;\r
+  Dev->MediaInfo.VDiskInfo = (UINT32)Value;\r
   if (Dev->MediaInfo.VDiskInfo & VDISK_READONLY) {\r
     Dev->MediaInfo.ReadWrite = FALSE;\r
   } else {\r
@@ -274,7 +274,7 @@ Again:
   if (Status != XENSTORE_STATUS_SUCCESS || Value > MAX_UINT32) {\r
     goto Error2;\r
   }\r
-  if (Value % 512 != 0) {\r
+  if ((UINT32)Value % 512 != 0) {\r
     //\r
     // This is not supported by the driver.\r
     //\r
@@ -282,7 +282,7 @@ Again:
             "it must be a multiple of 512\n", Value));\r
     goto Error2;\r
   }\r
-  Dev->MediaInfo.SectorSize = Value;\r
+  Dev->MediaInfo.SectorSize = (UINT32)Value;\r
 \r
   // Default value\r
   Value = 0;\r
@@ -439,7 +439,7 @@ XenPvBlockAsyncIo (
 \r
   Start = (UINTN) IoData->Buffer & ~EFI_PAGE_MASK;\r
   End = ((UINTN) IoData->Buffer + IoData->Size + EFI_PAGE_SIZE - 1) & ~EFI_PAGE_MASK;\r
-  IoData->NumRef = NumSegments = (End - Start) / EFI_PAGE_SIZE;\r
+  IoData->NumRef = NumSegments = (INT32)((End - Start) / EFI_PAGE_SIZE);\r
 \r
   ASSERT (NumSegments <= BLKIF_MAX_SEGMENTS_PER_REQUEST);\r
 \r
@@ -448,7 +448,7 @@ XenPvBlockAsyncIo (
   Request = RING_GET_REQUEST (&Dev->Ring, RingIndex);\r
 \r
   Request->operation = IsWrite ? BLKIF_OP_WRITE : BLKIF_OP_READ;\r
-  Request->nr_segments = NumSegments;\r
+  Request->nr_segments = (UINT8)NumSegments;\r
   Request->handle = Dev->DeviceId;\r
   Request->id = (UINTN) IoData;\r
   Request->sector_number = IoData->Sector;\r
@@ -457,9 +457,9 @@ XenPvBlockAsyncIo (
     Request->seg[Index].first_sect = 0;\r
     Request->seg[Index].last_sect = EFI_PAGE_SIZE / 512 - 1;\r
   }\r
-  Request->seg[0].first_sect = ((UINTN) IoData->Buffer & EFI_PAGE_MASK) / 512;\r
+  Request->seg[0].first_sect = (UINT8)(((UINTN) IoData->Buffer & EFI_PAGE_MASK) / 512);\r
   Request->seg[NumSegments - 1].last_sect =\r
-      (((UINTN) IoData->Buffer + IoData->Size - 1) & EFI_PAGE_MASK) / 512;\r
+      (UINT8)((((UINTN) IoData->Buffer + IoData->Size - 1) & EFI_PAGE_MASK) / 512);\r
   for (Index = 0; Index < NumSegments; Index++) {\r
     UINTN Data = Start + Index * EFI_PAGE_SIZE;\r
     XenBusIo->GrantAccess (XenBusIo, Dev->DomainId,\r
index 4f3bc53..7fc7a05 100644 (file)
@@ -136,7 +136,7 @@ XenPvBlkDxeBlockIoReadWriteBlocks (
   }\r
 \r
   IoData.Dev = XEN_BLOCK_FRONT_FROM_BLOCK_IO (This);\r
-  Sector = Lba * (Media->BlockSize / 512);\r
+  Sector = (UINTN)MultU64x32 (Lba, Media->BlockSize / 512);\r
 \r
   while (BufferSize > 0) {\r
     if (((UINTN)Buffer & EFI_PAGE_MASK) == 0) {\r