#/** @file
# Instance of Cache Maintenance Library using Base Library services.
#
# Cache Maintenance Library that uses Base Library services to maintain caches.
#  This library assumes there are no chipset dependencies required to maintain caches.
#
# Copyright (c) 2007 - 2008, 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.
#
#
#**/

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = BaseCacheMaintenanceLib
  FILE_GUID                      = 123dd843-57c9-4158-8418-ce68b3944ce7
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = CacheMaintenanceLib 


#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources.Ia32]
  X86Cache.c

[Sources.X64]
  X86Cache.c

[Sources.IPF]
  IpfCache.c

[Sources.EBC]
  EbcCache.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses.Ipf]
  PalLib

[LibraryClasses.common]
  BaseLib
  DebugLib

