// /** @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 - 2014, Intel Corporation. All rights reserved.<BR>
// Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/


#string STR_MODULE_ABSTRACT             #language en-US "Instance of Cache Maintenance Library using Base Library services"

#string STR_MODULE_DESCRIPTION          #language en-US "The Cache Maintenance Library that uses Base Library services to maintain caches. This library assumes there are no chipset dependencies required to maintain caches."

