From: Scott Duplichan Date: Fri, 14 Nov 2014 17:35:42 +0000 (+0000) Subject: OvmfPkg/XenPvBlkDxe: fix VS2010 build failures X-Git-Tag: edk2-stable201903~10617 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=860088f298de6acb26ea007e1f72db23fc613951 OvmfPkg/XenPvBlkDxe: fix VS2010 build failures 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 Signed-off-by: Anthony PERARD Build-tested-by: Scott Duplichan Reviewed-by: Laszlo Ersek git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16393 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/OvmfPkg/XenPvBlkDxe/BlockFront.c b/OvmfPkg/XenPvBlkDxe/BlockFront.c index c43e7af9a5..afaa95983b 100644 --- a/OvmfPkg/XenPvBlkDxe/BlockFront.c +++ b/OvmfPkg/XenPvBlkDxe/BlockFront.c @@ -192,7 +192,7 @@ XenPvBlockFrontInitialization ( Status)); goto Error; } - Dev->DomainId = Value; + Dev->DomainId = (domid_t)Value; XenBusIo->EventChannelAllocate (XenBusIo, Dev->DomainId, &Dev->EventChannel); SharedRing = (blkif_sring_t*) AllocatePages (1); @@ -258,7 +258,7 @@ Again: if (Status != XENSTORE_STATUS_SUCCESS || Value > MAX_UINT32) { goto Error2; } - Dev->MediaInfo.VDiskInfo = Value; + Dev->MediaInfo.VDiskInfo = (UINT32)Value; if (Dev->MediaInfo.VDiskInfo & VDISK_READONLY) { Dev->MediaInfo.ReadWrite = FALSE; } else { @@ -274,7 +274,7 @@ Again: if (Status != XENSTORE_STATUS_SUCCESS || Value > MAX_UINT32) { goto Error2; } - if (Value % 512 != 0) { + if ((UINT32)Value % 512 != 0) { // // This is not supported by the driver. // @@ -282,7 +282,7 @@ Again: "it must be a multiple of 512\n", Value)); goto Error2; } - Dev->MediaInfo.SectorSize = Value; + Dev->MediaInfo.SectorSize = (UINT32)Value; // Default value Value = 0; @@ -439,7 +439,7 @@ XenPvBlockAsyncIo ( Start = (UINTN) IoData->Buffer & ~EFI_PAGE_MASK; End = ((UINTN) IoData->Buffer + IoData->Size + EFI_PAGE_SIZE - 1) & ~EFI_PAGE_MASK; - IoData->NumRef = NumSegments = (End - Start) / EFI_PAGE_SIZE; + IoData->NumRef = NumSegments = (INT32)((End - Start) / EFI_PAGE_SIZE); ASSERT (NumSegments <= BLKIF_MAX_SEGMENTS_PER_REQUEST); @@ -448,7 +448,7 @@ XenPvBlockAsyncIo ( Request = RING_GET_REQUEST (&Dev->Ring, RingIndex); Request->operation = IsWrite ? BLKIF_OP_WRITE : BLKIF_OP_READ; - Request->nr_segments = NumSegments; + Request->nr_segments = (UINT8)NumSegments; Request->handle = Dev->DeviceId; Request->id = (UINTN) IoData; Request->sector_number = IoData->Sector; @@ -457,9 +457,9 @@ XenPvBlockAsyncIo ( Request->seg[Index].first_sect = 0; Request->seg[Index].last_sect = EFI_PAGE_SIZE / 512 - 1; } - Request->seg[0].first_sect = ((UINTN) IoData->Buffer & EFI_PAGE_MASK) / 512; + Request->seg[0].first_sect = (UINT8)(((UINTN) IoData->Buffer & EFI_PAGE_MASK) / 512); Request->seg[NumSegments - 1].last_sect = - (((UINTN) IoData->Buffer + IoData->Size - 1) & EFI_PAGE_MASK) / 512; + (UINT8)((((UINTN) IoData->Buffer + IoData->Size - 1) & EFI_PAGE_MASK) / 512); for (Index = 0; Index < NumSegments; Index++) { UINTN Data = Start + Index * EFI_PAGE_SIZE; XenBusIo->GrantAccess (XenBusIo, Dev->DomainId, diff --git a/OvmfPkg/XenPvBlkDxe/BlockIo.c b/OvmfPkg/XenPvBlkDxe/BlockIo.c index 4f3bc53f3e..7fc7a05b4c 100644 --- a/OvmfPkg/XenPvBlkDxe/BlockIo.c +++ b/OvmfPkg/XenPvBlkDxe/BlockIo.c @@ -136,7 +136,7 @@ XenPvBlkDxeBlockIoReadWriteBlocks ( } IoData.Dev = XEN_BLOCK_FRONT_FROM_BLOCK_IO (This); - Sector = Lba * (Media->BlockSize / 512); + Sector = (UINTN)MultU64x32 (Lba, Media->BlockSize / 512); while (BufferSize > 0) { if (((UINTN)Buffer & EFI_PAGE_MASK) == 0) {