-/**@file\r
+/** @file\r
The implementation for EFI_ISA_IO_PROTOCOL. \r
\r
-Copyright (c) 2006 - 2009, Intel Corporation.<BR>\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2006 - 2009, 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
@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