]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaIo.c
Coding style clean-up.
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Isa / IsaBusDxe / IsaIo.c
index 09f13f3b8f9b275b4d2eafed5e96287ca7ca5e99..4673d8379a3c4012f493c3fab89d4fe5d844f7a8 100644 (file)
@@ -1,33 +1,23 @@
-/*++\r
\r
-  Copyright (c) 2006 - 2007, Intel Corporation<BR>\r
-  All rights reserved. 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
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-Module Name:\r
-\r
-  IsaIo.c\r
+/** @file\r
+  The implementation for EFI_ISA_IO_PROTOCOL. \r
   \r
-Abstract:\r
+Copyright (c) 2006 - 2009, Intel Corporation.<BR>\r
+All rights reserved. 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
 \r
-  The implementation for EFI_ISA_IO_PROTOCOL. \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
---*/\r
+**/\r
 \r
-//\r
-// Include common header file for this module.\r
-//\r
 #include "InternalIsaIo.h"\r
 \r
 //\r
-// Driver Support Global Variables\r
+// Module Variables\r
 //\r
-EFI_ISA_IO_PROTOCOL IsaIoInterface = {\r
+EFI_ISA_IO_PROTOCOL mIsaIoInterface = {\r
   {    \r
     IsaIoMemRead,\r
     IsaIoMemWrite\r
@@ -47,7 +37,7 @@ EFI_ISA_IO_PROTOCOL IsaIoInterface = {
   NULL\r
 };\r
 \r
-static EFI_ISA_DMA_REGISTERS  DmaRegisters[8] = {\r
+EFI_ISA_DMA_REGISTERS  mDmaRegisters[8] = {\r
   {\r
     0x00,\r
     0x87,\r
@@ -90,104 +80,72 @@ static EFI_ISA_DMA_REGISTERS  DmaRegisters[8] = {
   },\r
 };\r
 \r
+/**\r
+  report a error Status code\r
+\r
+  @param Code          The error status code.\r
+  \r
+  @return EFI_SUCCESS  Success to report status code.\r
+**/\r
 EFI_STATUS\r
 ReportErrorStatusCode (\r
   EFI_STATUS_CODE_VALUE Code\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  report a error Status code of PCI bus driver controller\r
-\r
-Arguments:\r
-\r
-  Code         - The error status code.\r
-  \r
-Returns:\r
-\r
-  EFI_SUCCESS  - Success to report status code.\r
-  \r
-\r
---*/\r
 {\r
   return REPORT_STATUS_CODE (\r
-                EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
-                Code\r
-                );\r
+           EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
+           Code\r
+           );\r
 }\r
 \r
-//\r
-// Driver Support Functions\r
-//\r
+/**\r
+  Initializes an ISA I/O Instance\r
 \r
-EFI_STATUS\r
+  @param[in] IsaIoDevice            The iso device to be initialized.\r
+  @param[in] IsaDeviceResourceList  The resource list.\r
+  \r
+**/\r
+VOID\r
 InitializeIsaIoInstance (\r
   IN ISA_IO_DEVICE               *IsaIoDevice,\r
   IN EFI_ISA_ACPI_RESOURCE_LIST  *IsaDeviceResourceList\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Initializes an ISA I/O Instance\r
-\r
-Arguments:\r
-\r
-  IsaIoDevice            - The iso device to be initialized.\r
-  IsaDeviceResourceList  - The resource list.\r
-  \r
-Returns:\r
-\r
-  EFI_SUCCESS            - Initial success.\r
-  \r
---*/\r
 {\r
   //\r
-  // Initializes an ISA I/O Instance\r
+  // Use the ISA IO Protocol structure template to initialize the ISA IO instance\r
   //\r
   CopyMem (\r
     &IsaIoDevice->IsaIo,\r
-    &IsaIoInterface,\r
+    &mIsaIoInterface,\r
     sizeof (EFI_ISA_IO_PROTOCOL)\r
     );\r
 \r
   IsaIoDevice->IsaIo.ResourceList = IsaDeviceResourceList;\r
-  \r
-  return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Performs an ISA I/O Read Cycle\r
+\r
+  @param[in]  This              A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+  @param[in]  Width             Specifies the width of the I/O operation.\r
+  @param[in]  Offset            The offset in ISA I/O space to start the I/O operation.  \r
+  @param[in]  Count             The number of I/O operations to perform. \r
+  @param[out] Buffer            The destination buffer to store the results\r
+\r
+  @retval EFI_SUCCESS           The data was read from the device sucessfully.\r
+  @retval EFI_UNSUPPORTED       The Offset is not valid for this device.\r
+  @retval EFI_INVALID_PARAMETER Width or Count, or both, were invalid.\r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IsaIoIoRead (\r
-  IN     EFI_ISA_IO_PROTOCOL                        *This,\r
-  IN     EFI_ISA_IO_PROTOCOL_WIDTH                  Width,\r
-  IN     UINT32                                     Offset,\r
-  IN     UINTN                                      Count,\r
-  IN OUT VOID                                       *Buffer\r
+  IN  EFI_ISA_IO_PROTOCOL        *This,\r
+  IN  EFI_ISA_IO_PROTOCOL_WIDTH  Width,\r
+  IN  UINT32                     Offset,\r
+  IN  UINTN                      Count,\r
+  OUT VOID                       *Buffer\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Performs an ISA I/O Read Cycle\r
-\r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  Width                 - Signifies the width of the I/O operation.\r
-  Offset                - The offset in ISA I/O space to start the I/O operation.  \r
-  Count                 - The number of I/O operations to perform. \r
-  Buffer                - The destination buffer to store the results\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS           - The data was read from the device sucessfully.\r
-  EFI_UNSUPPORTED       - The Offset is not valid for this device.\r
-  EFI_INVALID_PARAMETER - Width or Count, or both, were invalid.\r
-  EFI_OUT_OF_RESOURCES  - The request could not be completed due to a lack of resources.\r
-\r
---*/\r
 {\r
   EFI_STATUS    Status;\r
   ISA_IO_DEVICE *IsaIoDevice;\r
@@ -202,14 +160,12 @@ Returns:
              IsaAccessTypeIo,\r
              Width,\r
              Count,\r
-             &Offset\r
+             Offset\r
              );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
-  //\r
-  // Call PciIo->Io.Read\r
-  //\r
+\r
   Status = IsaIoDevice->PciIo->Io.Read (\r
                                     IsaIoDevice->PciIo,\r
                                     (EFI_PCI_IO_PROTOCOL_WIDTH) Width,\r
@@ -226,37 +182,29 @@ Returns:
   return Status;\r
 }\r
 \r
+/**\r
+  Performs an ISA I/O Write Cycle\r
+\r
+  @param[in] This                A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+  @param[in] Width               Specifies the width of the I/O operation.\r
+  @param[in] Offset              The offset in ISA I/O space to start the I/O operation.  \r
+  @param[in] Count               The number of I/O operations to perform. \r
+  @param[in] Buffer              The source buffer to write data from\r
+\r
+  @retval EFI_SUCCESS            The data was writen to the device sucessfully.\r
+  @retval EFI_UNSUPPORTED        The Offset is not valid for this device.\r
+  @retval EFI_INVALID_PARAMETER  Width or Count, or both, were invalid.\r
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a lack of resources.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IsaIoIoWrite (\r
-  IN     EFI_ISA_IO_PROTOCOL                        *This,\r
-  IN     EFI_ISA_IO_PROTOCOL_WIDTH                  Width,\r
-  IN     UINT32                                     Offset,\r
-  IN     UINTN                                      Count,\r
-  IN OUT VOID                                       *Buffer\r
+  IN EFI_ISA_IO_PROTOCOL        *This,\r
+  IN EFI_ISA_IO_PROTOCOL_WIDTH  Width,\r
+  IN UINT32                     Offset,\r
+  IN UINTN                      Count,\r
+  IN VOID                       *Buffer\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Performs an ISA I/O Write Cycle\r
-\r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  Width                 - Signifies the width of the I/O operation.\r
-  Offset                - The offset in ISA I/O space to start the I/O operation.  \r
-  Count                 - The number of I/O operations to perform. \r
-  Buffer                - The source buffer to write data from\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS           - The data was writen to the device sucessfully.\r
-  EFI_UNSUPPORTED       - The Offset is not valid for this device.\r
-  EFI_INVALID_PARAMETER - Width or Count, or both, were invalid.\r
-  EFI_OUT_OF_RESOURCES  - The request could not be completed due to a lack of resources.\r
-\r
---*/\r
 {\r
   EFI_STATUS    Status;\r
   ISA_IO_DEVICE *IsaIoDevice;\r
@@ -271,14 +219,12 @@ Returns:
              IsaAccessTypeIo,\r
              Width,\r
              Count,\r
-             &Offset\r
+             Offset\r
              );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
-  //\r
-  // Call PciIo->Io.Write\r
-  //\r
+\r
   Status = IsaIoDevice->PciIo->Io.Write (\r
                                     IsaIoDevice->PciIo,\r
                                     (EFI_PCI_IO_PROTOCOL_WIDTH) Width,\r
@@ -295,41 +241,30 @@ Returns:
   return Status;\r
 }\r
 \r
+/**\r
+  Writes an 8-bit I/O Port\r
+\r
+  @param[in] This                A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+  @param[in] Offset              The offset in ISA IO space to start the IO operation.  \r
+  @param[in] Value               The data to write port.\r
+\r
+  @retval EFI_SUCCESS            Success.\r
+  @retval EFI_INVALID_PARAMETER  Parameter is invalid.\r
+  @retval EFI_UNSUPPORTED        The address range specified by Offset is not valid.\r
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a lack of resources.\r
+**/\r
 EFI_STATUS\r
 WritePort (\r
-  IN EFI_ISA_IO_PROTOCOL                  *This,\r
-  IN UINT32                               Offset,\r
-  IN UINT8                                Value\r
+  IN EFI_ISA_IO_PROTOCOL  *This,\r
+  IN UINT32               Offset,\r
+  IN UINT8                Value\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Writes an 8 bit I/O Port\r
-\r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  Offset                - The offset in ISA IO space to start the IO operation.  \r
-  Value                 - The data to write port.\r
-  \r
-Returns:\r
-\r
-  EFI_SUCCESS           - Success.\r
-  EFI_INVALID_PARAMETER - Parameter is invalid.\r
-  EFI_UNSUPPORTED       - The address range specified by Offset is not valid.\r
-  EFI_OUT_OF_RESOURCES  - The request could not be completed due to a lack of resources.\r
-  \r
---*/\r
 {\r
   EFI_STATUS    Status;\r
   ISA_IO_DEVICE *IsaIoDevice;\r
 \r
   IsaIoDevice = ISA_IO_DEVICE_FROM_ISA_IO_THIS (This);\r
 \r
-  //\r
-  // Call PciIo->Io.Write\r
-  //\r
   Status = IsaIoDevice->PciIo->Io.Write (\r
                                     IsaIoDevice->PciIo,\r
                                     EfiPciIoWidthUint8,\r
@@ -348,38 +283,30 @@ Returns:
   return EFI_SUCCESS;\r
 }\r
 \r
-EFI_STATUS\r
-WriteDmaPort (\r
-  IN EFI_ISA_IO_PROTOCOL                  *This,\r
-  IN UINT32                               AddrOffset,\r
-  IN UINT32                               PageOffset,\r
-  IN UINT32                               CountOffset,\r
-  IN UINT32                               BaseAddress,\r
-  IN UINT16                               Count\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
+/**\r
   Writes I/O operation base address and count number to a 8 bit I/O Port.\r
 \r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  AddrOffset            - The address' offset.\r
-  PageOffset            - The page's offest.\r
-  CountOffset           - The count's offset.\r
-  BaseAddress           - The base address.\r
-  Count                 - The number of I/O operations to perform. \r
+  @param[in] This                A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+  @param[in] AddrOffset          The address' offset.\r
+  @param[in] PageOffset          The page's offest.\r
+  @param[in] CountOffset         The count's offset.\r
+  @param[in] BaseAddress         The base address.\r
+  @param[in] Count               The number of I/O operations to perform. \r
   \r
-Returns:\r
-\r
-  EFI_SUCCESS           - Success.\r
-  EFI_INVALID_PARAMETER - Parameter is invalid.\r
-  EFI_UNSUPPORTED       - The address range specified by these Offsets and Count is not valid.\r
-  EFI_OUT_OF_RESOURCES  - The request could not be completed due to a lack of resources.\r
-\r
---*/\r
+  @retval EFI_SUCCESS            Success.\r
+  @retval EFI_INVALID_PARAMETER  Parameter is invalid.\r
+  @retval EFI_UNSUPPORTED        The address range specified by these Offsets and Count is not valid.\r
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a lack of resources.\r
+**/\r
+EFI_STATUS\r
+WriteDmaPort (\r
+  IN EFI_ISA_IO_PROTOCOL  *This,\r
+  IN UINT32               AddrOffset,\r
+  IN UINT32               PageOffset,\r
+  IN UINT32               CountOffset,\r
+  IN UINT32               BaseAddress,\r
+  IN UINT16               Count\r
+  )\r
 {\r
   EFI_STATUS  Status;\r
 \r
@@ -404,36 +331,24 @@ Returns:
   }\r
 \r
   Status = WritePort (This, CountOffset, (UINT8) ((Count >> 8) & 0xff));\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-\r
-  return EFI_SUCCESS;\r
+  return Status;\r
 }\r
 \r
+/**\r
+  Unmaps a memory region for DMA\r
+\r
+  @param[in] This           A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+  @param[in] Mapping        The mapping value returned from EFI_ISA_IO.Map().\r
+\r
+  @retval EFI_SUCCESS       The range was unmapped.\r
+  @retval EFI_DEVICE_ERROR  The data was not committed to the target system memory.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IsaIoUnmap (\r
-  IN EFI_ISA_IO_PROTOCOL                  *This,\r
-  IN VOID                                 *Mapping\r
+  IN EFI_ISA_IO_PROTOCOL  *This,\r
+  IN VOID                 *Mapping\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Unmaps a memory region for DMA\r
-\r
-Arguments:\r
-\r
-  This             - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  Mapping          - The mapping value returned from EFI_ISA_IO.Map().\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS      - The range was unmapped.\r
-  EFI_DEVICE_ERROR - The data was not committed to the target system memory.\r
-\r
---*/\r
 {\r
   ISA_MAP_INFO  *IsaMapInfo;\r
 \r
@@ -471,42 +386,31 @@ Returns:
     // 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
 }\r
 \r
+/**\r
+  Flushes any posted write data to the system memory.\r
+\r
+  @param[in] This             A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+\r
+  @retval  EFI_SUCCESS        The buffers were flushed.\r
+  @retval  EFI_DEVICE_ERROR   The buffers were not flushed due to a hardware error.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IsaIoFlush (\r
-  IN EFI_ISA_IO_PROTOCOL                  *This\r
+  IN EFI_ISA_IO_PROTOCOL  *This\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Flushes a DMA buffer\r
-\r
-Arguments:\r
-\r
-  This             - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS      - The buffers were flushed.\r
-  EFI_DEVICE_ERROR - The buffers were not flushed due to a hardware error.\r
-\r
---*/\r
 {\r
   EFI_STATUS    Status;\r
   ISA_IO_DEVICE *IsaIoDevice;\r
 \r
   IsaIoDevice = ISA_IO_DEVICE_FROM_ISA_IO_THIS (This);\r
 \r
-  //\r
-  // Call PciIo->Flush\r
-  //\r
   Status = IsaIoDevice->PciIo->Flush (IsaIoDevice->PciIo);\r
 \r
   if (EFI_ERROR (Status)) {\r
@@ -516,35 +420,27 @@ Returns:
   return Status;\r
 }\r
 \r
-EFI_STATUS\r
-IsaIoVerifyAccess (\r
-  IN     ISA_IO_DEVICE              *IsaIoDevice,\r
-  IN     ISA_ACCESS_TYPE            Type,\r
-  IN     EFI_ISA_IO_PROTOCOL_WIDTH  Width,\r
-  IN     UINTN                      Count,\r
-  IN OUT UINT32                     *Offset\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
+/**\r
   Verifies access to an ISA device\r
 \r
-Arguments:\r
-\r
-  IsaIoDevice           - The ISA device to be verified.\r
-  Type                  - The Access type. The input must be either IsaAccessTypeMem or IsaAccessTypeIo.\r
-  Width                 - Signifies the width of the memory operation.\r
-  Count                 - The number of memory operations to perform. \r
-  Offset                - The offset in ISA memory space to start the memory operation.  \r
+  @param[in] IsaIoDevice         The ISA device to be verified.\r
+  @param[in] Type                The Access type. The input must be either IsaAccessTypeMem or IsaAccessTypeIo.\r
+  @param[in] Width               The width of the memory operation.\r
+  @param[in] Count               The number of memory operations to perform. \r
+  @param[in] Offset              The offset in ISA memory space to start the memory operation.  \r
   \r
-Returns:\r
-\r
-  EFI_SUCCESS           - Verify success.\r
-  EFI_INVALID_PARAMETER - One of the parameters has an invalid value.\r
-  EFI_UNSUPPORTED       - The device ont support the access type.\r
-\r
---*/\r
+  @retval EFI_SUCCESS            Verify success.\r
+  @retval EFI_INVALID_PARAMETER  One of the parameters has an invalid value.\r
+  @retval EFI_UNSUPPORTED        The device ont support the access type.\r
+**/\r
+EFI_STATUS\r
+IsaIoVerifyAccess (\r
+  IN ISA_IO_DEVICE              *IsaIoDevice,\r
+  IN ISA_ACCESS_TYPE            Type,\r
+  IN EFI_ISA_IO_PROTOCOL_WIDTH  Width,\r
+  IN UINTN                      Count,\r
+  IN UINT32                     Offset\r
+  )\r
 {\r
   EFI_ISA_ACPI_RESOURCE *Item;\r
   EFI_STATUS            Status;\r
@@ -562,7 +458,7 @@ Returns:
   // If Width is EfiIsaIoWidthFifoUintX then convert to EfiIsaIoWidthUintX\r
   // If Width is EfiIsaIoWidthFillUintX then convert to EfiIsaIoWidthUintX\r
   //\r
-  if (Width >= EfiIsaIoWidthFifoUint8 && Width <= EfiIsaIoWidthFifoReserved) {\r
+  if (Width >= EfiIsaIoWidthFifoUint8 && Width < EfiIsaIoWidthFifoReserved) {\r
     Count = 1;\r
   }\r
 \r
@@ -572,13 +468,12 @@ Returns:
   Item    = IsaIoDevice->IsaIo.ResourceList->ResourceItem;\r
   while (Item->Type != EfiIsaAcpiResourceEndOfList) {\r
     if ((Type == IsaAccessTypeMem && Item->Type == EfiIsaAcpiResourceMemory) ||\r
-        (Type == IsaAccessTypeIo && Item->Type == EfiIsaAcpiResourceIo)\r
-        ) {\r
-      if (*Offset >= Item->StartRange && (*Offset + Count * (UINT32)(1 << Width)) - 1 <= Item->EndRange) {\r
+        (Type == IsaAccessTypeIo && Item->Type == EfiIsaAcpiResourceIo)) {\r
+      if (Offset >= Item->StartRange && (Offset + Count * (UINT32)(1 << Width)) - 1 <= Item->EndRange) {\r
         return EFI_SUCCESS;\r
       }\r
 \r
-      if (*Offset >= Item->StartRange && *Offset <= Item->EndRange) {\r
+      if (Offset >= Item->StartRange && Offset <= Item->EndRange) {\r
         Status = EFI_INVALID_PARAMETER;\r
       }\r
     }\r
@@ -589,46 +484,36 @@ Returns:
   return Status;\r
 }\r
 \r
+/**\r
+  Performs an ISA Memory Read Cycle\r
+\r
+  @param[in]  This               A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+  @param[in]  Width              Specifies the width of the memory operation.\r
+  @param[in]  Offset             The offset in ISA memory space to start the memory operation.  \r
+  @param[in]  Count              The number of memory operations to perform. \r
+  @param[out] Buffer             The destination buffer to store the results\r
\r
+  @retval EFI_SUCCESS            The data was read from the device successfully.\r
+  @retval EFI_UNSUPPORTED        The Offset is not valid for this device.\r
+  @retval EFI_INVALID_PARAMETER  Width or Count, or both, were invalid.\r
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a lack of resources.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IsaIoMemRead (\r
-  IN     EFI_ISA_IO_PROTOCOL                       *This,\r
-  IN     EFI_ISA_IO_PROTOCOL_WIDTH                 Width,\r
-  IN     UINT32                                    Offset,\r
-  IN     UINTN                                     Count,\r
-  IN OUT VOID                                      *Buffer\r
+  IN  EFI_ISA_IO_PROTOCOL        *This,\r
+  IN  EFI_ISA_IO_PROTOCOL_WIDTH  Width,\r
+  IN  UINT32                     Offset,\r
+  IN  UINTN                      Count,\r
+  OUT VOID                       *Buffer\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Performs an ISA Memory Read Cycle\r
-\r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  Width                 - Signifies the width of the memory operation.\r
-  Offset                - The offset in ISA memory space to start the memory operation.  \r
-  Count                 - The number of memory operations to perform. \r
-  Buffer                - The destination buffer to store the results\r
-  \r
-Returns:\r
-\r
-  EFI_SUCCESS           - The data was read from the device successfully.\r
-  EFI_UNSUPPORTED       - The Offset is not valid for this device.\r
-  EFI_INVALID_PARAMETER - Width or Count, or both, were invalid.\r
-  EFI_OUT_OF_RESOURCES  - The request could not be completed due to a lack of resources.\r
-\r
---*/\r
 {\r
   EFI_STATUS    Status;\r
   ISA_IO_DEVICE *IsaIoDevice;\r
 \r
   //\r
-  // Set Feature Flag PcdIsaBusSupportBusMaster to FALSE to disable support for \r
-  // ISA Bus Master.\r
-  //\r
-  // So we just return EFI_UNSUPPORTED for these functions.\r
+  // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for\r
+  // ISA bus memory read/write operations.\r
   //\r
   if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {\r
     return EFI_UNSUPPORTED;\r
@@ -644,14 +529,12 @@ Returns:
              IsaAccessTypeMem,\r
              Width,\r
              Count,\r
-             &Offset\r
+             Offset\r
              );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
-  //\r
-  // Call PciIo->Mem.Read\r
-  //\r
+\r
   Status = IsaIoDevice->PciIo->Mem.Read (\r
                                      IsaIoDevice->PciIo,\r
                                      (EFI_PCI_IO_PROTOCOL_WIDTH) Width,\r
@@ -668,46 +551,36 @@ Returns:
   return Status;\r
 }\r
 \r
+/**\r
+  Performs an ISA Memory Write Cycle\r
+\r
+  @param[in] This                A pointer to the EFI_ISA_IO_PROTOCOL instance.  \r
+  @param[in] Width               Specifies the width of the memory operation.\r
+  @param[in] Offset              The offset in ISA memory space to start the memory operation.  \r
+  @param[in] Count               The number of memory operations to perform. \r
+  @param[in] Buffer              The source buffer to write data from\r
+\r
+  @retval EFI_SUCCESS            The data was written to the device sucessfully.\r
+  @retval EFI_UNSUPPORTED        The Offset is not valid for this device.\r
+  @retval EFI_INVALID_PARAMETER  Width or Count, or both, were invalid.\r
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a lack of resources.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IsaIoMemWrite (\r
-  IN     EFI_ISA_IO_PROTOCOL                        *This,\r
-  IN     EFI_ISA_IO_PROTOCOL_WIDTH                  Width,\r
-  IN     UINT32                                     Offset,\r
-  IN     UINTN                                      Count,\r
-  IN OUT VOID                                       *Buffer\r
+  IN EFI_ISA_IO_PROTOCOL        *This,\r
+  IN EFI_ISA_IO_PROTOCOL_WIDTH  Width,\r
+  IN UINT32                     Offset,\r
+  IN UINTN                      Count,\r
+  IN VOID                       *Buffer\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Performs an ISA Memory Write Cycle\r
-\r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.  \r
-  Width                 - Signifies the width of the memory operation.\r
-  Offset                - The offset in ISA memory space to start the memory operation.  \r
-  Count                 - The number of memory operations to perform. \r
-  Buffer                - The source buffer to write data from\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS           - The data was written to the device sucessfully.\r
-  EFI_UNSUPPORTED       - The Offset is not valid for this device.\r
-  EFI_INVALID_PARAMETER - Width or Count, or both, were invalid.\r
-  EFI_OUT_OF_RESOURCES  - The request could not be completed due to a lack of resources.\r
-\r
---*/\r
 {\r
   EFI_STATUS    Status;\r
   ISA_IO_DEVICE *IsaIoDevice;\r
 \r
   //\r
-  // Set Feature Flag PcdIsaBusSupportBusMaster to FALSE to disable support for \r
-  // ISA Bus Master.\r
-  //\r
-  // So we just return EFI_UNSUPPORTED for these functions.\r
+  // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for\r
+  // ISA bus memory read/write operations.\r
   //\r
   if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {\r
     return EFI_UNSUPPORTED;\r
@@ -723,14 +596,12 @@ Returns:
              IsaAccessTypeMem,\r
              Width,\r
              Count,\r
-             &Offset\r
+             Offset\r
              );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
-  //\r
-  // Call PciIo->Mem.Write\r
-  //\r
+\r
   Status = IsaIoDevice->PciIo->Mem.Write (\r
                                      IsaIoDevice->PciIo,\r
                                      (EFI_PCI_IO_PROTOCOL_WIDTH) Width,\r
@@ -747,46 +618,36 @@ Returns:
   return Status;\r
 }\r
 \r
+/**\r
+  Copy one region of ISA memory space to another region of ISA memory space on the ISA controller.\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[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
+  @retval EFI_SUCCESS            The data was copied sucessfully.\r
+  @retval EFI_UNSUPPORTED        The DestOffset or SrcOffset is not valid for this device.\r
+  @retval EFI_INVALID_PARAMETER  Width or Count, or both, were invalid.\r
+  @retval EFI_OUT_OF_RESOURCES   The request could not be completed due to a lack of resources.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IsaIoCopyMem (\r
-  IN EFI_ISA_IO_PROTOCOL                        *This,\r
-  IN EFI_ISA_IO_PROTOCOL_WIDTH                  Width,\r
-  IN UINT32                                     DestOffset,\r
-  IN UINT32                                     SrcOffset,\r
-  IN UINTN                                      Count\r
+  IN EFI_ISA_IO_PROTOCOL        *This,\r
+  IN EFI_ISA_IO_PROTOCOL_WIDTH  Width,\r
+  IN UINT32                     DestOffset,\r
+  IN UINT32                     SrcOffset,\r
+  IN UINTN                      Count\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Performs an ISA I/O Copy Memory \r
-\r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  Width                 - Signifies the width of the memory copy operation.\r
-  DestOffset            - The offset of the destination \r
-  SrcOffset             - The offset of the source\r
-  Count                 - The number of memory copy  operations to perform\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS           - The data was copied sucessfully.\r
-  EFI_UNSUPPORTED       - The DestOffset or SrcOffset is not valid for this device.\r
-  EFI_INVALID_PARAMETER - Width or Count, or both, were invalid.\r
-  EFI_OUT_OF_RESOURCES  - The request could not be completed due to a lack of resources.\r
-\r
---*/\r
 {\r
   EFI_STATUS    Status;\r
   ISA_IO_DEVICE *IsaIoDevice;\r
 \r
   //\r
-  // Set Feature Flag PcdIsaBusSupportBusMaster to FALSE to disable support for \r
-  // ISA Bus Master.\r
-  //\r
-  // So we just return EFI_UNSUPPORTED for these functions.\r
+  // Set Feature Flag PcdIsaBusSupportIsaMemory to FALSE to disable support for\r
+  // ISA bus memory read/write operations.\r
   //\r
   if (!FeaturePcdGet (PcdIsaBusSupportIsaMemory)) {\r
     return EFI_UNSUPPORTED;\r
@@ -802,7 +663,7 @@ Returns:
              IsaAccessTypeMem,\r
              Width,\r
              Count,\r
-             &DestOffset\r
+             DestOffset\r
              );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
@@ -813,14 +674,12 @@ Returns:
              IsaAccessTypeMem,\r
              Width,\r
              Count,\r
-             &SrcOffset\r
+             SrcOffset\r
              );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
-  //\r
-  // Call PciIo->CopyMem\r
-  //\r
+\r
   Status = IsaIoDevice->PciIo->CopyMem (\r
                                  IsaIoDevice->PciIo,\r
                                  (EFI_PCI_IO_PROTOCOL_WIDTH) Width,\r
@@ -838,51 +697,42 @@ Returns:
   return Status;\r
 }\r
 \r
-STATIC\r
-EFI_STATUS\r
-IsaIoMap_OnlySupportSlaveReadWrite (\r
-  IN     EFI_ISA_IO_PROTOCOL                                  *This,\r
-  IN     EFI_ISA_IO_PROTOCOL_OPERATION                        Operation,\r
-  IN     UINT8                                                ChannelNumber         OPTIONAL,\r
-  IN     UINT32                                               ChannelAttributes,\r
-  IN     VOID                                                 *HostAddress,\r
-  IN OUT UINTN                                                *NumberOfBytes,\r
-  OUT    EFI_PHYSICAL_ADDRESS                                 *DeviceAddress,\r
-  OUT    VOID                                                 **Mapping\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
+/**\r
   Maps a memory region for DMA, note this implementation\r
   only supports slave read/write operation to save code size.\r
 \r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  Operation             - Indicates the type of DMA (slave or bus master), and if \r
-                          the DMA operation is going to read or write to system memory. \r
-  ChannelNumber         - The slave channel number to use for this DMA operation. \r
-                          If Operation and ChannelAttributes shows that this device \r
-                          performs bus mastering DMA, then this field is ignored.  \r
-                          The legal range for this field is 0..7.  \r
-  ChannelAttributes     - The attributes of the DMA channel to use for this DMA operation\r
-  HostAddress           - The system memory address to map to the device.  \r
-  NumberOfBytes         - On input the number of bytes to map.  On output the number \r
-                          of bytes that were mapped.\r
-  DeviceAddress         - The resulting map address for the bus master device to use \r
-                          to access the hosts HostAddress.  \r
-  Mapping               - A resulting value to pass to EFI_ISA_IO.Unmap().\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS           - The range was mapped for the returned NumberOfBytes.\r
-  EFI_INVALID_PARAMETER - The Operation or HostAddress is undefined.\r
-  EFI_UNSUPPORTED       - The HostAddress can not be mapped as a common buffer.\r
-  EFI_DEVICE_ERROR      - The system hardware could not map the requested address.\r
-  EFI_OUT_OF_RESOURCES  - The memory pages could not be allocated.\r
-\r
---*/\r
+  @param This                    A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+  @param Operation               Indicates the type of DMA (slave or bus master), and if \r
+                                 the DMA operation is going to read or write to system memory. \r
+  @param ChannelNumber           The slave channel number to use for this DMA operation. \r
+                                 If Operation and ChannelAttributes shows that this device \r
+                                 performs bus mastering DMA, then this field is ignored.  \r
+                                 The legal range for this field is 0..7.  \r
+  @param ChannelAttributes       The attributes of the DMA channel to use for this DMA operation\r
+  @param HostAddress             The system memory address to map to the device.  \r
+  @param NumberOfBytes           On input the number of bytes to map.  On output the number \r
+                                 of bytes that were mapped.\r
+  @param DeviceAddress           The resulting map address for the bus master device to use \r
+                                 to access the hosts HostAddress.  \r
+  @param Mapping                 A resulting value to pass to EFI_ISA_IO.Unmap().\r
+\r
+  @retval EFI_SUCCESS            The range was mapped for the returned NumberOfBytes.\r
+  @retval EFI_INVALID_PARAMETER  The Operation or HostAddress is undefined.\r
+  @retval EFI_UNSUPPORTED        The HostAddress can not be mapped as a common buffer.\r
+  @retval EFI_DEVICE_ERROR       The system hardware could not map the requested address.\r
+  @retval EFI_OUT_OF_RESOURCES   The memory pages could not be allocated.\r
+**/\r
+EFI_STATUS\r
+IsaIoMapOnlySupportSlaveReadWrite (\r
+  IN     EFI_ISA_IO_PROTOCOL            *This,\r
+  IN     EFI_ISA_IO_PROTOCOL_OPERATION  Operation,\r
+  IN     UINT8                          ChannelNumber  OPTIONAL,\r
+  IN     UINT32                         ChannelAttributes,\r
+  IN     VOID                           *HostAddress,\r
+  IN OUT UINTN                          *NumberOfBytes,\r
+  OUT    EFI_PHYSICAL_ADDRESS           *DeviceAddress,\r
+  OUT    VOID                           **Mapping\r
+  )\r
 {\r
   EFI_STATUS            Status;\r
   EFI_PHYSICAL_ADDRESS  PhysicalAddress;\r
@@ -891,7 +741,6 @@ Returns:
   UINTN                 MaxNumberOfBytes;\r
   UINT32                BaseAddress;\r
   UINT16                Count;\r
-\r
   UINT8                 DmaMask;\r
   UINT8                 DmaClear;\r
   UINT8                 DmaChannelMode;\r
@@ -905,7 +754,6 @@ Returns:
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-\r
   //\r
   // Initialize the return values to their defaults\r
   //\r
@@ -931,7 +779,7 @@ Returns:
   // Map the HostAddress to a DeviceAddress.\r
   //\r
   PhysicalAddress = (EFI_PHYSICAL_ADDRESS) (UINTN) HostAddress;\r
-  if ((PhysicalAddress +*NumberOfBytes) > ISA_MAX_MEMORY_ADDRESS) {\r
+  if ((PhysicalAddress + *NumberOfBytes) > ISA_MAX_MEMORY_ADDRESS) {\r
     //\r
     // Common Buffer operations can not be remapped.  If the common buffer\r
     // is above 16MB, then it is not possible to generate a mapping, so return\r
@@ -973,7 +821,7 @@ Returns:
                     &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
@@ -1063,9 +911,9 @@ Returns:
 \r
   Status = WriteDmaPort (\r
              This,\r
-             DmaRegisters[ChannelNumber].Address,\r
-             DmaRegisters[ChannelNumber].Page,\r
-             DmaRegisters[ChannelNumber].Count,\r
+             mDmaRegisters[ChannelNumber].Address,\r
+             mDmaRegisters[ChannelNumber].Page,\r
+             mDmaRegisters[ChannelNumber].Count,\r
              BaseAddress,\r
              Count\r
              );\r
@@ -1085,9 +933,33 @@ Returns:
   return EFI_SUCCESS;\r
 }\r
 \r
-STATIC\r
+/**\r
+  Maps a memory region for DMA. This implementation implement the \r
+  the full mapping support.\r
+\r
+  @param This                    A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+  @param Operation               Indicates the type of DMA (slave or bus master), and if \r
+                                 the DMA operation is going to read or write to system memory. \r
+  @param ChannelNumber           The slave channel number to use for this DMA operation. \r
+                                 If Operation and ChannelAttributes shows that this device \r
+                                 performs bus mastering DMA, then this field is ignored.  \r
+                                 The legal range for this field is 0..7.  \r
+  @param ChannelAttributes       The attributes of the DMA channel to use for this DMA operation\r
+  @param HostAddress             The system memory address to map to the device.  \r
+  @param NumberOfBytes           On input the number of bytes to map.  On output the number \r
+                                 of bytes that were mapped.\r
+  @param DeviceAddress           The resulting map address for the bus master device to use \r
+                                 to access the hosts HostAddress.  \r
+  @param Mapping                 A resulting value to pass to EFI_ISA_IO.Unmap().\r
+\r
+  @retval EFI_SUCCESS           - The range was mapped for the returned NumberOfBytes.\r
+  @retval EFI_INVALID_PARAMETER - The Operation or HostAddress is undefined.\r
+  @retval EFI_UNSUPPORTED       - The HostAddress can not be mapped as a common buffer.\r
+  @retval EFI_DEVICE_ERROR      - The system hardware could not map the requested address.\r
+  @retval EFI_OUT_OF_RESOURCES  - The memory pages could not be allocated.\r
+**/\r
 EFI_STATUS\r
-IsaIoMap_FullSupport (\r
+IsaIoMapFullSupport (\r
   IN     EFI_ISA_IO_PROTOCOL                                  *This,\r
   IN     EFI_ISA_IO_PROTOCOL_OPERATION                        Operation,\r
   IN     UINT8                                                ChannelNumber         OPTIONAL,\r
@@ -1097,39 +969,6 @@ IsaIoMap_FullSupport (
   OUT    EFI_PHYSICAL_ADDRESS                                 *DeviceAddress,\r
   OUT    VOID                                                 **Mapping\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Maps a memory region for DMA. This implementation implement the \r
-  the full mapping support.\r
-\r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  Operation             - Indicates the type of DMA (slave or bus master), and if \r
-                          the DMA operation is going to read or write to system memory. \r
-  ChannelNumber         - The slave channel number to use for this DMA operation. \r
-                          If Operation and ChannelAttributes shows that this device \r
-                          performs bus mastering DMA, then this field is ignored.  \r
-                          The legal range for this field is 0..7.  \r
-  ChannelAttributes     - The attributes of the DMA channel to use for this DMA operation\r
-  HostAddress           - The system memory address to map to the device.  \r
-  NumberOfBytes         - On input the number of bytes to map.  On output the number \r
-                          of bytes that were mapped.\r
-  DeviceAddress         - The resulting map address for the bus master device to use \r
-                        - to access the hosts HostAddress.  \r
-  Mapping               - A resulting value to pass to EFI_ISA_IO.Unmap().\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS           - The range was mapped for the returned NumberOfBytes.\r
-  EFI_INVALID_PARAMETER - The Operation or HostAddress is undefined.\r
-  EFI_UNSUPPORTED       - The HostAddress can not be mapped as a common buffer.\r
-  EFI_DEVICE_ERROR      - The system hardware could not map the requested address.\r
-  EFI_OUT_OF_RESOURCES  - The memory pages could not be allocated.\r
-\r
---*/\r
 {\r
   EFI_STATUS            Status;\r
   BOOLEAN               Master;\r
@@ -1140,7 +979,6 @@ Returns:
   UINTN                 MaxNumberOfBytes;\r
   UINT32                BaseAddress;\r
   UINT16                Count;\r
-\r
   UINT8                 DmaMask;\r
   UINT8                 DmaClear;\r
   UINT8                 DmaChannelMode;\r
@@ -1154,7 +992,6 @@ Returns:
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-\r
   //\r
   // Initialize the return values to their defaults\r
   //\r
@@ -1166,6 +1003,11 @@ Returns:
   if (Operation < 0 || Operation >= EfiIsaIoOperationMaximum) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
+\r
+  if (ChannelNumber >= 8) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+\r
   //\r
   // See if this is a Slave DMA Operation\r
   //\r
@@ -1194,17 +1036,14 @@ Returns:
     //\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
@@ -1212,8 +1051,8 @@ Returns:
       //\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
@@ -1221,21 +1060,20 @@ Returns:
       //\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
@@ -1286,7 +1124,7 @@ Returns:
                     &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
@@ -1330,15 +1168,15 @@ Returns:
     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
@@ -1399,9 +1237,9 @@ Returns:
 \r
   Status = WriteDmaPort (\r
              This,\r
-             DmaRegisters[ChannelNumber].Address,\r
-             DmaRegisters[ChannelNumber].Page,\r
-             DmaRegisters[ChannelNumber].Count,\r
+             mDmaRegisters[ChannelNumber].Address,\r
+             mDmaRegisters[ChannelNumber].Page,\r
+             mDmaRegisters[ChannelNumber].Count,\r
              BaseAddress,\r
              Count\r
              );\r
@@ -1421,53 +1259,45 @@ Returns:
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Maps a memory region for DMA\r
+\r
+  @param This                    A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+  @param Operation               Indicates the type of DMA (slave or bus master), and if \r
+                                 the DMA operation is going to read or write to system memory. \r
+  @param ChannelNumber           The slave channel number to use for this DMA operation. \r
+                                 If Operation and ChannelAttributes shows that this device \r
+                                 performs bus mastering DMA, then this field is ignored.  \r
+                                 The legal range for this field is 0..7.  \r
+  @param ChannelAttributes       The attributes of the DMA channel to use for this DMA operation\r
+  @param HostAddress             The system memory address to map to the device.  \r
+  @param NumberOfBytes           On input the number of bytes to map.  On output the number \r
+                                 of bytes that were mapped.\r
+  @param DeviceAddress           The resulting map address for the bus master device to use \r
+                                 to access the hosts HostAddress.  \r
+  @param Mapping                 A resulting value to pass to EFI_ISA_IO.Unmap().\r
+\r
+  @retval EFI_SUCCESS            The range was mapped for the returned NumberOfBytes.\r
+  @retval EFI_INVALID_PARAMETER  The Operation or HostAddress is undefined.\r
+  @retval EFI_UNSUPPORTED        The HostAddress can not be mapped as a common buffer.\r
+  @retval EFI_DEVICE_ERROR       The system hardware could not map the requested address.\r
+  @retval EFI_OUT_OF_RESOURCES   The memory pages could not be allocated.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IsaIoMap (\r
-  IN     EFI_ISA_IO_PROTOCOL                                  *This,\r
-  IN     EFI_ISA_IO_PROTOCOL_OPERATION                        Operation,\r
-  IN     UINT8                                                ChannelNumber         OPTIONAL,\r
-  IN     UINT32                                               ChannelAttributes,\r
-  IN     VOID                                                 *HostAddress,\r
-  IN OUT UINTN                                                *NumberOfBytes,\r
-  OUT    EFI_PHYSICAL_ADDRESS                                 *DeviceAddress,\r
-  OUT    VOID                                                 **Mapping\r
+  IN     EFI_ISA_IO_PROTOCOL            *This,\r
+  IN     EFI_ISA_IO_PROTOCOL_OPERATION  Operation,\r
+  IN     UINT8                          ChannelNumber  OPTIONAL,\r
+  IN     UINT32                         ChannelAttributes,\r
+  IN     VOID                           *HostAddress,\r
+  IN OUT UINTN                          *NumberOfBytes,\r
+  OUT    EFI_PHYSICAL_ADDRESS           *DeviceAddress,\r
+  OUT    VOID                           **Mapping\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Maps a memory region for DMA\r
-\r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  Operation             - Indicates the type of DMA (slave or bus master), and if \r
-                          the DMA operation is going to read or write to system memory. \r
-  ChannelNumber         - The slave channel number to use for this DMA operation. \r
-                          If Operation and ChannelAttributes shows that this device \r
-                          performs bus mastering DMA, then this field is ignored.  \r
-                          The legal range for this field is 0..7.  \r
-  ChannelAttributes     - The attributes of the DMA channel to use for this DMA operation\r
-  HostAddress           - The system memory address to map to the device.  \r
-  NumberOfBytes         - On input the number of bytes to map.  On output the number \r
-                          of bytes that were mapped.\r
-  DeviceAddress         - The resulting map address for the bus master device to use \r
-                        - to access the hosts HostAddress.  \r
-  Mapping               - A resulting value to pass to EFI_ISA_IO.Unmap().\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS           - The range was mapped for the returned NumberOfBytes.\r
-  EFI_INVALID_PARAMETER - The Operation or HostAddress is undefined.\r
-  EFI_UNSUPPORTED       - The HostAddress can not be mapped as a common buffer.\r
-  EFI_DEVICE_ERROR      - The system hardware could not map the requested address.\r
-  EFI_OUT_OF_RESOURCES  - The memory pages could not be allocated.\r
-\r
---*/\r
 {\r
   //\r
-  // Or unset Feature Flag PcdIsaBusSupportDma to disable support for ISA DMA.\r
+  // Set Feature Flag PcdIsaBusSupportDma to FALSE to disable support for ISA DMA.\r
   //\r
   if (!FeaturePcdGet (PcdIsaBusSupportDma)) {\r
     return EFI_UNSUPPORTED;\r
@@ -1479,64 +1309,57 @@ Returns:
   // So we just return EFI_UNSUPPORTED for these functions.\r
   //\r
   if (FeaturePcdGet (PcdIsaBusOnlySupportSlaveDma)) {\r
-    return IsaIoMap_OnlySupportSlaveReadWrite (\r
-              This,\r
-              Operation,\r
-              ChannelNumber,\r
-              ChannelAttributes,\r
-              HostAddress,\r
-              NumberOfBytes,\r
-              DeviceAddress,\r
-              Mapping\r
+    return IsaIoMapOnlySupportSlaveReadWrite (\r
+             This,\r
+             Operation,\r
+             ChannelNumber,\r
+             ChannelAttributes,\r
+             HostAddress,\r
+             NumberOfBytes,\r
+             DeviceAddress,\r
+             Mapping\r
              );\r
 \r
   } else {\r
-    return IsaIoMap_FullSupport (\r
-              This,\r
-              Operation,\r
-              ChannelNumber,\r
-              ChannelAttributes,\r
-              HostAddress,\r
-              NumberOfBytes,\r
-              DeviceAddress,\r
-              Mapping\r
+    return IsaIoMapFullSupport (\r
+             This,\r
+             Operation,\r
+             ChannelNumber,\r
+             ChannelAttributes,\r
+             HostAddress,\r
+             NumberOfBytes,\r
+             DeviceAddress,\r
+             Mapping\r
              );\r
   }\r
 }\r
+\r
+/**\r
+  Allocates pages that are suitable for an EfiIsaIoOperationBusMasterCommonBuffer mapping.\r
+\r
+  @param[in]  This               A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+  @param[in]  Type               The type allocation to perform.\r
+  @param[in]  MemoryType         The type of memory to allocate.\r
+  @param[in]  Pages              The number of pages to allocate.\r
+  @param[out] HostAddress        A pointer to store the base address of the allocated range.\r
+  @param[in]  Attributes         The requested bit mask of attributes for the allocated range.\r
+\r
+  @retval EFI_SUCCESS            The requested memory pages were allocated.\r
+  @retval EFI_INVALID_PARAMETER  Type is invalid or MemoryType is invalid or HostAddress is NULL\r
+  @retval EFI_UNSUPPORTED        Attributes is unsupported or the memory range specified \r
+                                 by HostAddress, Pages, and Type is not available for common buffer use.\r
+  @retval EFI_OUT_OF_RESOURCES   The memory pages could not be allocated.\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IsaIoAllocateBuffer (\r
-  IN  EFI_ISA_IO_PROTOCOL                  *This,\r
-  IN  EFI_ALLOCATE_TYPE                    Type,\r
-  IN  EFI_MEMORY_TYPE                      MemoryType,\r
-  IN  UINTN                                Pages,\r
-  OUT VOID                                 **HostAddress,\r
-  IN  UINT64                               Attributes\r
+  IN  EFI_ISA_IO_PROTOCOL  *This,\r
+  IN  EFI_ALLOCATE_TYPE    Type,\r
+  IN  EFI_MEMORY_TYPE      MemoryType,\r
+  IN  UINTN                Pages,\r
+  OUT VOID                 **HostAddress,\r
+  IN  UINT64               Attributes\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Allocates a common buffer for DMA\r
-\r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  Type                  - The type allocation to perform.\r
-  MemoryType            - The type of memory to allocate.\r
-  Pages                 - The number of pages to allocate.\r
-  HostAddress           - A pointer to store the base address of the allocated range.\r
-  Attributes            - The requested bit mask of attributes for the allocated range.\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS           - The requested memory pages were allocated.\r
-  EFI_INVALID_PARAMETER - Type is invalid or MemoryType is invalid or HostAddress is NULL\r
-  EFI_UNSUPPORTED       - Attributes is unsupported or the memory range specified \r
-                          by HostAddress, Pages, and Type is not available for common buffer use.\r
-  EFI_OUT_OF_RESOURCES  - The memory pages could not be allocated.\r
-\r
---*/\r
 {\r
   EFI_STATUS            Status;\r
   EFI_PHYSICAL_ADDRESS  PhysicalAddress;\r
@@ -1564,7 +1387,7 @@ Returns:
     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
@@ -1591,34 +1414,25 @@ Returns:
   return Status;\r
 }\r
 \r
+/**\r
+  Frees memory that was allocated with EFI_ISA_IO.AllocateBuffer(). \r
+\r
+  @param[in] This                A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
+  @param[in] Pages               The number of pages to free.\r
+  @param[in] HostAddress         The base address of the allocated range.\r
+\r
+  @retval EFI_SUCCESS            The requested memory pages were freed.\r
+  @retval EFI_INVALID_PARAMETER  The memory was not allocated with EFI_ISA_IO.AllocateBufer().\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IsaIoFreeBuffer (\r
-  IN EFI_ISA_IO_PROTOCOL                  *This,\r
-  IN UINTN                                Pages,\r
-  IN VOID                                 *HostAddress\r
+  IN EFI_ISA_IO_PROTOCOL  *This,\r
+  IN UINTN                Pages,\r
+  IN VOID                 *HostAddress\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Frees a common buffer \r
-\r
-Arguments:\r
-\r
-  This                  - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-  Pages                 - The number of pages to free.\r
-  HostAddress           - The base address of the allocated range.\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS           - The requested memory pages were freed.\r
-  EFI_INVALID_PARAMETER - The memory was not allocated with EFI_ISA_IO.AllocateBufer().\r
-\r
---*/\r
 {\r
-  EFI_STATUS            Status;\r
-  EFI_PHYSICAL_ADDRESS  PhysicalAddress;\r
+  EFI_STATUS  Status;\r
 \r
   //\r
   // Set Feature Flag PcdIsaBusOnlySupportSlaveDma to FALSE to disable support for \r
@@ -1629,9 +1443,8 @@ Returns:
     return EFI_UNSUPPORTED;\r
   }\r
 \r
-  PhysicalAddress = (EFI_PHYSICAL_ADDRESS) (UINTN) HostAddress;\r
   Status = gBS->FreePages (\r
-                  PhysicalAddress,\r
+                  (EFI_PHYSICAL_ADDRESS) (UINTN) HostAddress,\r
                   Pages\r
                   );\r
   if (EFI_ERROR (Status)) {\r