-/**@file\r
+/** @file\r
The implementation for EFI_ISA_IO_PROTOCOL. \r
\r
Copyright (c) 2006 - 2009, Intel Corporation.<BR>\r
@param[in] IsaIoDevice The iso device to be initialized.\r
@param[in] IsaDeviceResourceList The resource list.\r
\r
- @retval None\r
**/\r
VOID\r
InitializeIsaIoInstance (\r
ISA_MAP_INFO *IsaMapInfo;\r
\r
//\r
- // Unset Feature Flag PcdIsaBusSupportDma to disable support for ISA DMA.\r
+ // Check if DMA is supported.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportDma)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
// Free the mapped buffer and the MAP_INFO structure.\r
//\r
gBS->FreePages (IsaMapInfo->MappedHostAddress, IsaMapInfo->NumberOfPages);\r
- gBS->FreePool (IsaMapInfo);\r
+ FreePool (IsaMapInfo);\r
}\r
\r
return EFI_SUCCESS;\r
ISA_IO_DEVICE *IsaIoDevice;\r
\r
//\r
- // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for\r
- // ISA bus memory read/write operations.\r
+ // Check if ISA memory is supported.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_ISA_MEMORY) == 0) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
ISA_IO_DEVICE *IsaIoDevice;\r
\r
//\r
- // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for\r
- // ISA bus memory read/write operations.\r
+ // Check if ISA memory is supported.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_ISA_MEMORY) == 0) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
\r
@param[in] This A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
@param[in] Width Specifies the width of the memory copy operation.\r
- @param[out] DestOffset The offset of the destination \r
+ @param[in] DestOffset The offset of the destination \r
@param[in] SrcOffset The offset of the source\r
@param[in] Count The number of memory copy operations to perform\r
\r
ISA_IO_DEVICE *IsaIoDevice;\r
\r
//\r
- // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for\r
- // ISA bus memory read/write operations.\r
+ // Check if ISA memory is supported.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_ISA_MEMORY) == 0) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
&IsaMapInfo->MappedHostAddress\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePool (IsaMapInfo);\r
+ FreePool (IsaMapInfo);\r
*NumberOfBytes = 0;\r
*Mapping = NULL;\r
return Status;\r
//\r
// This implementation only support COMPATIBLE DMA Transfers\r
//\r
- if (!(ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_COMPATIBLE)) {\r
+ if ((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_COMPATIBLE) == 0) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if (ChannelAttributes &\r
- (\r
- EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_A |\r
- EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_B |\r
- EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_C\r
- )\r
- ) {\r
+ if ((ChannelAttributes &\r
+ (EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_A |\r
+ EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_B |\r
+ EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_C)) != 0) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
// If this is Channel 0..3, then the width must be 8 bit\r
//\r
- if (!(ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_8) ||\r
- (ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_16)\r
+ if (((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_8) == 0) ||\r
+ ((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_16) != 0)\r
) {\r
return EFI_INVALID_PARAMETER;\r
}\r
//\r
// If this is Channel 4..7, then the width must be 16 bit\r
//\r
- if ((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_8) ||\r
- (!(ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_16))\r
- ) {\r
+ if (((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_8) != 0) ||\r
+ ((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_16) == 0)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
}\r
//\r
// Either Demand Mode or Single Mode must be selected, but not both\r
//\r
- if (ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SINGLE_MODE) {\r
- if (ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_DEMAND_MODE) {\r
+ if ((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SINGLE_MODE) != 0) {\r
+ if ((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_DEMAND_MODE) != 0) {\r
return EFI_INVALID_PARAMETER;\r
}\r
} else {\r
- if (!(ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_DEMAND_MODE)) {\r
+ if ((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_DEMAND_MODE) == 0) {\r
return EFI_INVALID_PARAMETER;\r
}\r
}\r
&IsaMapInfo->MappedHostAddress\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePool (IsaMapInfo);\r
+ FreePool (IsaMapInfo);\r
*NumberOfBytes = 0;\r
*Mapping = NULL;\r
return Status;\r
DmaMode |= V_8237_DMA_CHMODE_IO2MEM;\r
}\r
\r
- if (ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_AUTO_INITIALIZE) {\r
+ if ((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_AUTO_INITIALIZE) != 0) {\r
DmaMode |= B_8237_DMA_CHMODE_AE;\r
}\r
\r
- if (ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_DEMAND_MODE) {\r
+ if ((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_DEMAND_MODE) != 0) {\r
DmaMode |= V_8237_DMA_CHMODE_DEMAND;\r
}\r
\r
- if (ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SINGLE_MODE) {\r
+ if ((ChannelAttributes & EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SINGLE_MODE) != 0) {\r
DmaMode |= V_8237_DMA_CHMODE_SINGLE;\r
}\r
//\r
)\r
{\r
//\r
- // Set Feature Flag PcdIsaBusSupportDma to FALSE to disable support for ISA DMA.\r
+ // Check if DMA is supported.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportDma)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) {\r
return EFI_UNSUPPORTED;\r
}\r
//\r
//\r
// So we just return EFI_UNSUPPORTED for these functions.\r
//\r
- if (FeaturePcdGet (PcdIsaBusOnlySupportSlaveDma)) {\r
+ if ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_ONLY_SUPPORT_SLAVE_DMA) != 0) {\r
return IsaIoMapOnlySupportSlaveReadWrite (\r
This,\r
Operation,\r
// ISA Bus Master.\r
// Or unset Feature Flag PcdIsaBusSupportDma to disable support for ISA DMA.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportDma) || FeaturePcdGet (PcdIsaBusOnlySupportSlaveDma)) {\r
+ if (((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) ||\r
+ ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_ONLY_SUPPORT_SLAVE_DMA) != 0)) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if (Attributes & ~(EFI_ISA_IO_ATTRIBUTE_MEMORY_WRITE_COMBINE | EFI_ISA_IO_ATTRIBUTE_MEMORY_CACHED)) {\r
+ if ((Attributes & ~(EFI_ISA_IO_ATTRIBUTE_MEMORY_WRITE_COMBINE | EFI_ISA_IO_ATTRIBUTE_MEMORY_CACHED)) != 0) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
// ISA Bus Master.\r
// Or unset Feature Flag PcdIsaBusSupportDma to disable support for ISA DMA.\r
//\r
- if (!FeaturePcdGet (PcdIsaBusSupportDma) || FeaturePcdGet (PcdIsaBusOnlySupportSlaveDma)) {\r
+ if (((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_SUPPORT_DMA) == 0) ||\r
+ ((PcdGet8 (PcdIsaBusSupportedFeatures) & PCD_ISA_BUS_ONLY_SUPPORT_SLAVE_DMA) != 0)) {\r
return EFI_UNSUPPORTED;\r
}\r
\r