176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/*++
276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanCopyright (c) 1998  Intel Corporation
476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
576d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanModule Name:
676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    error.c
876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanAbstract:
1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanRevision History
1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman--*/
1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include "lib.h"
1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanstruct {
2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    EFI_STATUS      Code;
2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    WCHAR	    *Desc;
2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} ErrorCodeTable[] = {
2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_SUCCESS,                L"Success"},
2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_LOAD_ERROR,             L"Load Error"},
2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_INVALID_PARAMETER,      L"Invalid Parameter"},
2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_UNSUPPORTED,            L"Unsupported"},
2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_BAD_BUFFER_SIZE,        L"Bad Buffer Size"},
3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_BUFFER_TOO_SMALL,       L"Buffer Too Small"},
3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_NOT_READY,              L"Not Ready"},
3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_DEVICE_ERROR,           L"Device Error"},
3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_WRITE_PROTECTED,        L"Write Protected"},
3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_OUT_OF_RESOURCES,       L"Out of Resources"},
3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_VOLUME_CORRUPTED,       L"Volume Corrupt"},
3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_VOLUME_FULL,            L"Volume Full"},
3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_NO_MEDIA,               L"No Media"},
3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_MEDIA_CHANGED,          L"Media changed"},
3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_NOT_FOUND,              L"Not Found"},
4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_ACCESS_DENIED,          L"Access Denied"},
4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_NO_RESPONSE,            L"No Response"},
4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_NO_MAPPING,             L"No mapping"},
4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_TIMEOUT,                L"Time out"},
4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_NOT_STARTED,            L"Not started"},
4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_ALREADY_STARTED,        L"Already started"},
4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_ABORTED,                L"Aborted"},
4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_ICMP_ERROR,             L"ICMP Error"},
4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_TFTP_ERROR,             L"TFTP Error"},
4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_PROTOCOL_ERROR,         L"Protocol Error"},
5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	// warnings
5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_WARN_UNKOWN_GLYPH,      L"Warning Unknown Glyph"},
5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_WARN_DELETE_FAILURE,    L"Warning Delete Failure"},
5476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_WARN_WRITE_FAILURE,     L"Warning Write Failure"},
5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  EFI_WARN_BUFFER_TOO_SMALL,  L"Warning Buffer Too Small"},
5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	{  0, NULL}
5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} ;
5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
5976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
6076d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanVOID
6176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanStatusToString (
6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    OUT CHAR16          *Buffer,
6376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    IN EFI_STATUS       Status
6476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    )
6576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman{
6676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    UINTN           Index;
6776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
6876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    for (Index = 0; ErrorCodeTable[Index].Desc; Index +=1) {
6976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman        if (ErrorCodeTable[Index].Code == Status) {
7076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman	    StrCpy (Buffer, ErrorCodeTable[Index].Desc);
7176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman            return;
7276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman        }
7376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    }
7476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
7576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman    SPrint (Buffer, 0, L"%X", Status);
7676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman}
77