/** @file
  Declarations of ASCII string literals used by DP.

  Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/

#ifndef _LITERALS_H_
#define _LITERALS_H_

// ASCII String literals which probably don't need translation
extern CHAR8 const  ALit_TimerLibError[];
extern CHAR8 const  ALit_SEC[];
extern CHAR8 const  ALit_DXE[];
extern CHAR8 const  ALit_SHELL[];
extern CHAR8 const  ALit_PEI[];
extern CHAR8 const  ALit_BDS[];
extern CHAR8 const  ALit_PEIM[];
extern CHAR8 const  ALit_START_IMAGE[];
extern CHAR8 const  ALit_LOAD_IMAGE[];
extern CHAR8 const  ALit_DB_START[];
extern CHAR8 const  ALit_DB_SUPPORT[];
extern CHAR8 const  ALit_DB_STOP[];
extern CHAR8 const  ALit_BdsTO[];
extern CHAR8 const  ALit_PEIM[];

#endif // _LITERALS_H_
