xref: /DragonStub/lib/error.c (revision f412fd2a1a248b546b7085648dece8d908077fab)
1 /*++
2 
3 Copyright (c) 1998  Intel Corporation
4 
5 Module Name:
6 
7     error.c
8 
9 Abstract:
10 
11 
12 
13 
14 Revision History
15 
16 --*/
17 
18 #include "lib.h"
19 
20 
21 typedef struct {
22     EFI_STATUS	Code;
23     WCHAR		*Desc;
24 } ErrorCodeTable_Type;
25 ErrorCodeTable_Type ErrorCodeTable[] = {
26 	{  EFI_SUCCESS,                L"Success"},
27 	{  EFI_LOAD_ERROR,             L"Load Error"},
28 	{  EFI_INVALID_PARAMETER,      L"Invalid Parameter"},
29 	{  EFI_UNSUPPORTED,            L"Unsupported"},
30 	{  EFI_BAD_BUFFER_SIZE,        L"Bad Buffer Size"},
31 	{  EFI_BUFFER_TOO_SMALL,       L"Buffer Too Small"},
32 	{  EFI_NOT_READY,              L"Not Ready"},
33 	{  EFI_DEVICE_ERROR,           L"Device Error"},
34 	{  EFI_WRITE_PROTECTED,        L"Write Protected"},
35 	{  EFI_OUT_OF_RESOURCES,       L"Out of Resources"},
36 	{  EFI_VOLUME_CORRUPTED,       L"Volume Corrupt"},
37 	{  EFI_VOLUME_FULL,            L"Volume Full"},
38 	{  EFI_NO_MEDIA,               L"No Media"},
39 	{  EFI_MEDIA_CHANGED,          L"Media changed"},
40 	{  EFI_NOT_FOUND,              L"Not Found"},
41 	{  EFI_ACCESS_DENIED,          L"Access Denied"},
42 	{  EFI_NO_RESPONSE,            L"No Response"},
43 	{  EFI_NO_MAPPING,             L"No mapping"},
44 	{  EFI_TIMEOUT,                L"Time out"},
45 	{  EFI_NOT_STARTED,            L"Not started"},
46 	{  EFI_ALREADY_STARTED,        L"Already started"},
47 	{  EFI_ABORTED,                L"Aborted"},
48 	{  EFI_ICMP_ERROR,             L"ICMP Error"},
49 	{  EFI_TFTP_ERROR,             L"TFTP Error"},
50 	{  EFI_PROTOCOL_ERROR,         L"Protocol Error"},
51 	{  EFI_INCOMPATIBLE_VERSION,   L"Incompatible Version"},
52 	{  EFI_SECURITY_VIOLATION,     L"Security Policy Violation"},
53 	{  EFI_CRC_ERROR,              L"CRC Error"},
54 	{  EFI_END_OF_MEDIA,           L"End of Media"},
55 	{  EFI_END_OF_FILE,            L"End of File"},
56 	{  EFI_INVALID_LANGUAGE,       L"Invalid Languages"},
57 	{  EFI_COMPROMISED_DATA,       L"Compromised Data"},
58 	{  EFI_IP_ADDRESS_CONFLICT,    L"IP Address Conflict"},
59 	{  EFI_HTTP_ERROR,             L"HTTP Error"},
60 
61 	// warnings
62 	{  EFI_WARN_UNKNOWN_GLYPH,     L"Warning Unknown Glyph"},
63 	{  EFI_WARN_DELETE_FAILURE,    L"Warning Delete Failure"},
64 	{  EFI_WARN_WRITE_FAILURE,     L"Warning Write Failure"},
65 	{  EFI_WARN_BUFFER_TOO_SMALL,  L"Warning Buffer Too Small"},
66 	{  EFI_WARN_STALE_DATA,        L"Warning Stale Data"},
67 	{  EFI_WARN_FILE_SYSTEM,       L"Warning File System"},
68 	{  EFI_WARN_RESET_REQUIRED,    L"Warning Reset Required"},
69 	{  0, NULL}
70 } ;
71 
72 
73 VOID
74 StatusToString (
75     OUT CHAR16          *Buffer,
76     IN EFI_STATUS       Status
77     )
78 {
79     UINTN           Index;
80 
81     for (Index = 0; ErrorCodeTable[Index].Desc; Index +=1) {
82         if (ErrorCodeTable[Index].Code == Status) {
83 	    StrCpy (Buffer, ErrorCodeTable[Index].Desc);
84             return;
85         }
86     }
87 
88     UnicodeSPrint (Buffer, 0, L"%X", Status);
89 }
90