]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Library/PciCf8Lib.h
Change comment "bitwise inclusive OR" to "bitwise OR".
[mirror_edk2.git] / MdePkg / Include / Library / PciCf8Lib.h
index e2ac1b2a0187637104cfeefb997eb4441ffbeb35..ddc7c27fc0db7141f689ef0886f0cb7962582c5e 100644 (file)
@@ -1,23 +1,24 @@
 /** @file\r
-  PCI CF8 Library Services for PCI Segment #0\r
+  Provides services to access PCI Configuration Space using the I/O ports 0xCF8 and 0xCFC.\r
+  \r
+  This library is identical to the PCI Library, except the access method for performing PCI \r
+  configuration cycles must be though I/O ports 0xCF8 and 0xCFC.  This library only allows \r
+  access to PCI Segment #0.\r
 \r
-  Copyright (c) 2006, Intel Corporation\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
+Copyright (c) 2006 - 2008, 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:  PciCf8Lib.h\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
 #ifndef __PCI_CF8_LIB_H__\r
 #define __PCI_CF8_LIB_H__\r
 \r
-#include <Library/PciLib.h>\r
 \r
 /**\r
   Macro that converts PCI Bus, PCI Device, PCI Function and PCI Register to an\r
 \r
 **/\r
 #define PCI_CF8_LIB_ADDRESS(Bus,Device,Function,Offset) \\r
-  PCI_LIB_ADDRESS (Bus, Device, Function, Offset)\r
+  (((Offset) & 0xfff) | (((Function) & 0x07) << 12) | (((Device) & 0x1f) << 15) | (((Bus) & 0xff) << 20))\r
+\r
+/**\r
+  Registers a PCI device so PCI configuration registers may be accessed after \r
+  SetVirtualAddressMap().\r
+  \r
+  Registers the PCI device specified by Address so all the PCI configuration registers \r
+  associated with that PCI device may be accessed after SetVirtualAddressMap() is called.\r
+  \r
+  If Address > 0x0FFFFFFF, then ASSERT().\r
+\r
+  @param  Address Address that encodes the PCI Bus, Device, Function and\r
+                  Register.\r
+  \r
+  @retval RETURN_SUCCESS           The PCI device was registered for runtime access.\r
+  @retval RETURN_UNSUPPORTED       An attempt was made to call this function \r
+                                   after ExitBootServices().\r
+  @retval RETURN_UNSUPPORTED       The resources required to access the PCI device\r
+                                   at runtime could not be mapped.\r
+  @retval RETURN_OUT_OF_RESOURCES  There are not enough resources available to\r
+                                   complete the registration.\r
+\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+PciCf8RegisterForRuntimeAccess (\r
+  IN UINTN  Address\r
+  );\r
 \r
 /**\r
   Reads an 8-bit PCI configuration register.\r
@@ -81,7 +109,7 @@ UINT8
 EFIAPI\r
 PciCf8Write8 (\r
   IN      UINTN                     Address,\r
-  IN      UINT8                     Data\r
+  IN      UINT8                     Value\r
   );\r
 \r
 /**\r
@@ -391,7 +419,7 @@ UINT16
 EFIAPI\r
 PciCf8Write16 (\r
   IN      UINTN                     Address,\r
-  IN      UINT16                    Data\r
+  IN      UINT16                    Value\r
   );\r
 \r
 /**\r
@@ -709,7 +737,7 @@ UINT32
 EFIAPI\r
 PciCf8Write32 (\r
   IN      UINTN                     Address,\r
-  IN      UINT32                    Data\r
+  IN      UINT32                    Value\r
   );\r
 \r
 /**\r
@@ -996,15 +1024,14 @@ PciCf8BitFieldAndThenOr32 (
   If StartAddress > 0x0FFFFFFF, then ASSERT().\r
   If the register specified by StartAddress >= 0x100, then ASSERT().\r
   If ((StartAddress & 0xFFF) + Size) > 0x100, then ASSERT().\r
-  If (StartAddress + Size - 1)  > 0x0FFFFFFF, then ASSERT().\r
-  If Buffer is NULL, then ASSERT().\r
+  If Size > 0 and Buffer is NULL, then ASSERT().\r
 \r
   @param  StartAddress  Starting address that encodes the PCI Bus, Device,\r
                         Function and Register.\r
   @param  Size          Size in bytes of the transfer.\r
   @param  Buffer        Pointer to a buffer receiving the data read.\r
 \r
-  @return Size\r
+  @return Size read from StartAddress.\r
 \r
 **/\r
 UINTN\r
@@ -1030,15 +1057,14 @@ PciCf8ReadBuffer (
   If StartAddress > 0x0FFFFFFF, then ASSERT().\r
   If the register specified by StartAddress >= 0x100, then ASSERT().\r
   If ((StartAddress & 0xFFF) + Size) > 0x100, then ASSERT().\r
-  If (StartAddress + Size - 1)  > 0x0FFFFFFF, then ASSERT().\r
-  If Buffer is NULL, then ASSERT().\r
+  If Size > 0 and Buffer is NULL, then ASSERT().\r
 \r
   @param  StartAddress  Starting address that encodes the PCI Bus, Device,\r
                         Function and Register.\r
   @param  Size          Size in bytes of the transfer.\r
   @param  Buffer        Pointer to a buffer containing the data to write.\r
 \r
-  @return Size\r
+  @return Size written to StartAddress.\r
 \r
 **/\r
 UINTN\r