/** @file
  Definitions of ASCII string literals used by DP.

  Copyright (c) 2009 - 2017, 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.
**/
#include <PerformanceTokens.h>

// ASCII String literals which probably don't need translation
CHAR8 const ALit_TimerLibError[] = "Timer library instance error!\n";
CHAR8 const ALit_SEC[]    = SEC_TOK;
CHAR8 const ALit_DXE[]    = DXE_TOK;
CHAR8 const ALit_PEI[]    = PEI_TOK;
CHAR8 const ALit_BDS[]    = BDS_TOK;
CHAR8 const ALit_BdsTO[]  = "BdsTimeOut";
CHAR8 const ALit_PEIM[]   = "PEIM";
