/*++\r
\r
-Copyright (c) 2005 - 2007, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
+Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
http://opensource.org/licenses/bsd-license.php \r
IN OUT VOID *Buffer\r
);\r
\r
-EFI_STATUS\r
-EFIAPI\r
-PcatRootBridgeIoIoRead (\r
- IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This,\r
- IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width,\r
- IN UINT64 UserAddress,\r
- IN UINTN Count,\r
- IN OUT VOID *UserBuffer\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcatRootBridgeIoIoWrite (\r
- IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This,\r
- IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width,\r
- IN UINT64 UserAddress,\r
- IN UINTN Count,\r
- IN OUT VOID *UserBuffer\r
- );\r
-\r
EFI_STATUS\r
EFIAPI\r
PcatRootBridgeIoCopyMem (\r
\r
EFI_STATUS\r
PcatRootBridgeIoConstructor (\r
- IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *Protocol,\r
+ IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *Protocol,\r
IN UINTN SegmentNumber\r
)\r
/*++\r
}\r
\r
\r
- if (Width < 0 || Width > EfiPciWidthUint64) {\r
+ if ((UINT32)Width > EfiPciWidthUint64) {\r
return EFI_INVALID_PARAMETER;\r
}\r
//\r
return EFI_SUCCESS;\r
}\r
\r
- if ( Delay != 0 ) {\r
+ if (Delay == 0) {\r
+ return EFI_SUCCESS;\r
+ } else {\r
\r
NumberOfTicks = DivU64x32Remainder (Delay, 100, &Remainder);\r
if ( Remainder !=0 ) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if (Width < 0 || Width > EfiPciWidthUint64) {\r
+ if ((UINT32)Width > EfiPciWidthUint64) {\r
return EFI_INVALID_PARAMETER;\r
}\r
//\r
return EFI_SUCCESS;\r
}\r
\r
- if (Delay != 0) {\r
+ if (Delay == 0) {\r
+ return EFI_SUCCESS;\r
+ } else {\r
\r
NumberOfTicks = DivU64x32Remainder (Delay, 100, &Remainder);\r
if ( Remainder !=0 ) {\r
\r
In.buf = Buffer;\r
Out.buf = (VOID *)(UINTN) Address;\r
- if (Width >= EfiPciWidthUint8 && Width <= EfiPciWidthUint64) {\r
+ if ((UINT32)Width <= EfiPciWidthUint64) {\r
return PcatRootBridgeIoMemRW (Width, Count, TRUE, In, TRUE, Out);\r
}\r
if (Width >= EfiPciWidthFifoUint8 && Width <= EfiPciWidthFifoUint64) {\r
\r
In.buf = (VOID *)(UINTN) Address;\r
Out.buf = Buffer;\r
- if (Width >= EfiPciWidthUint8 && Width <= EfiPciWidthUint64) {\r
+ if ((UINT32)Width <= EfiPciWidthUint64) {\r
return PcatRootBridgeIoMemRW (Width, Count, TRUE, In, TRUE, Out);\r
}\r
if (Width >= EfiPciWidthFifoUint8 && Width <= EfiPciWidthFifoUint64) {\r
UINTN Index;\r
UINT64 Result;\r
\r
- if (Width < 0 || Width > EfiPciWidthUint64) {\r
+ if ((UINT32)Width > EfiPciWidthUint64) {\r
return EFI_INVALID_PARAMETER;\r
} \r
\r
//\r
// Make sure that Operation is valid\r
//\r
- if (Operation < 0 || Operation >= EfiPciOperationMaximum) {\r
+ if ((UINT32)Operation >= EfiPciOperationMaximum) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
// map the DMA transfer to a buffer below 4GB.\r
//\r
PhysicalAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)HostAddress;\r
- if ((PhysicalAddress + *NumberOfBytes) > 0x100000000) {\r
+ if ((PhysicalAddress + *NumberOfBytes) > 0x100000000ULL) {\r
\r
//\r
// Common Buffer operations can not be remapped. If the common buffer\r
Status = gBS->AllocatePool (\r
EfiBootServicesData, \r
sizeof(MAP_INFO), \r
- &MapInfo\r
+ (VOID **)&MapInfo\r
);\r
if (EFI_ERROR (Status)) {\r
*NumberOfBytes = 0;\r
}\r
\r
\r
- Status =gBS->AllocatePool (\r
+ Status =gBS->AllocatePool (\r
EfiBootServicesData, \r
sizeof(MAP_INFO_INSTANCE), \r
- &MapInstance\r
+ (VOID **)&MapInstance\r
); \r
if (EFI_ERROR(Status)) {\r
gBS->FreePages (MapInfo->MappedHostAddress,MapInfo->NumberOfPages);\r
PrivateData = DRIVER_INSTANCE_FROM_PCI_ROOT_BRIDGE_IO_THIS(This);\r
InsertTailList(&PrivateData->MapInfo,&MapInstance->Link);\r
\r
- //\r
+ //\r
// The DeviceAddress is the address of the maped buffer below 4GB\r
//\r
*DeviceAddress = MapInfo->MappedHostAddress;\r
//\r
MapInfo = (MAP_INFO *)Mapping;\r
\r
- for (Link = PrivateData->MapInfo.ForwardLink; Link != &PrivateData->MapInfo; Link = Link->ForwardLink) {\r
- if (((MAP_INFO_INSTANCE*)Link)->Map == MapInfo)\r
- break;\r
+ for (Link = PrivateData->MapInfo.ForwardLink; Link != &PrivateData->MapInfo; Link = Link->ForwardLink) {\r
+ if (((MAP_INFO_INSTANCE*)Link)->Map == MapInfo)\r
+ break;\r
}\r
\r
if (Link == &PrivateData->MapInfo) {\r
- return EFI_INVALID_PARAMETER;\r
- }\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
\r
RemoveEntryList(Link);\r
((MAP_INFO_INSTANCE*)Link)->Map = NULL;\r
{\r
\r
if( HostAddress == NULL ){\r
- return EFI_INVALID_PARAMETER;\r
+ return EFI_INVALID_PARAMETER;\r
} \r
return gBS->FreePages ((EFI_PHYSICAL_ADDRESS)(UINTN)HostAddress, Pages);\r
}\r
UINTN OutStride;\r
\r
\r
- Width = Width & 0x03;\r
+ Width = (EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH) (Width & 0x03);\r
Stride = (UINTN)1 << Width;\r
InStride = InStrideFlag ? Stride : 0;\r
OutStride = OutStrideFlag ? Stride : 0;\r