Imported Upstream version 3.0
[platform/upstream/gnu-efi.git] / lib / error.c
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 struct {
22     EFI_STATUS      Code;
23     WCHAR           *Desc;
24 } ErrorCodeTable[] = {
25         {  EFI_SUCCESS,                L"Success"},
26         {  EFI_LOAD_ERROR,             L"Load Error"},
27         {  EFI_INVALID_PARAMETER,      L"Invalid Parameter"},
28         {  EFI_UNSUPPORTED,            L"Unsupported"},
29         {  EFI_BAD_BUFFER_SIZE,        L"Bad Buffer Size"},
30         {  EFI_BUFFER_TOO_SMALL,       L"Buffer Too Small"},
31         {  EFI_NOT_READY,              L"Not Ready"},
32         {  EFI_DEVICE_ERROR,           L"Device Error"},
33         {  EFI_WRITE_PROTECTED,        L"Write Protected"},
34         {  EFI_OUT_OF_RESOURCES,       L"Out of Resources"},
35         {  EFI_VOLUME_CORRUPTED,       L"Volume Corrupt"},
36         {  EFI_VOLUME_FULL,            L"Volume Full"},
37         {  EFI_NO_MEDIA,               L"No Media"},
38         {  EFI_MEDIA_CHANGED,          L"Media changed"},
39         {  EFI_NOT_FOUND,              L"Not Found"},
40         {  EFI_ACCESS_DENIED,          L"Access Denied"},
41         {  EFI_NO_RESPONSE,            L"No Response"},
42         {  EFI_NO_MAPPING,             L"No mapping"},
43         {  EFI_TIMEOUT,                L"Time out"},
44         {  EFI_NOT_STARTED,            L"Not started"},
45         {  EFI_ALREADY_STARTED,        L"Already started"},
46         {  EFI_ABORTED,                L"Aborted"},
47         {  EFI_ICMP_ERROR,             L"ICMP Error"},
48         {  EFI_TFTP_ERROR,             L"TFTP Error"},
49         {  EFI_PROTOCOL_ERROR,         L"Protocol Error"},
50
51         // warnings
52         {  EFI_WARN_UNKOWN_GLYPH,      L"Warning Unknown Glyph"},
53         {  EFI_WARN_DELETE_FAILURE,    L"Warning Delete Failure"},
54         {  EFI_WARN_WRITE_FAILURE,     L"Warning Write Failure"},
55         {  EFI_WARN_BUFFER_TOO_SMALL,  L"Warning Buffer Too Small"},
56         {  0, NULL}
57 } ;
58
59
60 VOID
61 StatusToString (
62     OUT CHAR16          *Buffer,
63     IN EFI_STATUS       Status
64     )
65 {
66     UINTN           Index;
67
68     for (Index = 0; ErrorCodeTable[Index].Desc; Index +=1) {
69         if (ErrorCodeTable[Index].Code == Status) {
70             StrCpy (Buffer, ErrorCodeTable[Index].Desc);
71             return;
72         }
73     }
74
75     SPrint (Buffer, 0, L"%X", Status);
76 }