/** @file
  Define the LockBox GUID for list of storage devices need to be initialized in
  S3.

  Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>

  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef __S3_STORAGE_DEVICE_INIT_LIST_H__
#define __S3_STORAGE_DEVICE_INIT_LIST_H__

#define S3_STORAGE_DEVICE_INIT_LIST \
  { \
    0x310e9b8c, 0xcf90, 0x421e, { 0x8e, 0x9b, 0x9e, 0xef, 0xb6, 0x17, 0xc8, 0xef } \
  }

//
// The LockBox will store a DevicePath structure that contains one or more
// DevicePath instances. Each instance denotes a storage device that needs to
// get initialized during the S3 resume.
//
// For example, if there is only one storage device stored in the list, the
// content of this LockBox will be:
//
// +-------------------------------------------------------+
// |                 DevPath Instance #1                   |
// | (Terminated by an End of Hardware Device Path node    |
// |  with an End Entire Device Path sub-type)             |
// +-------------------------------------------------------+
//
// If there are n (n > 1) storage devices in the list, the content of this
// LockBox will be:
//
// +-------------------------------------------------------+
// |                 DevPath Instance #1                   |
// | (Terminated by an End of Hardware Device Path node    |
// |  with an End This Instance of a Device Path sub-type) |
// +-------------------------------------------------------+
// |                 DevPath Instance #2                   |
// | (Terminated by an End of Hardware Device Path node    |
// |  with an End This Instance of a Device Path sub-type) |
// +-------------------------------------------------------+
// |                        ...                            |
// +-------------------------------------------------------+
// |                 DevPath Instance #n                   |
// | (Terminated by an End of Hardware Device Path node    |
// |  with an End Entire Device Path sub-type)             |
// +-------------------------------------------------------+
//
// The attribute of the LockBox should be set to
// 'LOCK_BOX_ATTRIBUTE_RESTORE_IN_S3_ONLY'.
//
extern EFI_GUID  gS3StorageDeviceInitListGuid;

#endif  // __S3_STORAGE_DEVICE_INIT_LIST_H__
