/** @file
  GUID for PcAtChipsetPkg 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
  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 _PCATCHIPSET_TOKEN_SPACE_GUID_H_
#define _PCATCHIPSET_TOKEN_SPACE_GUID_H_

#define PCATCHIPSET_TOKEN_SPACE_GUID \
  { \
    0x326ae723, 0xae32, 0x4589, { 0x98, 0xb8, 0xca, 0xc2, 0x3c, 0xdc, 0xc1, 0xb1 } \
  }

extern EFI_GUID gPcAtChipsetPkgTokenSpaceGuid;

#endif
