]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/NonDiscoverablePciDeviceDxe: Add comments for functions
authorDandan Bi <dandan.bi@intel.com>
Thu, 15 Dec 2016 12:52:52 +0000 (20:52 +0800)
committerHao Wu <hao.a.wu@intel.com>
Mon, 19 Dec 2016 01:19:54 +0000 (09:19 +0800)
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/ComponentName.c
MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.c
MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf
MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.c
MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceIo.h

index 6e51d00fe434395e89abd7be518a7516e7f8672f..0e6ebecded91eed3f7de1d5229ce02b25e45a673 100644 (file)
@@ -30,6 +30,27 @@ EFI_UNICODE_STRING_TABLE mDriverNameTable[] = {
 \r
 EFI_COMPONENT_NAME_PROTOCOL gComponentName;\r
 \r
+/**\r
+  Retrieves a Unicode string that is the user readable name of the UEFI Driver.\r
+\r
+  @param This           A pointer to the EFI_COMPONENT_NAME_PROTOCOL instance.\r
+  @param Language       A pointer to a three character ISO 639-2 language identifier.\r
+                        This is the language of the driver name that that the caller\r
+                        is requesting, and it must match one of the languages specified\r
+                        in SupportedLanguages.  The number of languages supported by a\r
+                        driver is up to the driver writer.\r
+  @param DriverName     A pointer to the Unicode string to return.  This Unicode string\r
+                        is the name of the driver specified by This in the language\r
+                        specified by Language.\r
+\r
+  @retval EFI_SUCCESS           The Unicode string for the Driver specified by This\r
+                                and the language specified by Language was returned\r
+                                in DriverName.\r
+  @retval EFI_INVALID_PARAMETER Language is NULL.\r
+  @retval EFI_INVALID_PARAMETER DriverName is NULL.\r
+  @retval EFI_UNSUPPORTED       The driver specified by This does not support the\r
+                                language specified by Language.\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -48,6 +69,32 @@ NonDiscoverablePciGetDriverName (
            );\r
 }\r
 \r
+/**\r
+  Retrieves a Unicode string that is the user readable name of the controller\r
+  that is being managed by an UEFI Driver.\r
+\r
+  @param This                   A pointer to the EFI_COMPONENT_NAME_PROTOCOL instance.\r
+  @param DeviceHandle           The handle of a controller that the driver specified by\r
+                                This is managing.  This handle specifies the controller\r
+                                whose name is to be returned.\r
+  @param ChildHandle            The handle of the child controller to retrieve the name\r
+                                of.  This is an optional parameter that may be NULL.  It\r
+                                will be NULL for device drivers.  It will also be NULL\r
+                                for a bus drivers that wish to retrieve the name of the\r
+                                bus controller.  It will not be NULL for a bus driver\r
+                                that wishes to retrieve the name of a child controller.\r
+  @param Language               A pointer to a three character ISO 639-2 language\r
+                                identifier.  This is the language of the controller name\r
+                                that that the caller is requesting, and it must match one\r
+                                of the languages specified in SupportedLanguages.  The\r
+                                number of languages supported by a driver is up to the\r
+                                driver writer.\r
+  @param ControllerName         A pointer to the Unicode string to return.  This Unicode\r
+                                string is the name of the controller specified by\r
+                                ControllerHandle and ChildHandle in the language\r
+                                specified by Language from the point of view of the\r
+                                driver specified by This.\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
index 0fcf2b2ec1bf9ef9268c9e40d33bce66b7041433..876e99fc87f891c5ba4678e829f3c19ad19a1078 100644 (file)
@@ -49,6 +49,19 @@ SupportedNonDiscoverableDevices [] = {
 //   -  6.3 Protocol Handler Services\r
 //\r
 \r
+/**\r
+  Supported function of Driver Binding protocol for this driver.\r
+  Test to see if this driver supports ControllerHandle.\r
+\r
+  @param This                   Protocol instance pointer.\r
+  @param DeviceHandle           Handle of device to test.\r
+  @param RemainingDevicePath    A pointer to the device path.\r
+                                it should be ignored by device driver.\r
+\r
+  @retval EFI_SUCCESS           This driver supports this device.\r
+  @retval other                 This driver does not support this device.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -103,6 +116,19 @@ CloseProtocol:
   return Status;\r
 }\r
 \r
+/**\r
+  This routine is called right after the .Supported() called and\r
+  Start this driver on ControllerHandle.\r
+\r
+  @param This                   Protocol instance pointer.\r
+  @param DeviceHandle           Handle of device to bind driver to.\r
+  @param RemainingDevicePath    A pointer to the device path.\r
+                                it should be ignored by device driver.\r
+\r
+  @retval EFI_SUCCESS           This driver is added to this device.\r
+  @retval other                 Some error occurs when binding this driver to this device.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -153,7 +179,18 @@ FreeDev:
   return Status;\r
 }\r
 \r
+/**\r
+  Stop this driver on ControllerHandle.\r
+\r
+  @param This               Protocol instance pointer.\r
+  @param DeviceHandle       Handle of device to stop driver on.\r
+  @param NumberOfChildren   Not used.\r
+  @param ChildHandleBuffer  Not used.\r
 \r
+  @retval EFI_SUCCESS   This driver is removed from this device.\r
+  @retval other         Some error occurs when removing this driver from this device.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -209,9 +246,16 @@ STATIC EFI_DRIVER_BINDING_PROTOCOL gDriverBinding = {
   NULL\r
 };\r
 \r
-//\r
-// Entry point of this driver.\r
-//\r
+/**\r
+  Entry point of this driver.\r
+\r
+  @param  ImageHandle     Image handle this driver.\r
+  @param  SystemTable     Pointer to the System Table.\r
+\r
+  @retval EFI_SUCCESS     The entry point is executed successfully.\r
+  @retval other           Some error occurred when executing this entry point.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 NonDiscoverablePciDeviceDxeEntryPoint (\r
index 5faa8945134ce3fbb68795257597620de1b74edb..ac551a82ab5e80970598e35857677d458f838edb 100644 (file)
@@ -1,4 +1,6 @@
 ## @file\r
+# PCI I/O driver for non-discoverable devices.\r
+#\r
 # Copyright (C) 2016, Linaro Ltd.\r
 #\r
 # This program and the accompanying materials are licensed and made available\r
   gEfiCpuArchProtocolGuid                       ## CONSUMES\r
 \r
 [Guids]\r
-  gEdkiiNonDiscoverableAhciDeviceGuid\r
-  gEdkiiNonDiscoverableEhciDeviceGuid\r
-  gEdkiiNonDiscoverableNvmeDeviceGuid\r
-  gEdkiiNonDiscoverableOhciDeviceGuid\r
-  gEdkiiNonDiscoverableSdhciDeviceGuid\r
-  gEdkiiNonDiscoverableUfsDeviceGuid\r
-  gEdkiiNonDiscoverableUhciDeviceGuid\r
-  gEdkiiNonDiscoverableXhciDeviceGuid\r
+  gEdkiiNonDiscoverableAhciDeviceGuid       ## CONSUMES ## GUID\r
+  gEdkiiNonDiscoverableEhciDeviceGuid       ## CONSUMES ## GUID\r
+  gEdkiiNonDiscoverableNvmeDeviceGuid       ## CONSUMES ## GUID\r
+  gEdkiiNonDiscoverableOhciDeviceGuid       ## CONSUMES ## GUID\r
+  gEdkiiNonDiscoverableSdhciDeviceGuid      ## CONSUMES ## GUID\r
+  gEdkiiNonDiscoverableUfsDeviceGuid        ## CONSUMES ## GUID\r
+  gEdkiiNonDiscoverableUhciDeviceGuid       ## CONSUMES ## GUID\r
+  gEdkiiNonDiscoverableXhciDeviceGuid       ## CONSUMES ## GUID\r
index f9b13a5240550e047c35cf87fa9c50baff6aa59a..1ffbdfa5f6d4a5105b5ccb266e0db01a2d525c07 100644 (file)
@@ -28,9 +28,14 @@ typedef struct {
   UINTN                           NumberOfBytes;\r
 } NON_DISCOVERABLE_PCI_DEVICE_MAP_INFO;\r
 \r
-//\r
-// Get the resource associated with BAR number 'BarIndex'.\r
-//\r
+/**\r
+  Get the resource associated with BAR number 'BarIndex'.\r
+\r
+  @param  Dev           Point to the NON_DISCOVERABLE_PCI_DEVICE instance.\r
+  @param  BarIndex      The BAR index of the standard PCI Configuration header to use as the\r
+                        base address for the memory operation to perform.\r
+  @param  Descriptor    Points to the address space descriptor\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 GetBarResource (\r
@@ -61,6 +66,21 @@ GetBarResource (
   return EFI_NOT_FOUND;\r
 }\r
 \r
+/**\r
+  Reads from the memory space of a PCI controller. Returns either when the polling exit criteria is\r
+  satisfied or after a defined duration.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Width                 Signifies the width of the memory or I/O operations.\r
+  @param  BarIndex              The BAR index of the standard PCI Configuration header to use as the\r
+                                base address for the memory operation to perform.\r
+  @param  Offset                The offset within the selected BAR to start the memory operation.\r
+  @param  Mask                  Mask used for the polling criteria.\r
+  @param  Value                 The comparison value used for the polling exit criteria.\r
+  @param  Delay                 The number of 100 ns units to poll.\r
+  @param  Result                Pointer to the last value read from the memory location.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -79,6 +99,21 @@ PciIoPollMem (
   return EFI_UNSUPPORTED;\r
 }\r
 \r
+/**\r
+  Reads from the memory space of a PCI controller. Returns either when the polling exit criteria is\r
+  satisfied or after a defined duration.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Width                 Signifies the width of the memory or I/O operations.\r
+  @param  BarIndex              The BAR index of the standard PCI Configuration header to use as the\r
+                                base address for the memory operation to perform.\r
+  @param  Offset                The offset within the selected BAR to start the memory operation.\r
+  @param  Mask                  Mask used for the polling criteria.\r
+  @param  Value                 The comparison value used for the polling exit criteria.\r
+  @param  Delay                 The number of 100 ns units to poll.\r
+  @param  Result                Pointer to the last value read from the memory location.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -97,6 +132,22 @@ PciIoPollIo (
   return EFI_UNSUPPORTED;\r
 }\r
 \r
+/**\r
+  Enable a PCI driver to access PCI controller registers in the PCI memory or I/O space.\r
+\r
+  @param  Width         Signifies the width of the memory or I/O operations.\r
+  @param  Count         The number of memory or I/O operations to perform.\r
+  @param  DstStride     The stride of the destination buffer.\r
+  @param  Dst           For read operations, the destination buffer to store the results. For write\r
+                        operations, the destination buffer to write data to.\r
+  @param  SrcStride     The stride of the source buffer.\r
+  @param  Src           For read operations, the source buffer to read data from. For write\r
+                        operations, the source buffer to write data from.\r
+\r
+  @retval EFI_SUCCESS            The data was read from or written to the PCI controller.\r
+  @retval EFI_INVALID_PARAMETER  One or more parameters are invalid.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -148,6 +199,26 @@ PciIoMemRW (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Enable a PCI driver to access PCI controller registers in the PCI memory or I/O space.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Width                 Signifies the width of the memory or I/O operations.\r
+  @param  BarIndex              The BAR index of the standard PCI Configuration header to use as the\r
+                                base address for the memory or I/O operation to perform.\r
+  @param  Offset                The offset within the selected BAR to start the memory or I/O operation.\r
+  @param  Count                 The number of memory or I/O operations to perform.\r
+  @param  Buffer                For read operations, the destination buffer to store the results. For write\r
+                                operations, the source buffer to write data from.\r
+\r
+  @retval EFI_SUCCESS           The data was read from or written to the PCI controller.\r
+  @retval EFI_UNSUPPORTED       BarIndex not valid for this PCI controller.\r
+  @retval EFI_UNSUPPORTED       The address range specified by Offset, Width, and Count is not\r
+                                valid for the PCI BAR specified by BarIndex.\r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
+  @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -215,6 +286,26 @@ PciIoMemRead (
   return EFI_INVALID_PARAMETER;\r
 }\r
 \r
+/**\r
+  Enable a PCI driver to access PCI controller registers in the PCI memory or I/O space.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Width                 Signifies the width of the memory or I/O operations.\r
+  @param  BarIndex              The BAR index of the standard PCI Configuration header to use as the\r
+                                base address for the memory or I/O operation to perform.\r
+  @param  Offset                The offset within the selected BAR to start the memory or I/O operation.\r
+  @param  Count                 The number of memory or I/O operations to perform.\r
+  @param  Buffer                For read operations, the destination buffer to store the results. For write\r
+                                operations, the source buffer to write data from.\r
+\r
+  @retval EFI_SUCCESS           The data was read from or written to the PCI controller.\r
+  @retval EFI_UNSUPPORTED       BarIndex not valid for this PCI controller.\r
+  @retval EFI_UNSUPPORTED       The address range specified by Offset, Width, and Count is not\r
+                                valid for the PCI BAR specified by BarIndex.\r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
+  @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -282,6 +373,19 @@ PciIoMemWrite (
   return EFI_INVALID_PARAMETER;\r
 }\r
 \r
+/**\r
+  Enable a PCI driver to access PCI controller registers in the PCI memory or I/O space.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Width                 Signifies the width of the memory or I/O operations.\r
+  @param  BarIndex              The BAR index of the standard PCI Configuration header to use as the\r
+                                base address for the memory or I/O operation to perform.\r
+  @param  Offset                The offset within the selected BAR to start the memory or I/O operation.\r
+  @param  Count                 The number of memory or I/O operations to perform.\r
+  @param  Buffer                For read operations, the destination buffer to store the results. For write\r
+                                operations, the source buffer to write data from.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -298,6 +402,19 @@ PciIoIoRead (
   return EFI_UNSUPPORTED;\r
 }\r
 \r
+/**\r
+  Enable a PCI driver to access PCI controller registers in the PCI memory or I/O space.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Width                 Signifies the width of the memory or I/O operations.\r
+  @param  BarIndex              The BAR index of the standard PCI Configuration header to use as the\r
+                                base address for the memory or I/O operation to perform.\r
+  @param  Offset                The offset within the selected BAR to start the memory or I/O operation.\r
+  @param  Count                 The number of memory or I/O operations to perform.\r
+  @param  Buffer                For read operations, the destination buffer to store the results. For write\r
+                                operations, the source buffer to write data from.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -314,6 +431,17 @@ PciIoIoWrite (
   return EFI_UNSUPPORTED;\r
 }\r
 \r
+/**\r
+  Enable a PCI driver to access PCI config space.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Width                 Signifies the width of the memory or I/O operations.\r
+  @param  Offset                The offset within the selected BAR to start the memory or I/O operation.\r
+  @param  Count                 The number of memory or I/O operations to perform.\r
+  @param  Buffer                For read operations, the destination buffer to store the results. For write\r
+                                operations, the source buffer to write data from.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -350,6 +478,22 @@ PciIoPciRead (
   return PciIoMemRW (Width, Count, 1, Buffer, 1, Address);\r
 }\r
 \r
+/**\r
+  Enable a PCI driver to access PCI config space.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Width                 Signifies the width of the memory or I/O operations.\r
+  @param  Offset                The offset within the selected BAR to start the memory or I/O operation.\r
+  @param  Count                 The number of memory or I/O operations to perform.\r
+  @param  Buffer                For read operations, the destination buffer to store the results. For write\r
+                                operations, the source buffer to write data from\r
+\r
+  @retval EFI_SUCCESS           The data was read from or written to the PCI controller.\r
+  @retval EFI_UNSUPPORTED       The address range specified by Offset, Width, and Count is not\r
+                                valid for the PCI BAR specified by BarIndex.\r
+  @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -378,6 +522,24 @@ PciIoPciWrite (
   return PciIoMemRW (Width, Count, 1, Address, 1, Buffer);\r
 }\r
 \r
+/**\r
+  Enables a PCI driver to copy one region of PCI memory space to another region of PCI\r
+  memory space.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Width                 Signifies the width of the memory operations.\r
+  @param  DestBarIndex          The BAR index in the standard PCI Configuration header to use as the\r
+                                base address for the memory operation to perform.\r
+  @param  DestOffset            The destination offset within the BAR specified by DestBarIndex to\r
+                                start the memory writes for the copy operation.\r
+  @param  SrcBarIndex           The BAR index in the standard PCI Configuration header to use as the\r
+                                base address for the memory operation to perform.\r
+  @param  SrcOffset             The source offset within the BAR specified by SrcBarIndex to start\r
+                                the memory reads for the copy operation.\r
+  @param  Count                 The number of memory operations to perform. Bytes moved is Width\r
+                                size * Count, starting at DestOffset and SrcOffset.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -395,6 +557,25 @@ PciIoCopyMem (
   return EFI_UNSUPPORTED;\r
 }\r
 \r
+/**\r
+  Provides the PCI controller-specific addresses needed to access system memory.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Operation             Indicates if the bus master is going to read or write to system memory.\r
+  @param  HostAddress           The system memory address to map to the PCI controller.\r
+  @param  NumberOfBytes         On input the number of bytes to map. On output the number of bytes\r
+                                that were mapped.\r
+  @param  DeviceAddress         The resulting map address for the bus master PCI controller to use to\r
+                                access the hosts HostAddress.\r
+  @param  Mapping               A resulting value to pass to Unmap().\r
+\r
+  @retval EFI_SUCCESS           The range was mapped for the returned NumberOfBytes.\r
+  @retval EFI_UNSUPPORTED       The HostAddress cannot be mapped as a common buffer.\r
+  @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
+  @retval EFI_DEVICE_ERROR      The system hardware could not map the requested address.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -461,6 +642,15 @@ CoherentPciIoMap (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Completes the Map() operation and releases any corresponding resources.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Mapping               The mapping value returned from Map().\r
+\r
+  @retval EFI_SUCCESS           The range was unmapped.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -484,6 +674,25 @@ CoherentPciIoUnmap (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Allocates pages.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Type                  This parameter is not used and must be ignored.\r
+  @param  MemoryType            The type of memory to allocate, EfiBootServicesData or\r
+                                EfiRuntimeServicesData.\r
+  @param  Pages                 The number of pages to allocate.\r
+  @param  HostAddress           A pointer to store the base system memory address of the\r
+                                allocated range.\r
+  @param  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_UNSUPPORTED       Attributes is unsupported. The only legal attribute bits are\r
+                                MEMORY_WRITE_COMBINE and MEMORY_CACHED.\r
+  @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
+  @retval EFI_OUT_OF_RESOURCES  The memory pages could not be allocated.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -526,6 +735,16 @@ CoherentPciIoAllocateBuffer (
   return Status;\r
 }\r
 \r
+/**\r
+  Frees memory that was allocated in function CoherentPciIoAllocateBuffer ().\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Pages                 The number of pages to free.\r
+  @param  HostAddress           The base system memory address of the allocated range.\r
+\r
+  @retval EFI_SUCCESS           The requested memory pages were freed.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -539,6 +758,17 @@ CoherentPciIoFreeBuffer (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Frees memory that was allocated in function NonCoherentPciIoAllocateBuffer ().\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Pages                 The number of pages to free.\r
+  @param  HostAddress           The base system memory address of the allocated range.\r
+\r
+  @retval EFI_SUCCESS           The requested memory pages were freed.\r
+  @retval others                The operation contain some errors.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -604,6 +834,25 @@ FreeAlloc:
   return Status;\r
 }\r
 \r
+/**\r
+  Allocates pages.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Type                  This parameter is not used and must be ignored.\r
+  @param  MemoryType            The type of memory to allocate, EfiBootServicesData or\r
+                                EfiRuntimeServicesData.\r
+  @param  Pages                 The number of pages to allocate.\r
+  @param  HostAddress           A pointer to store the base system memory address of the\r
+                                allocated range.\r
+  @param  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_UNSUPPORTED       Attributes is unsupported. The only legal attribute bits are\r
+                                MEMORY_WRITE_COMBINE and MEMORY_CACHED.\r
+  @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
+  @retval EFI_OUT_OF_RESOURCES  The memory pages could not be allocated.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -702,6 +951,25 @@ FreeBuffer:
   return Status;\r
 }\r
 \r
+/**\r
+  Provides the PCI controller-specific addresses needed to access system memory.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Operation             Indicates if the bus master is going to read or write to system memory.\r
+  @param  HostAddress           The system memory address to map to the PCI controller.\r
+  @param  NumberOfBytes         On input the number of bytes to map. On output the number of bytes\r
+                                that were mapped.\r
+  @param  DeviceAddress         The resulting map address for the bus master PCI controller to use to\r
+                                access the hosts HostAddress.\r
+  @param  Mapping               A resulting value to pass to Unmap().\r
+\r
+  @retval EFI_SUCCESS           The range was mapped for the returned NumberOfBytes.\r
+  @retval EFI_UNSUPPORTED       The HostAddress cannot be mapped as a common buffer.\r
+  @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
+  @retval EFI_DEVICE_ERROR      The system hardware could not map the requested address.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -816,6 +1084,15 @@ FreeMapInfo:
   return Status;\r
 }\r
 \r
+/**\r
+  Completes the Map() operation and releases any corresponding resources.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Mapping               The mapping value returned from Map().\r
+\r
+  @retval EFI_SUCCESS           The range was unmapped.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -859,6 +1136,12 @@ NonCoherentPciIoUnmap (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Flushes all PCI posted write transactions from a PCI host bridge to system memory.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -869,6 +1152,19 @@ PciIoFlush (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Retrieves this PCI controller's current PCI bus number, device number, and function number.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  SegmentNumber         The PCI controller's current PCI segment number.\r
+  @param  BusNumber             The PCI controller's current PCI bus number.\r
+  @param  DeviceNumber          The PCI controller's current PCI device number.\r
+  @param  FunctionNumber        The PCI controller's current PCI function number.\r
+\r
+  @retval EFI_SUCCESS           The PCI controller location was returned.\r
+  @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -895,6 +1191,25 @@ PciIoGetLocation (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Performs an operation on the attributes that this PCI controller supports. The operations include\r
+  getting the set of supported attributes, retrieving the current attributes, setting the current\r
+  attributes, enabling attributes, and disabling attributes.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Operation             The operation to perform on the attributes for this PCI controller.\r
+  @param  Attributes            The mask of attributes that are used for Set, Enable, and Disable\r
+                                operations.\r
+  @param  Result                A pointer to the result mask of attributes that are returned for the Get\r
+                                and Supported operations.\r
+\r
+  @retval EFI_SUCCESS           The operation on the PCI controller's attributes was completed.\r
+  @retval EFI_INVALID_PARAMETER One or more parameters are invalid.\r
+  @retval EFI_UNSUPPORTED       one or more of the bits set in\r
+                                Attributes are not supported by this PCI controller or one of\r
+                                its parent bridges when Operation is Set, Enable or Disable.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -952,6 +1267,28 @@ PciIoAttributes (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Gets the attributes that this PCI controller supports setting on a BAR using\r
+  SetBarAttributes(), and retrieves the list of resource descriptors for a BAR.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  BarIndex              The BAR index of the standard PCI Configuration header to use as the\r
+                                base address for resource range. The legal range for this field is 0..5.\r
+  @param  Supports              A pointer to the mask of attributes that this PCI controller supports\r
+                                setting for this BAR with SetBarAttributes().\r
+  @param  Resources             A pointer to the ACPI 2.0 resource descriptors that describe the current\r
+                                configuration of this BAR of the PCI controller.\r
+\r
+  @retval EFI_SUCCESS           If Supports is not NULL, then the attributes that the PCI\r
+                                controller supports are returned in Supports. If Resources\r
+                                is not NULL, then the ACPI 2.0 resource descriptors that the PCI\r
+                                controller is currently using are returned in Resources.\r
+  @retval EFI_INVALID_PARAMETER Both Supports and Attributes are NULL.\r
+  @retval EFI_UNSUPPORTED       BarIndex not valid for this PCI controller.\r
+  @retval EFI_OUT_OF_RESOURCES  There are not enough resources available to allocate\r
+                                Resources.\r
+\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -1003,6 +1340,19 @@ PciIoGetBarAttributes (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+  Sets the attributes for a range of a BAR on a PCI controller.\r
+\r
+  @param  This                  A pointer to the EFI_PCI_IO_PROTOCOL instance.\r
+  @param  Attributes            The mask of attributes to set for the resource range specified by\r
+                                BarIndex, Offset, and Length.\r
+  @param  BarIndex              The BAR index of the standard PCI Configuration header to use as the\r
+                                base address for resource range. The legal range for this field is 0..5.\r
+  @param  Offset                A pointer to the BAR relative base address of the resource range to be\r
+                                modified by the attributes specified by Attributes.\r
+  @param  Length                A pointer to the length of the resource range to be modified by the\r
+                                attributes specified by Attributes.\r
+**/\r
 STATIC\r
 EFI_STATUS\r
 EFIAPI\r
@@ -1039,6 +1389,12 @@ STATIC CONST EFI_PCI_IO_PROTOCOL PciIoTemplate =
   0\r
 };\r
 \r
+/**\r
+  Initialize PciIo Protocol.\r
+\r
+  @param  Dev      Point to NON_DISCOVERABLE_PCI_DEVICE instance.\r
+\r
+**/\r
 VOID\r
 InitializePciIoProtocol (\r
   NON_DISCOVERABLE_PCI_DEVICE     *Dev\r
index 4496148629110df64d8a4091b7ff4bede08d9df0..e641189267eeea45a1499f1c25260ddadd28e4d3 100644 (file)
@@ -102,6 +102,12 @@ typedef struct {
   LIST_ENTRY                UncachedAllocationList;\r
 } NON_DISCOVERABLE_PCI_DEVICE;\r
 \r
+/**\r
+  Initialize PciIo Protocol.\r
+\r
+  @param  Device      Point to NON_DISCOVERABLE_PCI_DEVICE instance.\r
+\r
+**/\r
 VOID\r
 InitializePciIoProtocol (\r
   NON_DISCOVERABLE_PCI_DEVICE     *Device\r