xref: /netbsd-src/sys/external/bsd/gnu-efi/dist/lib/error.c (revision 946379e7b37692fc43f68eb0d1c10daa0a7f3b6c)
1 /*	$NetBSD: error.c,v 1.1.1.1 2014/04/01 16:16:06 jakllsch Exp $	*/
2 
3 /*++
4 
5 Copyright (c) 1998  Intel Corporation
6 
7 Module Name:
8 
9     error.c
10 
11 Abstract:
12 
13 
14 
15 
16 Revision History
17 
18 --*/
19 
20 #include "lib.h"
21 
22 
23 struct {
24     EFI_STATUS      Code;
25     WCHAR	    *Desc;
26 } ErrorCodeTable[] = {
27 	{  EFI_SUCCESS,                L"Success"},
28 	{  EFI_LOAD_ERROR,             L"Load Error"},
29 	{  EFI_INVALID_PARAMETER,      L"Invalid Parameter"},
30 	{  EFI_UNSUPPORTED,            L"Unsupported"},
31 	{  EFI_BAD_BUFFER_SIZE,        L"Bad Buffer Size"},
32 	{  EFI_BUFFER_TOO_SMALL,       L"Buffer Too Small"},
33 	{  EFI_NOT_READY,              L"Not Ready"},
34 	{  EFI_DEVICE_ERROR,           L"Device Error"},
35 	{  EFI_WRITE_PROTECTED,        L"Write Protected"},
36 	{  EFI_OUT_OF_RESOURCES,       L"Out of Resources"},
37 	{  EFI_VOLUME_CORRUPTED,       L"Volume Corrupt"},
38 	{  EFI_VOLUME_FULL,            L"Volume Full"},
39 	{  EFI_NO_MEDIA,               L"No Media"},
40 	{  EFI_MEDIA_CHANGED,          L"Media changed"},
41 	{  EFI_NOT_FOUND,              L"Not Found"},
42 	{  EFI_ACCESS_DENIED,          L"Access Denied"},
43 	{  EFI_NO_RESPONSE,            L"No Response"},
44 	{  EFI_NO_MAPPING,             L"No mapping"},
45 	{  EFI_TIMEOUT,                L"Time out"},
46 	{  EFI_NOT_STARTED,            L"Not started"},
47 	{  EFI_ALREADY_STARTED,        L"Already started"},
48 	{  EFI_ABORTED,                L"Aborted"},
49 	{  EFI_ICMP_ERROR,             L"ICMP Error"},
50 	{  EFI_TFTP_ERROR,             L"TFTP Error"},
51 	{  EFI_PROTOCOL_ERROR,         L"Protocol Error"},
52 
53 	// warnings
54 	{  EFI_WARN_UNKOWN_GLYPH,      L"Warning Unknown Glyph"},
55 	{  EFI_WARN_DELETE_FAILURE,    L"Warning Delete Failure"},
56 	{  EFI_WARN_WRITE_FAILURE,     L"Warning Write Failure"},
57 	{  EFI_WARN_BUFFER_TOO_SMALL,  L"Warning Buffer Too Small"},
58 	{  0, NULL}
59 } ;
60 
61 
62 VOID
63 StatusToString (
64     OUT CHAR16          *Buffer,
65     IN EFI_STATUS       Status
66     )
67 {
68     UINTN           Index;
69 
70     for (Index = 0; ErrorCodeTable[Index].Desc; Index +=1) {
71         if (ErrorCodeTable[Index].Code == Status) {
72 	    StrCpy (Buffer, ErrorCodeTable[Index].Desc);
73             return;
74         }
75     }
76 
77     SPrint (Buffer, 0, L"%X", Status);
78 }
79