]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.h
MdeModulePkg/NvmExpressPei: Consume S3StorageDeviceInitList LockBox
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / NvmExpressPei / NvmExpressPei.h
index 89666160a19652c582c5f51da6ba880d77109d05..74e2daf511090a196dea359fca5c7c81251cffa8 100644 (file)
@@ -266,6 +266,26 @@ NvmePeimEndOfPei (
   IN VOID                       *Ppi\r
   );\r
 \r
+/**\r
+  Get the size of the current device path instance.\r
+\r
+  @param[in]  DevicePath             A pointer to the EFI_DEVICE_PATH_PROTOCOL\r
+                                     structure.\r
+  @param[out] InstanceSize           The size of the current device path instance.\r
+  @param[out] EntireDevicePathEnd    Indicate whether the instance is the last\r
+                                     one in the device path strucure.\r
+\r
+  @retval EFI_SUCCESS    The size of the current device path instance is fetched.\r
+  @retval Others         Fails to get the size of the current device path instance.\r
+\r
+**/\r
+EFI_STATUS\r
+GetDevicePathInstanceSize (\r
+  IN  EFI_DEVICE_PATH_PROTOCOL    *DevicePath,\r
+  OUT UINTN                       *InstanceSize,\r
+  OUT BOOLEAN                     *EntireDevicePathEnd\r
+  );\r
+\r
 /**\r
   Check the validity of the device path of a NVM Express host controller.\r
 \r
@@ -309,4 +329,20 @@ NvmeBuildDevicePath (
   OUT EFI_DEVICE_PATH_PROTOCOL            **DevicePath\r
   );\r
 \r
+/**\r
+  Determine if a specific NVM Express controller can be skipped for S3 phase.\r
+\r
+  @param[in]  HcDevicePath          Device path of the controller.\r
+  @param[in]  HcDevicePathLength    Length of the device path specified by\r
+                                    HcDevicePath.\r
+\r
+  @retval    The number of ports that need to be enumerated.\r
+\r
+**/\r
+BOOLEAN\r
+NvmeS3SkipThisController (\r
+  IN  EFI_DEVICE_PATH_PROTOCOL    *HcDevicePath,\r
+  IN  UINTN                       HcDevicePathLength\r
+  );\r
+\r
 #endif\r