/** @file
  GUID for MdeModulePkg PCD Token Space. 

Copyright (c) 2009 - 2010, Intel Corporation.  All rights reserved<BR>
This program and the accompanying materials are licensed and made available under 
the terms and conditions of the BSD License that 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 _MDEMODULEPKG_TOKEN_SPACE_GUID_H_
#define _MDEMODULEPKG_TOKEN_SPACE_GUID_H_

#define MDEMODULEPKG_TOKEN_SPACE_GUID \
  { \
    0xA1AFF049, 0xFDEB, 0x442a, { 0xB3, 0x20, 0x13, 0xAB, 0x4C, 0xB7, 0x2B, 0xBC } \
  }

extern EFI_GUID gEfiMdeModulePkgTokenSpaceGuid;

#endif
