/** @file
  GUID for EFI shell Environment2 Extension

  Copyright (c) 2009, Intel Corporation
  All rights reserved. This program and the accompanying materials
  are licensed and made available under the terms and conditions of the BSD License
  which accompanies this distribution.  The full text of the license may be found at
  http://opensource.org/licenses/bsd-license.php

  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

**/

#ifndef _SHELLPKG_SHELL_ENV2_EXT_GUID_H
#define _SHELLPKG_SHELL_ENV2_EXT_GUID_H

#define SHELLPKG_SHELL_ENV2_EXT_GUID \
{ \
  0xd2c18636, 0x40e5, 0x4eb5, {0xa3, 0x1b, 0x36, 0x69, 0x5f, 0xd4, 0x2c, 0x87} \
};

extern EFI_GUID gEfiShellEnvironment2ExtGuid;

#endif
